/list-iga-codes

Curated list of some open source codes employing isogeometric analysis (IGA)

Open source codes employing isogeometric analysis (IGA)

A curated list of some open source frameworks, libraries and softwares employing isogeometric analysis. This list is by no means complete. So if you would like me to add something, please send me a link to sthavishthabr@gmail.com or perform a pull request.


  • G+Smo [1] - an object-oriented, cross-platform, template C++ library which supports dimension-independent NURBS, adaptive splines etc. Developed at the Johannes Kepler University and RICAM Institute of the Austrian Academy of sciences.
  • GeoPDEs [2, 3] - a numerical framework written in Octave (compatible with MATLAB). Also inclusion of multipatch domains, adaptive methods with hierarchial B-splines, divergence and curl conforming spline spaces. Developed at the University of Pavia, Italy.
  • igafem - a three-dimensional framework written in MATLAB using Galerkin method and collocation. Also supports global h-refinement using knot insertion, p-, k-refinement and other features. Developed at the Delft University of Technology, Netherlands.
  • Igatools [4] - written in C++11 and uses object oriented and generic programming techniques. Supports isogeometric elements of h-div and h-curl type, dimension independent code.
  • IGA-dealii [5] - supports classes for performing isogeometric analysis using the deal.ii library. Developed at the International School for Advanced Studies, SISSA.
  • ISOGAT - a tutorial code written in MATLAB for solving elliptic diffusion-type problems including Poisson's equation on single patch geometries. Primarily intended for small-scale/tutorial-related problems. Developed at the Faculty of Mathematics at TU Munich.
  • mechanoChemIGA [6] - a high performance parallel code built on top of PetIGA and PETSc libraries. Supports PDEs describing solid mechanics and chemistry (including the Cahn-hiliard phase field model). Developed at the Computational Physics Group, University of Michigan.
  • MFEM [7] - an MPI-parallelized modular library which supports mixed finite element methods, discontinuous galerkin methods, isogeometric analysis, discontinuous petrov-galerkin methods, mesh refinement techniques. Can run serially and also in GPUs. Python wrapper for MFEM also available as PyMFEM. Developed at the Lawrence Livermore National Laboratory.
  • nutils [8] - a parallelized python library supporting isogeometric analysis, finite cell method, mixed methods and hierarchial refinement. Developed by Evalf computing.
  • PetIGA [9] - a high performance parallelized numerical framework written in C, which adds the NURBS based discretization capabilities on top of PETSc. Developed by the Center for Numerical Porous Media, Division of Computer, Electrical, and Mathematical Sciences & Engineering (CEMSE) at King Abdullah University of Science and Technology. The same set of researchers have developed PetIGA-MF written on top of PetIGA but this is not open-source.
  • Pigasus [10] - a FORTRAN library interfaced with Python which includes a visualization module as well. Supports B-splines and NURBS. Developed at CEA, France.
  • tiGAr [11] - a high performance Python library for isogeometric analysis using IGA. Developed at the Department of Mechanical and Aerospace Engineering, University of California at San Diego.

NURSB, B-spline mesh generation packages


Course notes on IGA

  • IGA-notes - lecture notes of the course "Isogeometric methods" authored by Prof. John Evans, University of Colorado, Boulder.

References

  1. Official website of G+Smo

  2. de Falco, C., Reali, A., Vasquez, R., GeoPDEs: A research tool for Isogeometric Analysis of PDEs, Advances in Engineering Software, Vol. 42 (12), pp. 1020-1034, 2011. Link

  3. Vasquez, R., A new design for the implementation of isogeometric analysis in Octave and Matlab: GeoPDEs 3.0, Computers & Mathematics with Applications, Vol. 72 (3), pp. 523-554, 2016. Link

  4. Pauletti, M. Sebastian, et al. , Igatools: An isogeometric analysis library, SIAM Journal on Scientific Computing, Vol. 37 (4), pp. C465-496, 2016. Link

  5. Official website of IGA-dealii

  6. Rudraraju, S., Van der Ven, A., Garikipati, K., Phenomenological treatment of chemo-mechanical spinodal decomposition, Computational Materials, Vol. 2, 2016. Link

  7. Anderson, R. et al., MFEM: A Modular Finite Element Library, Computers and Mathematics with Applications, Vol. 81, pp. 42-74, 2021. Link

  8. van Zwieten, G., van Zwieten, J., Verhoosel, C., Fonn, E., van Opstal, T., Hoitinga, W., Nutils (version 6.2), Zenodo, 2020. Link

  9. Dalcin, L., Collier, N., Vignal, P., Côrtes, A.M.A, Calo, V.M., PetIGA: A framework for high-performance isogeometric analysis, Computer Methods in Applied Mechanics and Engineering, Vol. 308, pp. 151-181, 2016. Link

  10. Ratnani, A., Pigasus : Python for IsoGeometric AnalysiS and Unified Simulations, Computer Methods in Applied Mechanics and Engineering, Vol. 308, pp. 151-181, 2016. Link

  11. Kamensky, D., Bazilevs, Y., tIGAr: Automating isogeometric analysis with FEniCS, Computer Methods in Applied Mechanics and Engineering, Vol. 344, pp. 477-498, 2019. Link

  12. Bingol, O. R., Krishnamurthy, A., NURBS-Python: An open-source object-oriented NURBS modeling framework in Python, SoftwareX, Vol. 9, pp. 85-94, 2019. Link