We present the design of an object oriented general purpose library for isogeometric analysis, where the mathematical concepts of the isogeometric method and their relationships are directly mapped into classes and their interactions. The encapsulation of mathematical concepts into interacting building blocks gives flexibility to use the library in a wide range of scientific areas and applications. We provide a precise framework for a lot of loose, available information regarding the implementation of the isogeometric method, and also discuss the similarities and differences between this and the finite element method. We also describe how to implement this proposed design in a C++11 open source library, \textttigatools (http://www.igatools.org). The library uses advanced object oriented and generic programming techniques to ensure reusability, reliability, and maintainability of the source code. It includes isogeometric elements of the h-div and h-curl type, and supports the development of dimension independent code (including manifolds and tensor-valued spaces). We finally present a number of code examples to illustrate the flexibility and power of the library, including surface domains, nonlinear elasticity, and Navier--Stokes computations on nontrivial geometries.

Igatools: An isogeometric analysis library

MS Pauletti;M Martinelli;
2015

Abstract

We present the design of an object oriented general purpose library for isogeometric analysis, where the mathematical concepts of the isogeometric method and their relationships are directly mapped into classes and their interactions. The encapsulation of mathematical concepts into interacting building blocks gives flexibility to use the library in a wide range of scientific areas and applications. We provide a precise framework for a lot of loose, available information regarding the implementation of the isogeometric method, and also discuss the similarities and differences between this and the finite element method. We also describe how to implement this proposed design in a C++11 open source library, \textttigatools (http://www.igatools.org). The library uses advanced object oriented and generic programming techniques to ensure reusability, reliability, and maintainability of the source code. It includes isogeometric elements of the h-div and h-curl type, and supports the development of dimension independent code (including manifolds and tensor-valued spaces). We finally present a number of code examples to illustrate the flexibility and power of the library, including surface domains, nonlinear elasticity, and Navier--Stokes computations on nontrivial geometries.
2015
Istituto di Matematica Applicata e Tecnologie Informatiche - IMATI -
isogeometric analysis
software library
open source
object oriented
generic programming
dimension independent
B-splines
NURBS
h div
h curl
CAD integration
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14243/295108
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 29
  • ???jsp.display-item.citation.isi??? ND
social impact