Special Course Implementation of NURBS-Based Iso-Geometric Analysis (IGA)
Special Course Implementation of NURBS-Based Iso-Geometric Analysis (IGA)
Author
3 Validation 9
3.1 Deflection validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Strain-Stress validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Final discussion 13
i
Understanding Iso-Geometric Analysis (IGA)
Abstract
As the fields of design and analysis continue to evolve, the integration of geometric modeling with
numerical computation has become increasingly important. This report serves as a practical guide
for understanding the application of Non-Uniform Rational B-Splines (NURBS) within isogeometric
analysis (IGA), a methodology that bridges the gap between the precise geometries of computer-
aided design (CAD) and the analytical capabilities of finite element analysis (FEA). The report
provides a step-by-step exploration of NURBS, from their foundational concepts to their role in
the assembly of stiffness matrices in IGA. Through illustrative examples and detailed explanations,
this document is crafted to facilitate a smooth transition into the practice of IGA.
Control points:
X = [1 0 1 0 2 2 1.8 0.4 1.2 0.4 1.8 2 2 1]
Y = [0 0 1 2 2 1.6 1.8 1.8 1 0.2 0.2 0.4 0 0]
Knot vector:
KV = [0, 0, 0, 0.25, 0.5, 0.75, 1, 1, 1]
Uniform weights for control points: Figure 1: Capital sigma sum operator ( ) drawn
P
Page 1 of 14
Understanding Iso-Geometric Analysis (IGA)
1.1 Control Points
Control points in NURBS are the key elements that define the shape. They are points in space
that, along with weights, determine the position and influence of the curve or surface. Adjusting the
positions of control points alters the shape of the NURBS entity.
Considering the example shown in Figure 1 is easy to see that a shape similar to the capital sigma
can only be achieved if the control points and their connectivity draw the sigma symbol with straight
line segments.
The degree of a NURBS curve or surface determines the order of the basis functions and the
smoothness of the curve or surface. It is associated with the number of consecutive control points that
influence a particular point on the curve or surface.
The degree of the curve, denoted as p, directly influences the continuity of the NURBS curve. A
higher degree allows the curve to be smoother and more flexible, as it can accommodate more complex
shapes by considering a larger number of control points in its formation. Conversely, a lower degree
curve tends to be closer to a piece-wise linear approximation, as fewer control points influence each
segment of the curve. To illustrate this effect lets take the previous example and change the order of
the curve to p = 1 shown in Figure 2a and p = 3 shown in Figure 2b.
(a) (b)
Figure 2: Capital sigma sum operator ( ) with (a) degree of the curve p = 1 and (b) degree of the
P
curve p = 3
From Figure 2 it is easy to see that for p = 1 the basis functions associate only p + 1 = 2 control
points for each point of the curve resulting in a linear interpolation between the control points. While
for p = 3 the basis functions associate p + 1 = 4 control points, reducing the effect of each individual
control point and making the curve to follow a trajectory with a higher-order continuity and flexibility,
but ignoring small details like sharp edges defined by singles control points.
Because the order of the curve represents how many control points are being interpolated, we can
then define a maximum value such that max(p) = n − 1, with n equal to the number of control points.
The knot vector is a sequence of non-decreasing parameters that define the parametrization of the
curve or surface. It determines the locations of the knots, influencing the degree of smoothness and
the way the curve or surface interpolates or approximates the control points.
Page 2 of 14
Understanding Iso-Geometric Analysis (IGA)
The arrangement of the knots within the knot vector can significantly affect the curve’s charac-
teristics. For instance, placing multiple knots close together can create tighter bends or corners in the
curve, while evenly spaced knots contribute to a uniform and smooth curve. By manipulating the knot
vector, one can control the curve’s behavior precisely, such as where it clamps to the control points or
where it passes freely between them.
The interval between knots in the knot vector represent an interval where a specific set of p + 1
control point are interpolated. The number of knots dictates the parametrization of the spline. For a
curve with n + 1 control points, there are n + p + 1 knots, where p is the degree of the curve.
The range of the knot vector defines the parameter domain over which the NURBS curve or surface
is defined. The first p + 1 knots and the last p + 1 knots are called the "clamped" or "multiplicity p"
knots, which affect the behavior of the spline at its endpoints.
A last interesting behaviour of the curve is caused when two consecutive knots, excluding the firsts
and lasts p + 1, have the same value. This cause the basis functions to shift the control points that
participate in the generation of the curve in that given parametrical section.
This effect is illustrated in Figure 3 where Figure 3a started with an uniform distributed knot
vector and then were modified so that the knots KV (p + 4) = KV (p + 3) = KV (p + 2) = 0.091.
This modification made the first segment of the curve to be constructed considering only the first four
control point finishing in the fourth control point (0, 2), then the next segment starts from this same
point.
Figure 3b is a more clear example of this effect, here all the knots are 0.5 except for the firsts and
lasts p + 1 knots that are 0 and 1 respectively. The effect this configuration produces is divide the
curve in two segments as before, but now these two segments are built only using the firsts and lasts
p + 1 control points, ignoring all the others point in between.
(a) (b)
Figure 3: Capital sigma sum operator ( ) with p = 3 and knot vector for (a) KV =
P
[0 0 0 0 0.091 0.091 0.091 0.36 0.45 0.54 0.64 0.73 0.82 0.91 1 1 1 1] and knot vector for (b)
KV = [0 0 0 0 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 1 1 1 1]
1.4 Weights
NURBS curves and surfaces are rational, meaning they incorporate weights for each control point.
In the context of NURBS, weights play a crucial role in providing an additional degree of freedom in
shaping the curve or surface. By adjusting these weights, it is possible to manipulate the shape and
curvature of the NURBS entity.
For example, during the discussion about the order of the curve it was mentioned that considering
more control points for the generation of the curve tend to reduce the effects of each individual point
Page 3 of 14
Understanding Iso-Geometric Analysis (IGA)
in the curve. Using the weights it is possible to enhance the effects of particular control points and
obtain the desired shape.
As an example, Figure 4 shows the same curve as Figure 2b but with different weights in order to
increase again the effect of the control points in the sharp corners.
Figure 4: Sum operator ( ) with p = 3 and weights W = [1, 10, 10, 10, 1, 1, 1, 10, 10, 10, 1, 1, 1, 1]
P
With all the elements previously defined it is possible to construct the curve as in Equation 1.
And to do this we need to to define the basis function N p of order p. There are many ways to calculate
N and its first derivative, which is going to be useful later, but for the purpose of this project the
Cox-deBoor (Cox, 1971; deBoor, 1972) recursive algorithm is used for its simplicity and computational
efficiency, It is defined the next way.
1: function deBoor(i, p, KV, t)
2: dN ← 0
3: if p = 0 and t < max(KV ) then
4: N ← (KV (i) ≤ t) ∧ (t < KV (i + 1))
5: else if p = 0 and KV (i + 1) = max(KV ) then
6: N ←1
7: else
8: N 1 ← 0; dN 1 ← 0
9: N 2 ← 0; dN 2 ← 0
10: if KV (i + p) ̸= KV (i) then
11: [term1, ∼] ← deboor(i, p − 1, KV, t)
12: N 1 ← (t − KV (i))/(KV (i + p) − KV (i)) × term1
13: dN 1 ← p/(KV (i + p) − KV (i)) × term1
14: end if
15: if KV (i + p + 1) ̸= KV (i + 1) then
16: [term2, ∼] ← deboor(i + 1, p − 1, KV, t)
17: N 2 ← (KV (i + p + 1) − t)/(KV (i + p + 1) − KV (i + 1)) × term2
18: dN 2 ← p/(KV (i + p + 1) − KV (i + 1)) × term2
19: end if
20: N ← N1 + N2
21: dN ← dN 1 − dN 2
22: end if
23: return [N, dN ]
24: end function
Page 4 of 14
Understanding Iso-Geometric Analysis (IGA)
Related to the effects of the order of the curve p, the support of each basis function is limited to
a set of (p + 1) control points systematically interpolated, making B-splines computationally efficient
as changes to a control point affect only a local region of the curve.
Kd = f (2)
At the core of the classical FEA, as well as in our IGA approach, is the linear elastic equation
2, where d is the displacement vector of the mesh nodes, f is the external force vector, and K is
the system’s stiffness matrix. It is important to point that, even using the same equation 2 for both
methods, their construction and interpretation are different.
Starting from the displacement vector d. For classic FEM it represents the displacement of each
node of the mesh, while for our IGA implementation it represent the displacement of the control points,
also called control variables. It is important to understand their difference because, as explained in
the previous section, the control point are often outside the geometry space.
The next example of a simple beam is going to be used to illustrate how is the implementation of
IGA and what are the difference between these two methods. Its geometry is going to be generated
using NURBS, and a mesh is going to be derived from it to perform a classical FEA as benchmark to
validate the results.
Figure 5: Simple beam example with a punctual vertical force (green arrow) in the point (10, 0) and
magnitude of −0.001 and clamped in the left side along the line x = 0
Page 5 of 14
Understanding Iso-Geometric Analysis (IGA)
Control points: Material:
0 2.5 5 7.5 10 E=1 ν = 0.3 t=1
X = 0 2.5 5 7.5 10
0 2.5 5 7.5 10 Order of the curves:
0 0 0 0 0 px = 2 py = 2
Y = 0.5 0.5 0.5 0.5 0.5
1 1 1 1 1
Uniform weights for control points: Knot vectors:
1 1 1 1 1 KV x = [0, 0, 0, 0.33, 0.67, 1, 1, 1]
W = 1 1 1 1 1 KV y = [0, 0, 0, 1, 1, 1]
1 1 1 1 1
Using the parameter values ξ and η we generate the different nodes of the mesh used in the classical
FEA analysis. Specifically they are nx = 101 nodes in the x direction and ny = 11 nodes in the y
direction.
The first step for solving 2 and find the solution field d is the assembly of the stiffness matrix. This
assembly represent the biggest difference between IGA and FEA. This difference lays in the concept
of element and shape function used in the generation of the elemental stiffness matrix Ke .
In classical isogeometrical Q4 FEA, the element is defined by four adjacent nodes that together
form a quadrilateral element. In the example in study, each small rectangle of Figure 5 represent an
element in classical FEA.
In IGA the elements are defined differently. Here the elements are constructed between the knots
of the knot vector KV . This is because, as explained in the knot vector subsection, this interval
interpolates only a given set of p + 1 control points. The elements for the IGA structure are shown
in Figure 6, where is easy to see that the number of elements used in IGA are radically less than the
ones needed for FEA. Here we can also notice that the first element to the left is formed by the control
points 1 − 9, the second element is formed by the control points 4 − 12 and the last by the control
points 7 − 15.
Figure 6: Simple beam example with NURBS elements between knot values KV x = [0, 0.33, 0.67, 1]
and KV y = [0, 1]
Page 6 of 14
Understanding Iso-Geometric Analysis (IGA)
2.1.2 Elemental stiffness matrix
For the generation of the elemental stiffness matrix we use the isoparametric formulation from [1].
This is because the mathematical background of this formulation is used for both FEA and IGA.
To start with the definition we need to define the interpolation of internal element values (position
x, displacements ϕ, etc.) in terms of the nodal/control points values as
X X
x= Ri (ξ, η)xi , ϕ= Ri (ξ, η)ϕi . (3)
i i
∂ϕ ∂ϕ ∂x ∂ϕ ∂y ∂ϕ ∂ϕ ∂x ∂ϕ ∂y
= + , = + (4)
∂ξ ∂x ∂ξ ∂y ∂ξ ∂η ∂x ∂η ∂y ∂η
and these may be put in matrix form as
" # " #" # "P #" #
∂ϕ ∂x ∂y ∂ϕ ∂Ri P ∂Ri ∂ϕ
∂ξ xi ∂ξ yi
∂ξ
∂ϕ = ∂ξ
∂x
∂ξ
∂y
∂x
∂ϕ = Pi ∂R Pi ∂Ri
∂x
∂ϕ (5)
i ∂η xi i ∂η yi
i
∂η ∂η ∂η ∂y ∂y
where [J] is the so-called Jacobian-matrix which gives the connection between derivatives in dif-
ferent coordinate systems. The determinant of the Jacobian matrix |J| gives the scaling between dxdy
and dξdη, i.e., dxdy = |J|dξdη.
Thus we can find the field derivatives in terms of the original coordinates as
" # " # " ∂ϕ # " #
∂ϕ ∂ϕ ∂ϕ
∂x = J−1 ∂ξ = 1 J22 −J 12
∂ϕ ∂ϕ
∂ξ
∂ϕ = [Γ] ∂ξ
∂ϕ (6)
∂y ∂η
|J| −J21 J 11 ∂η ∂η
Now the Cauchy strain and displacement vector for 2D linear elasticity may be written as
ux ux
ε11 1 0 0 0
uy uy
ε22 = 0 0 0 1 = [L] (7)
vx v
2ε12 0 1 1 0 x
vy vy
where
ux
uξ
uξ
uy [Γ] [0] uη uη
= = [Γ̃] , (8)
vx
[0] [Γ] vξ
vξ
vy vη vη
and
uξ R1,ξ 0 R2,ξ ···
uη R1,η 0 R2,η · · ·
(9)
= d = [R̃] d ,
v ξ 0 R1,ξ 0 ···
vη 0 R1,η 0 ···
and thus
Page 7 of 14
Understanding Iso-Geometric Analysis (IGA)
Z Z 1 Z 1
e
[K ] = T
[B] [C][B]dA = [B]T [C][B]|J|dξdη, (11)
Ae −1 −1
Where ng is the number of Gauss points (in each direction), ξ and η give the coordinates of Gauss
points and wi are the weights of the Gauss points.
The location and weight factors for 1 to 3 Gauss points are given in the following table:
Here it is easy to see the similitude with Equation 3. Another of the differences to take into account
is that for FEA, the xi point of Equation 3 refers only to the four nodes that forms the quadrilateral
Q4 of the single element. While for IGA it represent all the control points of the geometry.
On the other hand, the shape function of our Q4 FEA is given by
1 1 1 1
R1 = (1 − ξ)(1 − η) R2 = (1 + ξ)(1 − η) R3 = (1 + ξ)(1 + η) R4 = (1 − ξ)(1 + η) (14)
4 4 4 4
Which is no more than a linear interpolation between nodes, and the reason why this FEA for-
mulation needs more elements than IGA to approximate the solution.
The second big difference mentioned before was the quadrature points used. For Equation 14
is easy to see that each element is parameterized by a subdomain Ω → [−1, 1] × [−1, 1], and the
quadrature points can be used as stated in Table 1.
Instead, for IGA the whole geometry is already parameterized by a subdomain Ω → [0, 1] × [0, 1],
and its elements are defined only in a fraction of this subdomain. More specifically, each IGA element is
defined in the subspace Ωe → [ξi , ξi+1 ]×[ηj , ηj+1 ], where ξi and ηj are the values of the knot vector such
that ξi ̸= ξi+1 and ηj ̸= ηj+1 . So, to be able to perform the numerical integration as in Equation 12,
we need to recalculate our quadrature points the next way to fit our new domain
Page 8 of 14
Understanding Iso-Geometric Analysis (IGA)
∂R ∂R ∂ξ ∂R ∂R ∂η
= , = (16)
ˆ
∂ξ ∂ξ ∂ ξˆ ∂ η̂ ∂η ∂ η̂
Our DeBoor algorithm performs the ∂R
∂ξ so the extra term we need to add is
∂ξ (ξi+1 − ξi ) ∂η (ηj+1 − ηj )
= , = , (17)
∂ ξˆ 2 ∂ η̂ 2
For both FEA and IGA, we apply zero Dirichlet boundary conditions and the final assembly of
the stiffness matrix is done in the next way
ne
X
K= Ke (18)
e
3 Validation
3.1 Deflection validation
For the first validation we simulate the system provided in the Example 2, where its results are
shown in Figure 7. Here the FEA result was already studied for convergence to be used as beanchmark
for the validation.
Figure 7: First simulation of the simple beam structure where the blue structure is the FEA solution
and the red structure is the IGA solution
In this first simulation is easy to see that the IGA already approach quite well the benchmark,
having a maximum error of 27% in the point of biggest deflection (−3.99 for the benchmark solution
vs −3.13 for the IGA solution). Nevertheless, the size of the stiffness matrix of our IGA simulation is
(30 × 30) while the one used for the benchmark is (2222 × 2222).
One of the advantages of IGA is the simplicity for the performing of refinements. To improve
the approximation from the previous simulation we will only increase the order of the curve in the x
Page 9 of 14
Understanding Iso-Geometric Analysis (IGA)
direction by 1 so that px = 3, and its knot vector becomes consequently KV x = [0, 0, 0, 0, 0.5, 1, 1, 1, 1]
leading to Figure 8.
Figure 8: Second simulation of the simple beam structure with blue as the FEA solution, and red as
the IGA solution with px = 3
For this second simulation we can see already a great improvement. Now the maximum deflection
error is around 9% (−3.99 for the benchmark solution vs −3.663 for the IGA solution), with the same
stiffness matrix size as before. This example shows the enormous effect of the degree of the curve in
the approximation of the solution.
For the third simulation we will now add an extra set of control points in the structure to study
its effects. The new structure now looks like:
Page 10 of 14
Understanding Iso-Geometric Analysis (IGA)
Figure 9: Third simulation of the simple beam structure with blue as the FEA solution, and red as
the IGA solution with an extra set of control point in the x direction
In Figure 9, the solution with the extra set of control point shows an improvement with respect
to the first simulation (Figure 7), but it is still worse than the higher degree solution from the second
simulation (Figure 8). In this case, the maximum deflection error is approximately 16% (−3.99 for the
benchmark solution vs −3.44 for the IGA solution). But now the Stiffness matrix size increased from
30 to 36. This allow us to intuit that the degree of the curve have a bigger impact in the quality of the
results than the number of control points. With that said, we cannot increase the order of the curve
as much as we want, because it is limited by the number of control point as mentioned in Section 1.
Finally, to reach a perfect fit of the IGA simulation, we are going to take the data from the
previous simulation, and we are going to increase the order of the curve in the x direction to px = 4.
This change modifies the knot vector to KV x = [0, 0, 0, 0, 0, 0.5, 1, 1, 1, 1, 1], leading us to Figure 10.
Figure 10: Fourth simulation of the simple beam structure with blue as the FEA solution, and red as
the IGA solution with 6 control points in the x direction and px = 4
Here the maximum deflection error is circa 0.02% and the stiffness matrix size is the same as in
the previous simulation (36 × 36).
Page 11 of 14
Understanding Iso-Geometric Analysis (IGA)
3.2 Strain-Stress validation
For the last part of the validation process, we will analyze the stress-strain distribution. Using
the solutions found in Figure 10 compared with the benchmark. In Figure 11 the reader can see the
resulting strains for the benchmark case and our IGA implementation. There is easy to see that,
excluding the strains in the x-direction, they are quite different.
The reason for this is assume to be because, even if the error of the approximation of the solution
using IGA is small, the strains calculated for the y-direction and shear are also small and can easily
be affected by this error. To support this idea, Figure 12 shows the absolute node error deflection in
the x and y direction. This error is bigger in the y component of the nodes, and its undulate behavior
that seems to fit with the kind of error in figures (e) and (f).
Figure 12: Absolute error between the IGA approximation and the benchmark
Page 12 of 14
Understanding Iso-Geometric Analysis (IGA)
4 Final discussion
In this project, the scope was to explain the basic steps for the implementation of a NURBS-based
Iso-Geometric Analysis departing from an already existing Q4 Isoparametric FEA. This scope was sat-
isfactorily achieved, but during the validation process we encounter some problem in the approximation
of strain and stresses, even after obtaining really good results in finding the right deflection field.
The root cause of this kind error could not be found during the realization of this report, but after
a fast analysis we can hypothesize that:
• The NURBS formulation generates an intrinsic numerical error, intuited by the systematic way
the absolute error is distributed.
• The parametrization of the curves performed between 0 − 1 could generate some numerical error
due to the necessity to work with small numbers.
With extra time to continue this study, a better formulation or error correction methods could be
added to improve the capabilities of the presented IGA code. Yet, it is also important to highlight the
potential of the IGA formulation in providing an overall accurate solution with a small fraction of the
computational complexity required by the FEA formulation used as benchmark.
Page 13 of 14
Understanding Iso-Geometric Analysis (IGA)
References
[1] Robert D. Cook, David S. Malkus, Michael E. Plesha, and Robert J. Witt. Concepts and Applica-
tions of Finite Element Analysis. 4 edition, 2002.
Page 14 of 14