ISOGAT A 2D Tutorial MATLAB Code For Isogeometric Analysis
ISOGAT A 2D Tutorial MATLAB Code For Isogeometric Analysis
, B. Simeon
Technische Universitt Mnchen, Centre for Mathematical Sciences, Boltzmannstrae 3, 85748 Garching, Germany
a r t i c l e i n f o a b s t r a c t
Article history:
Available online 18 June 2010
Keywords:
Isogeometric Analysis
MATLAB
NURBS
Exact geometry
Tutorial code
A tutorial 2D MATLAB code for solving elliptic diffusion-type problems, including Poissons
equation on single patch geometries, is presented. The basic steps of Isogeometric Analysis
are explained and two examples are given. The code has a very lean structure and has been
kept as simple as possible, such that the analogy but also the differences to traditional
nite element analysis become apparent. It is not intended for large-scale problems.
2010 Elsevier B.V. All rights reserved.
1. Introduction
Over the last years, the new eld of Isogeometric Analysis (Hughes et al., 2005) has demonstrated its potential to bridge
the gap between Computer Aided Design (CAD) and the Finite Element Method (FEM). The main feature of Isogeometric
Analysis is the usage of one common geometry representation for creating CAD models, for meshing, and for numerical
simulation. In this way, a seamless integration of all computational tools within a single design loop comes into reach.
However, the numerical analysts are typically not familiar with the elegant and powerful algorithms of computational
geometry, and on the other hand in the CAD community there is still little awareness of the specic requirements in
numerical methods. In order to further broaden the common platform of Isogeometric Analysis, we present here a tutorial
2D MATLAB code for solving diffusion-type problems on single patch geometries. The basic steps are explained and two
examples given. The code has a very lean structure and has been kept as simple as possible. It is not intended for large-
scale problems but for serving as illustration and also for teaching.
As basic reference for Isogeometric Analysis and the usage of Non-Uniform Rational B-Splines (NURBS) as basis functions
in the FEM, we recommend the recent monograph (Cottrell et al., 2009). Standard references on splines and CAD are Farin
(2002) and Piegl and Tiller (1997). Additionally, more advanced techniques like T-spline renement are discussed in Drfel
et al. (2010) and Bazilevs et al. (2010). An analysis of specic quadrature rules can be found in Hughes et al. (2010) while
swept volume techniques and a study of corresponding parameterizations are presented in Aigner et al. (2009). We nally
also mention the work on isogeometric uid-structure interaction (Bazilevs et al., 2008), stress calculation (Vuong and
Simeon, submitted for publication) and electromagnetics (Buffa et al., 2010).
The paper is organized as follows: Section 2 introduces the model problem of Poissons equation, which serves as basis
for the whole paper. How the innite-dimensional problem is discretized by means of the Galerkin projection can be found
in Section 3. After having presented the necessary fundamentals of Isogeometric Analysis in Section 4, we show how the
occurring integrals are transformed to the parametric domain in Section 5. The subsequent sections demonstrate algorithmic
details based on pieces of code, beginning with the representation of the data in Section 6 and the assembly of the stiffness
matrix and the right-hand side vector in Section 7. After the solution of the resulting linear equation system in Section 8,
*
Corresponding author.
E-mail addresses: vuong@ma.tum.de (A.-V. Vuong), heinrich@ma.tum.de (Ch. Heinrich), simeon@ma.tum.de (B. Simeon).
0167-8396/$ see front matter 2010 Elsevier B.V. All rights reserved.
doi:10.1016/j.cagd.2010.06.006
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 645
we present numerical results for an L-shape and a disk geometry in Section 9. Conclusions and an outlook are given in
Section 10.
2. Model problem
Both the FEM and Isogeometric Analysis have the same theoretical foundation, namely the weak form of a partial dif-
ferential equation (PDE). The basis of this tutorial and also of the MATLAB implementation is the elliptic partial differential
equation
(KT ) = f in (1)
where R
2
is a Lipschitz domain with boundary , f : R is a given source term, and K R
22
a symmetric
positive denite matrix. The diffusion type problem (1) arises in a variety of applications such as the temperature equation
in heat conduction, the pressure equation in ow problems, and also mesh smoothing algorithms. For K being the identity
matrix, (1) simplies to Poissons equation
T = f in . (2)
In the following, we restrict our discussion for simplicity to Poissons equation (2) with Dirichlet boundary condition
T = 0 on . (3)
The tutorial code, however, covers the more general formulation (1) and includes also a combination of zero Dirichlet and
Neumann boundary conditions.
The weak form of the PDE (2) is obtained by multiplication with test functions V and integration over . More speci-
cally, one denes the function space
V :=
_
V H
1
(), V = 0 on
_
, (4)
which consists of all functions V L
2
() that possess weak and square-integrable rst derivatives and that vanish on the
boundary. For functions T , V H
1
(), the bilinear form
a(T , V ) :=
_
T V dx dy (5)
is well-dened, and even more, it is symmetric and coercive. Setting
l, V :=
_
f V dx dy (6)
as linear form for the integration of the right-hand side, the weak formulation of the boundary value problem reads: Find
T V, such that
a(T , V ) = l, V for all V V. (7)
This problem formulation is now projected onto a nite-dimensional subspace of V.
3. Galerkin projection
The Galerkin projection replaces the innite-dimensional space V by a nite-dimensional subspace V
h
V, with the
subscript h indicating the relation to a spatial grid. Then the discretized problem reads: Find T
h
V
h
, such that
a(T
h
, V
h
) = l, V
h
for all V
h
V
h
. (8)
Let
1
, . . . ,
n
be a basis of V
h
. The numerical approximation T
h
is constructed as linear combination
T
h
=
n
i=1
q
i
i
(9)
with unknown real coecients q
i
R.
Upon inserting T
h
into the weak form (8) and testing with V
h
=
i
for i =1, . . . , n, one obtains the linear system
Aq =b (10)
with stiffness matrix A = (a(
i
,
j
))
i, j=1,...,n
, right-hand side vector b = (l,
i
)
i=1,...,n
and vector of unknowns q =
(q
i
)
i=1,...,n
. Since the matrix A inherits the properties of the bilinear form a, it is straightforward to show that A is symmetric
positive denite, and thus the numerical solution q or T
h
, respectively, is well-dened.
646 A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655
Fig. 1. Parameterization of by a geometry function F . The parametric domain is denoted by
0
.
4. Basics of Isogeometric Analysis
Suppose now that the physical domain is parameterized by a global geometry function
F:
0
, F(u, v) =
_
x
y
_
, (11)
see Fig. 1. In Isogeometric Analysis we apply NURBS to dene F.
NURBS are piecewise rational functions of degree p that are connected in so-called knots u
i
. If a knot is not repeated,
then the spline has p 1 continuous derivatives in this knot. This differs from the classical nite element spaces where
mostly C
0
elements dominate. Let = (u
0
, . . . , u
l
) R
l+1
be the knot vector, consisting of nondecreasing real numbers. We
assume that the rst and the last knots have multiplicity p +1, that means that their values are repeated p times. Therefore
the endpoints are interpolatory, which is important for representing the computational domain exactly.
The ith B-spline basis function of p-degree N
i,p
is dened recursively as
N
i,0
(u) =
_
1 if u
i
u < u
i+1
,
0 otherwise;
(12)
N
i,p
(u) =
u u
i
u
i+p
u
i
N
i,p1
(u) +
u
i+p+1
u
u
i+p+1
u
i+1
N
i+1,p1
(u). (13)
Note that the quotient 0/0 is assumed to be zero.
In one dimension, an NURBS of degree p is given by
R
i,p
(u) =
w
i
N
i,p
(u)
jJ
w
j
N
j,p
(u)
(14)
with B-splines N
i,p
, weights w
i
R and an index set J = {0, . . . , l p 1}.
A knot with multiplicity p reduces the smoothness to C
0
. More specically, the multiplicity m
i
1 of a knot u
i
decreases
the smoothness of the spline to C
pm
i
in this knot. By specifying single or multiple knots, one may thus change the
smoothness.
Bivariate NURBS are constituted by (suppressing the degrees p
u
and p
v
)
R
k
(u, v) =
w
k
N
k
(u)N
(v)
iI
jJ
w
i j
N
i
(u)N
j
(v)
. (15)
Though this representation requires a knot vector for each parameter direction,
u
= (u
0
, . . . , u
l
1
) and
v
= (v
0
, . . . , v
l
2
), it
does not exactly have a tensor product structure due to the weights w
i j
, which can be altered separately. The index sets are
I = {0, . . . , l
1
p
u
1} and J = {0, . . . l
2
p
v
1}. The continuity in each parameter direction is determined by the knot
multiplicities of the corresponding knot vectors. It should be noted that the weights do not have any inuence on this, and
therefore the tensor-product-like structure results in isoparametric lines sharing the same continuity in the other parameter
direction.
Now the geometry function F can be dened for a single patch via
F(u, v) =
iI
jJ
R
i j
(u, v)c
i j
(16)
with bivariate NURBS R
i j
on the patch
0
= [0, 1]
2
and control points c
i j
R
2
.
In Isogeometric Analysis we use the same functions R
i j
as basis functions, cf. Hughes et al., 2005, and employing the
push forward operator from
0
onto , we get
V
h
= {
k
|
k
= 0 on } span
_
R
i j
F
1
_
iI, jJ
. (17)
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 647
Note that the boundary condition T = 0 has also to be taken into account, and for this reason we write V
h
as a subset
of the span. Fig. 5 in Section 9 depicts the basis functions for the L-shape domain, which will be introduced below.
Accordingly, the numerical solution is given by
T
h
(x, y) =
iI
jJ
R
i j
_
F
1
(x, y)
_
q
i j
(18)
where some of the coecients q
i j
are determined from the boundary condition. Using a lexicographical numbering, the
unknown coecients are written as vector
q = (q
0,0
, . . . , q
l
1
p
u
1,0
, . . . , q
0,l
2
p
v
1
, . . . , q
l
1
p
u
1,l
2
p
v
1
). (19)
The same numbering is used for the assembly of the stiffness matrix and the right-hand side vector in Eq. (10).
5. Transformation to the parametric domain
With the help of F integrals over can be transformed into integrals over
0
by means of the well-known integration
rule
_
f (x, y) dx dy =
_
0
f
_
F(u, v)
_
det DF(u, v)
du dv (20)
with 2 2 Jacobian matrix
DF(u, v) =
_
F
1
/u F
1
/v
F
2
/u F
2
/v
_
. (21)
For the differentiation, the chain rule applied to T (x, y) = T (F(u, v)) yields
(x,y)
T (x, y) =DF(u, v)
T
(u,v)
T (u, v). (22)
Summarizing, the integrals in the weak form (7) satisfy the transformation rules
_
T V dx dy =
_
0
_
DF(u, v)
T
T
_
_
DF(u, v)
T
V
_
det DF(u, v)
du dv (23)
and
_
f V dx dy =
_
0
( f V )
_
F(u, v)
_
det DF(u, v)
du dv. (24)
Eq. (23) can be split up into
_
T V dx dy =
k
_
Q
k
_
DF(u, v)
T
T
_
_
DF(u, v)
T
V
_
det DF(u, v)
du dv
=
k
v
k
2
_
v
k
1
u
k
2
_
u
k
1
_
DF(u, v)
T
T
_
_
DF(u, v)
T
V
_
det DF(u, v)
du dv (25)
and Eq. (24) into
_
f V dx dy =
k
_
Q
k
( f V )
_
F(u, v)
_
det DF(u, v)
du dv
=
k
v
k
2
_
v
k
1
u
k
2
_
u
k
1
( f V )
_
F(u, v)
_
det DF(u, v)
du dv, (26)
where Q
k
= [u
k
1
, u
k
2
] [v
k
1
, v
k
2
] represents a quadrilateral in the parametric domain (cf. Fig. 1).
We remark that the Jacobian DF may become singular for certain parameterizations. Numerical experience shows that
such singularities do not seem to affect the overall solution, see Section 9.2.
648 A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655
Fig. 2. Initial geometry description of the L-shape: control point grid (left), computational domain with image of the knot lines (right).
6. Data representation and renement
After having explained the main ingredients of Isogeometric Analysis, we start now with the discussion of the tutorial
Matlab implementation. The main object in Isogeometric Analysis is the two-dimensional parameterization of the computa-
tional domain . As already discussed in the previous sections the parameterization is a spline function and can therefore
be represented with the aid of NURBS as given in Eq. (16). An appropriate data structure consists of two spline functions
with individual degrees pU, pV and corresponding knot vectors. The control points are stored in an ((l
1
p
u
) (l
2
p
v
) 2)
matrix, where the ordering runs rst along the u parameter direction and second along the v parameter direction, the
same way as already described in Section 4 for the solution vector (Eq. (19)). The following MATLAB statements dene the
geometry of the L-shape domain in Fig. 2:
pU= 2;
pV= 2;
knotVectorU= [0 0 0 0.5 0.5 1 1 1];
knotVectorV= [0 0 0 1 1 1];
weights= [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1];
controlPoints= [ -1 1; -1 0; -1 -1; 0 -1; 1 -1; -0.6 1; -0.55 0;
-0.5 -0.5; 0 -0.55; 1 -0.6; 0 1; 0 0.5; 0 0; 0.5 0; 1 0];
The rst knot vector contains a double knot, which leads to a C
0
connection. Due to the choosen degrees and knot vectors,
we have 15 basis functions and consequently the same number of control points and weights.
This data is sucient to create an instance of a MATLAB class with the call
G= isogat(pU,pV,knotVectorU,knotVectorV,controlPoints,weights);
Now the class routines can be called either directly from the command prompt or from an additionally supplied graphical
user interface (GUI) (command G.menu).
Renement is performed by using the knot renement procedures and is restricted to global h-renement. In the middle
of each nonempty knot span a knot is inserted and the new control points and weights are calculated. For example, the
command G2= G.refine() creates a rened object.
The main routines of the code dealing with splines are based on the algorithms described in Piegl and Tiller (1997).
7. Assembling the stiffness matrix and the right-hand side vector
The assembly of the stiffness matrix is the core part of the whole code. It consists mainly of three loops that correspond
to Eq. (25): one over the (nonempty) knot intervals (for this purpose the variables uKnotVectorU and uKnotVectorV
are used that do not contain the multiplicity of the knot vectors), one loop over the rst basis functions and the last loop
over the second basis functions with nonzero support within the current knot interval. Due to the tensor product structure
each of these main loops separates into two minor loops for each dimension. In these six loops the global index of the
current degree of freedom is calculated.
for intU = 1:size(uKnotVectorU,2)-1
for intV=1:size(uKnotVectorV,2)-1
quadarg={uKnotVectorU(intU),uKnotVectorU(intU+1),...
uKnotVectorV(intV),uKnotVectorV(intV+1)};
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 649
for i1=1:1+obj.pU
for j1=1:1+obj.pV
for i2 = 1:1+obj.pU
for j2 = 1:1+obj.pV
indexU=uSpanU(intU)-obj.pU;
indexV=uSpanV(intV)-obj.pV;
row(index) = indexU+i1 + (indexV+j1-1)*obj.nobU;
col(index)= indexU+i2 + (indexV+j2-1)*obj.nobU;
indexarg={indexU,indexV,i1,j1,i2,j2};
entry(index)= dgquad(@(x,y)quad_a(obj,x,y,indexarg{:}),quadarg{:},5);
index=index+1;
end
end
end
end
end
end
A=sparse(row,col,entry,obj.nobU*obj.nobV,obj.nobU*obj.nobV,index);
Furthermore to evaluate the integral in Eq. (25) the Gaussian quadrature routine dgquad is called, which employs a
user-dened number of quadrature points. There are several different expressions within this term. The gradients are only
calculated from the B-spline basis functions, whereas the transformation matrices (DF)
T
and the determinant | det DF(u, v)|
are based on the geometry function.
After the gradients gradR1 and gradR2 with respect to the parameter directions have been obtained and the Jacobian
DF has been calculated, the last line of the following piece of code just evaluates the integrand in Eq. (25).
gradR1 = [DRU(basis1U,basis1V); DRV(basis1U,basis1V)];
gradR2 = [DRU(basis2U,basis2V); DRV(basis2U,basis2V)];
DF = zeros(2,2);
for iU = 1:obj.pU+1
for iV = 1:obj.pV+1
CP = obj.controlPoints(indexU+iU + obj.nobU*(indexV+iV -1),:);
DF(:,1) = DF(:,1) + DRU(iU,iV) * CP;
DF(:,2) = DF(:,2) + DRV(iU,iV) * CP;
end
end
erg(i)= ((DF)\gradR2)*((DF)\gradR1)*abs(det(DF));
The right-hand side is assembled analogously, with the only difference that the loops over the knot intervals and the basis
functions, cf. Eq. (26), have to be taken into account.
The assembly of the stiffness matrix requires no preprocessing of geometry data and works directly with the knot vectors.
As alternative, one could also extract a mesh structure with global numbering of the unknowns in the very beginning.
Moreover, the quadrature evaluation can be accelerated by using MATLABs vectorization features. See Koko (2007) for a
discussion of this topic for traditional FEM.
After the stiffness matrix and the right-hand side have been assembled, the boundary conditions still need to be enforced.
For enforcing zero Dirichlet boundary conditions, non-diagonal entries in the row and column of the corresponding degree
of freedom are eliminated and the entry on the right-hand side is nullied.
8. Solving the linear equation and plotting the solution
The resulting system of linear equations is solved by the built-in MATLAB backslash operator. The following piece of code
summarizes the whole solution process for the instance G.
[A,b]=G.assemble;
[A,b]=G.bc(A,b);
x=A\b;
G.plotField(x);
Finally, for applying the plot facilities of MATLAB, the numerical approximation needs to be reconstructed from the
coecients.
650 A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655
Fig. 3. Rened L-shape: control point grid (left), computational domain with image of the knot lines (right).
[sU,sV,C] = getPlotMatrix(obj,resol);
SU = zeros(sU,sV);
SV = zeros(sU,sV);
SOL= zeros(sU,sV);
for iU=1:obj.nobU
for iV= 1:obj.nobV
tmp = C{iU,iV};
index = iU+obj.nobU*(iV-1);
SU = SU + tmp * obj.controlPoints(index,1);
SV = SV + tmp * obj.controlPoints(index,2);
SOL = SOL + tmp * x(index);
end
end
figure;
mesh(SU,SV,SOL)
The complete code, along with the demo examples below, is available for download from our web page.
1
As introduced
in Section 2, it also covers diffusion-type equations (1) with a 2 2 coecient matrix K. Moreover, combinations of zero
Dirichlet and Neumann boundary conditions are admitted.
9. Examples
In this section we study two examples, an L-shape domain with two different parameterizations and a disk. For both
examples, analytic reference solutions are available and help to assess the numerical results.
9.1. L-shape
The rst geometry, the L-shape, is parameterized according to the data given in Section 6. The grid of control points and
the physical domain including the image of the knot lines are plotted in Fig. 2.
Fig. 3 shows the same geometry after three renement steps. Note that the image of the knot lines represents the
computational mesh for the discretization of . As already mentioned in Section 4, the basis functions on the L-shape are
plotted in Fig. 5.
On this domain we solve
T = 2
2
sin(x) sin( y) (27)
with zero Dirichlet boundary conditions and analytical solution
T (x, y) =sin(x) sin( y). (28)
Fig. 4 shows the numerical approximation and the distribution of the absolute error. Such an error plot, however,
comprises solely little information on the convergence of the method. In order to study the convergence and the qual-
ity of different parameterizations, we introduce an alternative geometry map via
1
http://www-m2.ma.tum.de/bin/view/Allgemeines/EXCITING.
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 651
Fig. 4. Numerical solution for 66 degrees of freedom (left), absolute error (right).
pU= 2;
pV= 2;
knotVectorU= [0 0 0 0.5 1 1 1];
knotVectorV= [0 0 0 1 1 1];
weights= [1,1,1,1,1,1,1,1,1,1,1,1];
controlPoints = [ -1 1; -1 -1; -1 -1; 1 -1; -0.65 1; -0.7 0;
0 -0.7; 1 -0.65; 0 1; 0 0; 0 0; 1 0];
This parameterization is globally C
1
-continuous, in contrast to the rst one, which has a C
0
-edge in the interior of the
domain. The corresponding control point grid and the physical domain including the image of the knot lines are plotted in
Fig. 6.
In order to compare the two parameterizations, we rst calculate the energy norm
T
h
E
=
_
q
T
Aq (29)
of the numerical approximation. The norm T
h
E
is plotted in Fig. 7 on the left. As can be seen, by rening the grids
both numerical solutions tend to the same maximum value. This conrms the theoretical result that T
h
E
T
E
from
below for any convergent Galerkin projection method. The convergence speed may serve as an indicator of the convergence
behavior of the method.
As discussed in Bazilevs et al. (2006), the convergence estimates feature a factor DF
1
on the right-hand side, and
thus it is clear that the geometry function (parameterization) has an inuence on the accuracy.
In Fig. 7 on the left one can observe that the rst parameterization behaves better especially in case of coarse meshes
with few degrees of freedom. This is also approved by Fig. 7 on the right, where we have plotted the L
2
error norm
T T
h
L
2
of both parameterizations for several renement steps.
Further results on the inuence of the parameterization can be found in Cohen et al. (2010) and Lipton et al. (2010).
9.2. Disk
The disk geometry belongs to the class of conic intersections that can only be described by rational splines and not by
polynomial splines. We use the following parameterization with quadratic NURBS:
pU= 2;
pV= 2;
knotVectorU= [0 0 0 1 1 1];
knotVectorV= [0 0 0 1 1 1];
weights=[ 1 sqrt(2)/2 1 sqrt(2)/2 1 sqrt(2)/2 1 sqrt(2)/2 1];
controlPoints=[ -sqrt(2)/4 sqrt(2)/4; -sqrt(2)/2 0; -sqrt(2)/4 -sqrt(2)/4;
0 sqrt(2)/2; 0 0; 0 -sqrt(2)/2;
sqrt(2)/4 sqrt(2)/4; sqrt(2)/2 0; sqrt(2)/4 -sqrt(2)/4];
The initial geometry and the corresponding coarse mesh are shown in Fig. 8, while Fig. 9 depicts a rened version.
652 A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655
Fig. 5. Basis functions of the initial description on the L-shape domain for the rst parameterization.
In order to test our implementation, we solve
T = sin
_
10
_
x
2
+ y
2
_
(30)
with zero Dirichlet boundary condition and analytical solution
T (x, y) =
1
100
10
x
2
+y
2
_
0
sin(t)
t
dt +
1
100
sin
_
10
_
x
2
+ y
2
_
+
1
100
5
_
0
sin(t)
t
dt
1
100
sin(5). (31)
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 653
Fig. 6. Initial geometry description of the L-shape: control point grid (left), computational domain with image of the knot lines (right) for the second
parameterization.
Fig. 7. Comparison of the energy norm T
h
E
(left) and the L
2
error norm T T
h
L
2
(right) between the two parameterizations of the L-shape domain.
Fig. 8. Initial geometry description of the disk: control point grid (left), computational domain with image of the knot lines (right).
The numerical result and the absolute error are shown in Fig. 10. We stress that, once again, different parameterizations
of the geometry are possible and these may also result in a different numerical behavior. Another aspect are the four
singularities of the Jacobian DF that arise for this particular geometry function. The singularities lie on the circle line and
are marked by black dots in Fig. 8 on the right. In our numerical experiments, the quadrature for evaluating Eq. (25)
remained stable and did not suffer from the singularities, even in close proximity. A conclusive explanation for this stable
behavior, however, is subject of ongoing research, see also Aigner et al. (2009).
10. Conclusions
In this contribution we have outlined the basic steps of Isogeometric Analysis, especially the usage of a common ge-
ometry representation for CAD and numerical analysis. Key parts of the method have been illustrated using a tutorial 2D
MATLAB code, which has a very lean structure, is interactive and straightforward to use, and which helps to understand
654 A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655
Fig. 9. Rened disk: control point grid (left), computational domain with image of the knot lines (right).
Fig. 10. Numerical solution for 100 degrees of freedom (left), absolute error (right).
the algorithm in detail. We stress that the code is not intended for more complex problems where a more advanced design
and more sophisticated techniques are favorable. Further features such as more involved boundary conditions or specic
quadrature rules have also been omitted for the sake of simplicity. The numerical comparison of different isogeometric dis-
cretizations reveals that the choice of the geometry map may have inuence on the quality of the results. This is a topic
that denitely deserves further attention in the future.
Acknowledgements
The authors thank Bert Jttler and his coworkers for many fruitful discussions. Furthermore, the support by the 7th
Framework Programme of the European Union, project SCP8-218536 EXCITING, is gratefully acknowledged.
References
Aigner, M., Heinrich, C., Jttler, B., Pilgerstorfer, E., Simeon, B., Vuong, A.-V., 2009. Swept volume parametrization for isogeometric analysis. In: Hancock, E.,
Martin, R. (Eds.), The Mathematics of Surfaces. MoS XIII, 2009. Springer.
Bazilevs, Y., Calo, V.M., Cottrell, J.A., Evans, J., Hughes, T.J.R., Lipton, S., Scott, M.A., Sederberg, T.W., 2010. Isogeometric analysis using T-splines. Computer
Methods in Applied Mechanics and Engineering 199, 229263.
Bazilevs, Y., Calo, V.M., Hughes, T.J.R., Zhang, Y., 2008. Isogeometric uid-structure interaction: Theory, algorithms, and computations. Computational Me-
chanics 43, 337.
Bazilevs, Y., da Veiga, L.B., Cottrell, J., Hughes, T., Sangalli, G., 2006. Isogeometric Analysis: Approximation, stability and error estimates for h-rened meshes.
Mathematical Models and Methods in Applied Sciences 16 (7), 10311090.
Buffa, A., Sangalli, G., Vzquez, R., 2010. Isogeometric analysis in electromagnetics: B-splines approximation. Computer Methods in Applied Mechanics and
Engineering 199, 11431152.
A.-V. Vuong et al. / Computer Aided Geometric Design 27 (2010) 644655 655
Cohen, E., Martin, T., Kirby, R.M., Lyche, T., Riesenfeld, R.F., 2010. Analysis-aware modeling: Understanding quality considerations in modeling for isogeo-
metric analysis. Computer Methods in Applied Mechanics and Engineering 199, 334356.
Cottrell, J.A., Hughes, T.J.R., Bazilevs, Y., 2009. Isogeometric Analysis: Toward Integration of CAD and FEA. John Wiley & Sons.
Drfel, M.R., Jttler, B., Simeon, B., 2010. Adaptive isogeometric analysis by local h-renement with T-splines. Computer Methods in Applied Mechanics and
Engineering 199, 264275.
Farin, G., 2002. Curves and Surfaces for CAGD: A Practical Guide, 5th ed. Morgan Kaufmann.
Hughes, T.J.R., Cottrell, J.A., Bazilevs, Y., 2005. Isogeometric analysis: CAD, nite elements, NURBS, exact geometry and mesh renement. Computer Methods
in Applied Mechanics and Engineering 194, 41354195.
Hughes, T.J.R., Reali, A., Sangalli, G., 2010. Ecient quadrature for NURBS-based isogeometric analysis. Computer Methods in Applied Mechanics and Engi-
neering 199, 301313.
Koko, J., 2007. Vectorized matlab codes for linear two-dimensional elasticity. Scientic Programming 15, 157172.
Lipton, S., Evans, J.A., Bazilevs, Y., Elguedj, T., Hughes, T.J.R., 2010. Robustness of isogeometric structural discretizations under severe mesh distortion.
Computer Methods in Applied Mechanics and Engineering 199, 357373.
Piegl, L., Tiller, W., 1997. The NURBS Book. Monographs in Visual Communication, 2nd ed. Springer, New York.
Vuong, A.-V., Simeon, B., submitted for publication. On isogeometric analysis and its usage for stress calculation.