Lecture 13. Intro to isogeometric analysis

Typical discretization scheme

A typical discretization scheme: given a domain $\Omega$, split it into small triangles/quadrilaterals.

$$\Omega_h = T_1 \cup \ldots \cup T_N,$$

with each element you associate a basic function $u_i$ (i.e., a piecewise-linear hat function),

and approximate the solution as a linear combination:

$$u \approx u_h = \sum_{i=1}^N c_i u_i.$$

For a finite-element method the error of approximation for piecewise-linear behaves like

$$\Vert u - u_h \Vert_{H_1} = \mathcal{O}(h),$$

i.e. we talk about low-order finite element method and for high accuracy we need huge meshes.

How we represent domains?

In many applications, the domains comes from CAD (computer-aided design) systems.

CAD and FEM

In CAD systems, the domains are represented as patches and non-uniform rational basis spline.

B-splines

The B-splines in 1D are defined recursively.

Order-0 B-splines are piecewise-constant functions.

High-order B-splines are defined from the basis functions

$$x^k_+ = \begin{cases} x^k, \quad x \geq 0, \\ 0, \quad \mbox{otherwise} \end{cases} $$

Higher-order B-splines are defined by taking tensor-product of 1D B-splines.

B-splines (2)

NURBS curve

A NURBS curve is then given as

$$ C(u) = \sum_{i=1}^k \frac{N_{i, n} w_i}{\sum_{k=1}^j N_{j, n} w_j} P_i = \sum_{i=1}^k R_{i, n} P_i,$$

where $k$ is the number of control points $P_i$, and $w_i$ are the weights.

Why NURBS are good

NURBS are good for:

  • Inserting new points (locality) (we can do h-refinement)
  • Order elevation — increasing the degree of the spline locally (we can do p-refinement)
  • Deleting points
  • Estimation of the curvature

NURBS

Rational B-splines

Weight-normalization can be also visualized as projective transformation from $\mathbb{R}^{d+1}$ to $\mathbb{R}^d$.

Important properties of NURBS

  • NURBS basis functions form a partition of unity.
  • The continuity and support of NURBS basis functions are the same as for B-splines.
  • Affine transformations in physical space are obtained by applying the transformation to the control points, that is, NURBS possess the property of affine covariance.

NURBS and FEM

Typical story: the set of patches is given, then this surface is triangulated by some internal mesher (probably very bad) to turn the model into a polygonal model.

Then, we need remeshing, adaptive mesh generation.

The idea of isogeometric analysis by TJR Hughes, JA Cottrell, Y Bazilevs (CMAME 2005) is to use the patch representation by NURBS directly to discretize the PDEs.

NURBS analysis

  • A mesh for a NURBS patch is defined by the product of knot vectors. For example, in three dimensions, a mesh is given by $N \times H \times Z$.
  • Knot spans subdivide the domain into ‘‘elements’’.
  • The support of each basis function consists of a small number of ‘‘elements’’.
  • The control points associated with the basis functions define the geometry.
  • The isoparametric concept is invoked, that is, the fields in question (e.g., displacement, velocity, temperature, are represented in terms of the same basis functions as the geometry. The coefficients of the basis functions are the degrees-of-freedom, or control variables.
  • Mesh refinement strategies are developed from a combination of knot insertion and order elevation techniques. These enable analogues of classical h-refinement and p-refinement methods, and the new possibility of k-refinement.

Benefits and problems

  • Number of patches is small (tens), number of NURBS basis functions is also small (say $10 \times 10$) in 2D
  • The convergence rate can be exponential with the number of basis functions
  • The FEM matrix elements require quadratures and the final matrix is dense.

In [1]:
from IPython.core.display import HTML
def css_styling():
    styles = open("./styles/custom.css", "r").read()
    return HTML(styles)
css_styling()


Out[1]: