Isogeometric analysis is a computational approach that offers the possibility of integrating finite element analysis (FEA) into conventional NURBS-based CAD design tools. Currently, it is necessary to convert data between CAD and FEA packages to analyse new designs during development, a difficult task since the two computational geometric approaches are different. Isogeometric analysis employs complex NURBS geometry (the basis of most CAD packages) in the FEA application directly. This allows models to be designed, tested and adjusted in one go, using a common data set.
The pioneers of this technique are Tom Hughes and his group at The University of Texas at Austin. A reference free software implementation of some isogeometric analysis methods is GeoPDEs. Likewise, other implementations can be found online. For instance, PetIGA is an open framework for high performance isogeometric analysis heavily based on PETSc. In addition, MIGFEM is another IGA code which is implemented in Matlab and supports Partition of Unity enrichment IGA for 2D and 3D fracture. Furthermore, G+Smo is an open C++ library for isogeometric analysis. In particular, FEAP is a finite element analysis program which includes an Isogeometric analysis library FEAP IsoGeometric (Version FEAP84 & Version FEAP85).
Advantages of IGA with respect to FEA
In the framework of IGA, the notions of both control mesh and physical mesh are defined.
The physical mesh lays directly on the geometry and it consists of patches and knot spans. According to the number of patches that are used in a specific physical mesh, a single-patch or a multi-patch approach is effectively employed. A patch is mapped from a reference rectangle in two dimensions and from a reference cuboid in three dimensions: it can be seen as the entire computational domain or a smaller portion of it. Each patch can be decomposed into knot spans, which are points, lines and surfaces in 1D, 2D and 3D, respectively. Knots are inserted inside knot spans and define the elements. Basis functions are across the knots, with degree of the polynomial and multiplicity of a specific knot, and between a certain knot and the next or preceding one.
A knot vector, normally indicated as , is a set of non-descending points. is the knot, is the number of functions, refers to the basis functions order. A knot divides the knot span into elements. A knot vector is uniform or non-uniform according to the fact that its knots, once their multiplicity is not taken into account, are equidistant or not. If the first and the last knots appear times, the knot vector is said to be open.
Using De Boor's algorithm, it is possible to generate B-splines of arbitrary order :
valid for both uniform and non-uniform knot vectors. For the previous formula to work properly, let the division of two zeros to be equal to zero, i.e. .
B-splines that are generated in this way own both the partition of unity and positivity properties, i.e:
So as to calculate derivatives or order of the B-splines of degree , another recursive formula can be employed:
whenever the denominator of an coefficient is zero, the entire coefficient is forced to be zero as well.
where is the number of basis functions , and is the control point, with dimension of the space in which the curve is immersed.
where and are the numbers of basis functions and defined on two different knot vectors , , represents now a matrix of control points (also called control net).
In IGA basis functions are also employed to develop the computational domain and not only for representing the numerical solution. For this reason they should have all the properties that permit to represent the geometry in an exact way. B-splines, due to their intrinsic structure, are not able to generate properly circular shapes for instance. In order to circumvent this issue, non-uniform rational B-splines, also known as NURBS, are introduced in the following way:
where is a one dimensional B-spline, is referred to as weighting function, and finally is the weight.
with vector of control points.
The first one is known as knot insertion (or h-refinement in the FEA framework), where is obtained from with the addition of more knots, which implies an increment of both the number of basis functions and control points.
- Cottrell, J. Austin; Hughes, Thomas J.R.; Bazilevs, Yuri (October 2009). Isogeometric Analysis: Toward Integration of CAD and FEA. John Wiley & Sons. ISBN 978-0-470-74873-2. Retrieved 2009-09-22.
- "GeoPDEs: a free software tool for isogeometric analysis of PDEs". 2010. Retrieved November 7, 2010.
- de Falco, C.; A. Reali; R. Vázquez (2011). "GeoPDEs: a research tool for Isogeometric Analysis of PDEs". Adv. Eng. Softw. 42: 1020–1034.
- "PetIGA: A framework for high performance Isogeometric Analysis". 2012. Retrieved August 7, 2012.
- "G+Smo: a C++ library for isogeometric analysis, developed at RICAM, Linz". 2017. Retrieved July 9, 2017.
- "FEAP: FEAP is a general purpose finite element analysis program which is designed for research and educational use, developed at University of California, Berkeley". 2018. Retrieved April 21, 2018.
- Pegolotti, Luca; Dedè, Luca; Quarteroni, Alfio (January 2019). "Isogeometric Analysis of the electrophysiology in the human heart: Numerical simulation of the bidomain equations on the atria" (PDF). Computer Methods in Applied Mechanics and Engineering. 343: 52–73. doi:10.1016/j.cma.2018.08.032.
- U.S. Patent: Method and System for Performing T-Spline Based Isogeometric Analysis
- GeoPDEs: a free software tool for Isogeometric Analysis based on Octave
- MIG(X)FEM: a free Matlab code for IGA (FEM and extended FEM)
- PetIGA: A framework for high-performance Isogeometric Analysis based on PETSc
- G+Smo (Geometry plus Simulation modules): a C++ library for isogeometric analysis, developed at RICAM, Linz
- FEAP: a general purpose finite element analysis program which is designed for research and educational use, developed at University of California, Berkeley
- Bembel: An open-source isogeometric boundary element library for Laplace, Helmholtz, and Maxwell problems written in C++