jorek-django: a new finite elements framework for...
TRANSCRIPT
Jorek-Django: A new Finite Elements frameworkfor Computational Plasmas Physics
Ahmed RatnaniIPP, Garching, Germany
May 28, 2015
A. Ratnani Jorek-Django 1/51
1/51
A brief recall about JOREK
� closed & open field lines domain, X-point geom.
• Cubic Finite Elements, flux aligned poloidal grid• Isoparametric: elements approaching geometry are used to approach unknowns• Fourier series in toroidal direction• Non-linear reduced MHD in toroidal geometry
� time stepping, solver & parallelism
• fully implicit Crank-Nicholson• sparse matrices (PastiX): ∼ 107 degrees of freedom• MPI/OpenMP over typically 256− 1500 processors
A. Ratnani Jorek-Django 2/51
2/51
Need to Upgrade & Rewrite JOREK
About the Geometry
� Exact geometry, mappings singularities
� Grid Generation & post-treatment
About the Numerics
� Memory limitations due to the current preconditionner (forrealistic ITER simulations)
� Reduce the size/ number of non zeros of the linear system
� Stability
� New time & space discretization
About the Code Design and Architecture
� Extract & Upgrade new models à Physics based preconditioners
� New time & space discretization
� Galerkin-Rietz vs Galerkin-Petrov, Mixed FEM
A. Ratnani Jorek-Django 3/51
3/51
A. Ratnani Jorek-Django 4/51
4/51
Introducing JOREK-Django
JOREK-Django is the experimental version of JOREK.
� Geometry: 2D, 2D ⊗ 1D, 3D� Cubic Hermite-Bezier quadrangles (Poloidal Plane)� General Bezier quadrangles/triangles, using Bernstein polynomials
(Poloidal Plane)� Fourier (Toroidal direction)� Hermite Bezier (Toroidal direction)� General Bezier curves (Toroidal direction)
� Finite Element Spaces� Standard and IsoParametric/IsoGeometric approachs� Basis functions are defined as linear span of Bernstein polynomials,� Compatible spaces for H1,H1(curl),H1(div), L2 (DeRham sequences)
� Code Design� Based on PetSc through SPM (Sparse Matrix Manager)� Small libraries, Fortran 2003, MPI, Python package� was designed to fit with the Physics-Based Preconditioners� Matrix-Free� Post-treatment diagnostics, based on Bezier patchs description
A. Ratnani Jorek-Django 5/51
5/51
Introducing JOREK-Django
� JOREK and his friends� CAID is a multi-platform software that has been designed for
IsoGeometric Analysis Pre and Post Processing. Its design goal is toprovide a fast, light and user-friendly designer and meshing tool.
� Splitri is a Python package for creating and manipulating Splinespaces on triangulations
� SELALIB : is a library for Semi-Lagrangian and PIC methods
� Models� 2D Poisson, Elliptic PDE, Bilaplacian, Grad-Shafranov (Picard &
Newton), Current-Hole, Dumped Waves,� 2D ⊗ 1D Anisotropic Diffusion, Current-Hole
� Geometric MultiGrid solver� Interpolation & Restriction operators based on Spline refinement as
Linear Operator (using Bezier extraction matrices),� Already tested in Pigasus on 2D Anisotropic Diffusion problem TODO
in Django
A. Ratnani Jorek-Django 6/51
6/51
Need to Upgrade & Rewrite JOREK
About the Geometry
� Exact geometry, mappings singularities
� Use the general definition of Bezier quadrangles-surfaces instead of CubicHermite-Bezier
� Extend it to Bezier triangles-surfaces
� Grid Generation & post-treatment
� Interactive tool to manipulate the poloidal Grid� A common framework for post-treatment processing independently from the
Finite Element Space
à Bezier techniques provide a geometric-based method for describing and manipulatingpolynomial curves and surfaces.
� brings sophisticated mathematical concepts into a highly geometric and intuitive form.
� this form facilitates the creative design process.
� Bezier techniques are an excellent choice in the context of numerical stability offloating point operations[Farouki & Rajan].
à Bezier techniques are at the core of 3D Modeling or Computer Aided Geometric Design
(CAGD).
A. Ratnani Jorek-Django 7/51
7/51
Need to Upgrade & Rewrite JOREK
About the Geometry
� Exact geometry, mappings singularities
� Use the general definition of Bezier quadrangles-surfaces instead of CubicHermite-Bezier
� Extend it to Bezier triangles-surfaces
� Grid Generation & post-treatment
� Interactive tool to manipulate the poloidal Grid� A common framework for post-treatment processing independently from the
Finite Element Space
à Bezier techniques provide a geometric-based method for describing and manipulatingpolynomial curves and surfaces.
� brings sophisticated mathematical concepts into a highly geometric and intuitive form.
� this form facilitates the creative design process.
� Bezier techniques are an excellent choice in the context of numerical stability offloating point operations[Farouki & Rajan].
à Bezier techniques are at the core of 3D Modeling or Computer Aided Geometric Design
(CAGD).
A. Ratnani Jorek-Django 7/51
7/51
Bezier techniques in Video Games
A. Ratnani Jorek-Django 8/51
8/51
Modeling a curve : the p-form
The first way to model a curve would be to consider the following form :
C(x(t)) =n
∑i=0
t iPi (1)
Let us denote x(t) =
x(t)y (t)z(t)
, and Pi =
Pxi
Pyi
Pzi
. The relation (1) can be written,
x(t) = ∑n
i=0 tiPx
iy (t) = ∑n
i=0 tiPy
iz(t) = ∑n
i=0 tiPz
i
(2)
A simple computation leads to Pi =1i !
d (i)
dt C(x(t))|t=0, for each i ∈ {0, · · · , n}. Even ifthe p-form is a natural description for curves, it presents some disadvantages :
� the curve is not necessary regular everywhere. So a regular description of the curve,may lead to non-efficient approximation,
� the points (Pi )0≤i≤n do not have any geometric interpretation,
� numerical evaluation of such description, needs the use of Horner algorithm, which isunstable.
A. Ratnani Jorek-Django 9/51
9/51
Modeling a curve : the Bezier-form
Rather than use {1, t, · · · , tn} as a basis of Π<n+1, we can take Bernstein polynomials;this leads to the Bezier-form. Therefore, it is equivalent to the p-form and writes :
C(x(t)) =n
∑i=0
Bni (t)Pi , for each 0 ≤ t ≤ 1 (3)
where Bni denote Bernstein polynomials :
Bni (t) =
(ni
)t i (1− t)n−i =
n!i !(n− i)!
t i (1− t)n−i , for each 0 ≤ t ≤ 1 (4)
The sequence (Pi )0≤i≤n is called control points.
Multivariate Bernstein polynomials in 2D
� Use tensor product 1D ⊗ 1D of Bernstein polynomials on quadrangles,
� Use Bernstein polynomials on triangles
A. Ratnani Jorek-Django 10/51
10/51
Properties of Bezier curves� Invariance under some transformations : rotation, translation, scaling; it is sufficient to
transform the control points,
� Bni (t) ≥ 0, ∀ 0 ≤ t ≤ 1
� partition of unity : ∑ni=0 B
ni (t) = 1, ∀ 0 ≤ t ≤ 1
� Bn0 (0) = Bn
n (1) = 1
� each Bni has exactly one maximum in [0, 1], at i
n
� Bni are symmetric with respect to 1
2
� recursive property : Bni (t) = (1− t)Bn−1
i (t) + tBn−1i−1 (t), and
Bni (t) = 0, if i < 0 or, i > n
� deriving a curve : C ′(t) = n{∑n−1i=0 Bn−1
i (t) (Pi+1 −Pi )}, then :
C ′(0) = n (P1 −P0) C ′(1) = n (Pn −Pn−1) (5)
C ′′(0) = n(n− 1) (P0 − 2P1 + P2) C ′′(1) = n (Pn − 2Pn−1 + Pn−2) (6)
� DeCasteljau algorithm:
Cn(t; P0, · · · , Pn) = (1− t)Cn−1(t; P0, · · · , Pn−1) + tCn−1(t; P1, · · · , Pn) (7)
A. Ratnani Jorek-Django 11/51
11/51
Extending The Geometry description: Rectangular case
Cubic Hermite-Bezier patchs
� starting from a cubic Bezier
x(s, t) =3,3
∑i ,j=0
xijBi (s)Bj (t), s, t ∈ [0, 1] (8)
Computing derivatives of this surface on the four (logical) points{(s, t) = (0, 0), (0, 1), (1, 0), (1, 1)} leads to
x(0, 0) = x00, xs (0, 0) = 3(x10 − x00), xt (0, 0) = 3(x01 − x00), xst (0, 0) = 9(x00 + x11 − x01 − x10)
x(0, 1) = x03, xs (0, 1) = 3(x13 − x03), xt (0, 1) = 3(x03 − x02), xst (0, 1) = 9(x03 + x12 − x02 − x13)
x(1, 0) = x30, xs (1, 0) = 3(x30 − x20), xt (1, 0) = 3(x31 − x30), xst (1, 0) = 9(x30 + x21 − x20 − x31)
x(1, 1) = x33, xs (1, 1) = 3(x33 − x23), xt (1, 1) = 3(x33 − x32), xst (1, 1) = 9(x33 + x22 − x23 − x32)
(9)
Now, let us introduce the following quantities
a00 = ‖x10 − x00‖, b00 = ‖x01 − x00‖, u00 =x10−x00
a00, v00 =
x01−x00b00
, w00 =x00+x11−x01−x10
a00b00
a03 = ‖x13 − x03‖, b03 = ‖x03 − x02‖, u03 =x13−x03
a03, v03 =
x03−x02b03
, w03 =x03+x12−x02−x13
a03b03
a30 = ‖x30 − x20‖, b30 = ‖x31 − x30‖, u30 =x30−x20
a30, v30 =
x31−x30b30
, w30 =x30+x21−x20−x31
a30b30
a33 = ‖x33 − x23‖, b33 = ‖x33 − x32‖, u33 =x33−x23
a33, v33 =
x33−x32b33
, w33 =x33+x22−x23−x32
a33b33(10)
A. Ratnani Jorek-Django 12/51
12/51
Extending The Geometry description: Rectangular case
Cubic Hermite-Bezier description
x(s, t) = x00M00(s, t) + a00u00N00(s, t) + b00v00P00(s, t) + a00b00w00Q00(s, t)
+x03M03(s, t) + a03u03N03(s, t) + b03v03P03(s, t) + a03b03w03Q03(s, t)
+x30M30(s, t) + a30u30N30(s, t) + b30v30P30(s, t) + a30b30w30Q30(s, t)
+x33M33(s, t) + a33u33N33(s, t) + b33v33P33(s, t) + a33b33w33Q33(s, t) (11)
where the new basis is (Eq. 12)
M00(s, t) = B0(s)B0(t) +B1(s)B0(t)
+B0(s)B1(t) +B1(s)B1(t),
N00(s, t) = B1(s)B0(t) +B1(s)B1(t),
P00(s, t) = B0(s)B1(t) +B1(s)B1(t),
Q00(s, t) = B1(s)B1(t)
M03(s, t) = B0(s)B3(t) +B1(s)B3(t)
+B0(s)B2(t) +B1(s)B2(t),
N03(s, t) = B1(s)B3(t) +B1(s)B2(t),
P03(s, t) = −B0(s)B2(t)−B1(s)B2(t),
Q03(s, t) = B1(s)B2(t)
M30(s, t) = B3(s)B0(t) +B2(s)B0(t)
+B3(s)B1(t) +B2(s)B1(t),
N30(s, t) = −B2(s)B0(t)−B2(s)B1(t),
P30(s, t) = B3(s)B1(t) +B2(s)B1(t),
Q30(s, t) = B2(s)B1(t)
M33(s, t) = B3(s)B3(t) +B2(s)B3(t)
+B3(s)B2(t) +B2(s)B2(t),
N33(s, t) = −B2(s)B3(t)−B2(s)B2(t),
P33(s, t) = −B3(s)B2(t)−B2(s)B2(t),
Q33(s, t) = B2(s)B2(t)
(12)
The latest formulae can be written in matrix form B = BB, where B is the vector ofBernstein polynomials (B0B0,B1B0,B2B0, ... ,B3B3)
T
A. Ratnani Jorek-Django 13/51
13/51
Extending The Geometry description: Rectangular case
Cubic Hermite-Bezier description
x(s, t) = x00M00(s, t) + a00u00N00(s, t) + b00v00P00(s, t) + a00b00w00Q00(s, t)
+x03M03(s, t) + a03u03N03(s, t) + b03v03P03(s, t) + a03b03w03Q03(s, t)
+x30M30(s, t) + a30u30N30(s, t) + b30v30P30(s, t) + a30b30w30Q30(s, t)
+x33M33(s, t) + a33u33N33(s, t) + b33v33P33(s, t) + a33b33w33Q33(s, t) (11)
where the new basis is (Eq. 12)
M00(s, t) = B0(s)B0(t) +B1(s)B0(t)
+B0(s)B1(t) +B1(s)B1(t),
N00(s, t) = B1(s)B0(t) +B1(s)B1(t),
P00(s, t) = B0(s)B1(t) +B1(s)B1(t),
Q00(s, t) = B1(s)B1(t)
M03(s, t) = B0(s)B3(t) +B1(s)B3(t)
+B0(s)B2(t) +B1(s)B2(t),
N03(s, t) = B1(s)B3(t) +B1(s)B2(t),
P03(s, t) = −B0(s)B2(t)−B1(s)B2(t),
Q03(s, t) = B1(s)B2(t)
M30(s, t) = B3(s)B0(t) +B2(s)B0(t)
+B3(s)B1(t) +B2(s)B1(t),
N30(s, t) = −B2(s)B0(t)−B2(s)B1(t),
P30(s, t) = B3(s)B1(t) +B2(s)B1(t),
Q30(s, t) = B2(s)B1(t)
M33(s, t) = B3(s)B3(t) +B2(s)B3(t)
+B3(s)B2(t) +B2(s)B2(t),
N33(s, t) = −B2(s)B3(t)−B2(s)B2(t),
P33(s, t) = −B3(s)B2(t)−B2(s)B2(t),
Q33(s, t) = B2(s)B2(t)
(12)
The latest formulae can be written in matrix form B = BB, where B is the vector ofBernstein polynomials (B0B0,B1B0,B2B0, ... ,B3B3)
T
A. Ratnani Jorek-Django 13/51
13/51
Extending The Geometry description: Rectangular case
Bezier patchs of arbitrary degreesA bezier patch of degrees (p, q) is defined as
x(s, t) =p,q
∑i ,j=0
xijBi (s)Bj (t), s, t ∈ [0, 1] (13)
where (xij )0≤i≤p,0≤j≤q are called control points
Properties
� Endpoint interpolation: The patch passes through the four corner control points{(s, t) = (0, 0), (0, 1), (1, 0), (1, 1)},
� Each boundary corredponds to a Bezier curve
� Symmetry in the parametric domain
� Affine invariance (applied to the control points)
� Convex Hull,
� C1 patchs can be easily created by solving (local/global) linear systems, using theendpoints derivatives and moving some specific control points,
A. Ratnani Jorek-Django 14/51
14/51
Extending The Geometry description: Rectangular case
Geometric Operations
� (Exact) Subdivision,
� (Exact) Degree Elevation,
� (Inexact) Patchs merge, (Exact if a Spline description is used)
� (Inexact) Degree Reduction
Figure: A mapping as a cubic Bezier patch (left) parametric domain with its domain
points, (right) the resulting physical domain
A. Ratnani Jorek-Django 15/51
15/51
Extending The Geometry description: Triangular case
Barycentric coordinatesLet T = {v1, v2, v3} be a non-degenerate triangle in the plance. Then for all point P inthe plane, there exists τ = {τ1, τ2, τ3} such that P = ∑3
i=1 τivi .
� τ is unique if one add the normalization constraint ∑3i=1 τi = 1 (will be assumed
during this talk)
� P ∈ T if and only if τ ≥ 0
� Affine invariance: if the triangle T together with the point P are transformed by anaffine transformation, the transformed point has unchanged barycentric coordinates
Bernstein polynomials on trianglesLet λ be a multi-index such that |λ| = n, T a triangle, and x a point in the plane, with τas barycentric coordinates with respect to T .Bernstein polynomials are defined using the barycentric coordinates.
Bnλ(τ) =
n!λ1!λ2!λ3!
τ1λ1 τ2
λ2 τ3λ3 (14)
Let ξijk = iv1+jv2+kv3d .
The set Dd ,T = {ξijk , i + j + k = d} is the set of domain-points.
A. Ratnani Jorek-Django 16/51
16/51
Extending The Geometry description: Triangular case
Properties of Bernstein polynomials
� Partition of Unity: ∑|λ|=n Bnλ = 1,
� Positivity: Bnλ(τ) ≥ 0 if and only if τ ≥ 0,
� Bnλ has its maximum at τ = λ
n (a domain point)
Bernstein triangular patchsAs for the rectangular case, the Bernstein patch can be defined as
x(τ) = ∑|λ|=n
xλBnλ(τ), ∀τ ∈ [0, 1] (15)
Properties of Bernstein Series
� Endpoint interpolation: The patch passes through the three corner control pointsthat are x(1, 0, 0) = v1, x(0, 1, 0) = v2, x(0, 0, 1) = v3
� Each boundary corredponds to a Bezier curve
� Symmetry in the parametric domain, Convex Hull
� Affine invariance (applied to the control points)
� C1 patchs can be easily created by solving (local) linear systems, using theendpoints derivatives and moving some specific control points,
A. Ratnani Jorek-Django 17/51
17/51
Extending The Geometry description: Triangular case
Geometric Operations
� (Exact) Subdivision,
� (Exact) Degree Elevation,
� (Inexact) Patchs merge, (Exact if a Spline description is used)
� (Inexact) Degree Reduction
ξ003
ξ102
ξ012
ξ201
ξ111
ξ021
ξ300
ξ210
ξ120
ξ030
x
x
x
x
x
x
x
c003
c102
c012
c201
c111
c021
c300
c210
c120
c030
x
x
x
x
x
x
x
Figure: (left) Domain points and (right) B-coefficients for a cubic polynomial
A. Ratnani Jorek-Django 18/51
18/51
Extending The Geometry description: Triangular case
Figure: Examples of Bezier triangulations (left) quadratic (middle) cubic (right)
quadratic, curved triangles
A. Ratnani Jorek-Django 19/51
19/51
Extending The Geometry description: Triangular case
Figure: Examples of curved quadratic Bezier triangulations
A. Ratnani Jorek-Django 20/51
20/51
Extending The Geometry description: A code viewpoint
Actual Position update! loop over vertices
do i=1,n_vertex_max
! loop over dof
do j=1,n_order+1
! loop over 1D quadrature points
do ms=1, n_gauss
! loop over 1D quadrature points
do mt=1, n_gauss
x_g(ms,mt) = x_g(ms,mt) + . . .
. . .
enddo
enddo
enddo
enddo
New Position update! loop over control points
do i=1,n_ctrl_pts
! loop over 2D quadrature points
do m=1, n_quad_pts
x_g(m) = x_g(m) + . . .
. . .
enddo
enddo
� Uses General Bezier patchs
� Works for both quadrangles and triangles,
A. Ratnani Jorek-Django 21/51
21/51
Need to Upgrade & Rewrite JOREK
About the Numerics
� Memory limitations due to the current preconditionner (for realistic ITER
simulations)
� Physics based Preconditionners (PPC),� Use of High regular basis functions,� Geometric MultiGrid solver, using hp-refinment in the Matrix product form,� Discretization of PPC using lower / higher elements on a coarse grid, and
transfer matrices
� Reduce the size/ number of non zeros of the linear system
� Use of High order/regular basis functions,
� Stability
� TG Stabilization,� Compatible spaces for H1,H1(curl),H1(div),L2 (DeRham sequences)
� New time & space discretization
� Splines on quadrangles/triangles� Powell-Sabin (C1, C2)� Spectral elements
A. Ratnani Jorek-Django 22/51
22/51
Regular Finite Elements
Rectangular case
� Use Uniform B-Splines (higher possible regularity = p − 1)
� Use General B-Splines with open knot vectors
� Add more dof to the current Hermite-Bezier patchs à quinticpolynomials
Triangular case
� Use Uniform B-Splines (higher possible regularity = p − 1)
� No General B-Splines and no equivalent of open knot vectors
� Powell-Sabin Elements (degree 2 or 5)
Need the notion of Macro-Elements or Macro-Patchs.
A. Ratnani Jorek-Django 23/51
23/51
k-refinement, a blessed strategy?
In the following table, we show the impact of the k-refinement on the resolution of thePoisson’s equation, on a square domain using:
� B-splines of degree p and minimal regularity (i.e. C0)
� B-splines of degree p and maximal regularity (i.e. Cp−1)
number of d.o.f number of nnz cpu-SuperLU cpu-CGCp−1 C0 Cp−1 C0 Cp−1 C0 Cp−1 C0
p=2 4’096 16’129 98’596 253’009 0.23 0.35 7 10−4 4.1 10−3
p=3 4’225 36’481 196’249 896’809 0.61 1.64 1.1 10−2 2 10−2
p=5 4’489 101’761 499’849 4’923’961 2.96 49.27 3.8 10−2 3.7 10−1
Table: Impact of the k-refinement on the resolution of the Poisson equationon a grid 64× 64 for quadratic, cubic and quintic B-splines.
A. Ratnani Jorek-Django 24/51
24/51
Uniform Splines: 1D case
Definition (uniform B-splines)The uniform B-Spline bn of degree n, is defined by the recurrence formula :
bn(x) =∫ x
x−1bn−1(t)dt
which is equivalent to,dbn
dx(x) = bn−1(x)− bn−1(x − 1)
under the assumption : b0(x) = χ[0,1[(x)
b1(x) =
{x , 0 < x < 1
2− x , 1 < x < 2
b2(x) =
12 x
2 , 0 < x < 1−(x − 1)2 + (x − 1) + 1
2 , 1 < x < 212 (3− x)2 , 2 < x < 3
b3(x) =
16 x
3 , 0 < x < 116
(−3(x − 1)3 + 3(x − 1)2 + 3(x − 1) + 1
), 1 < x < 2
16
(3(x − 2)3 − 6(x − 2)2 + 4
), 2 < x < 3
16 (4− x)2 , 3 < x < 4
A. Ratnani Jorek-Django 25/51
25/51
Uniform Splines: 1D case
Figure: Uniform B-splines functions of order k = 2, 3, 4, 5
A. Ratnani Jorek-Django 26/51
26/51
Uniform Splines: 1D caseIn the sequel, we shall note bnk,h(x) = bn( xh − k), for any real h > 0and an integer k ∈ Z. In some cases, we will omit the indices h andk when they are defined in the context. Functions (bnk,h)k,n are theB-Splines over the grid hZ.
Definition (Cardinal spline)
A cardinal spline of degree 6 n and a mesh size h, is any linearcombination :
∑k∈Z
ckbnk,h
where (ck)k ∈ R are a real valued sequence.
We recall this important result, which is used for Multigrid andMulti-Resolution methods :
Theorem (Refinement)
bnk,h(x) =1
2n
n+1
∑i=0
(i
n+ 1
)bn2k+i ,h/2(x)
A. Ratnani Jorek-Django 27/51
27/51
Uniform Splines: 1D case
Theorem (Convolution)
bn+m+1k,h = bnk,h ? b
mk,h
Theorem (Scalar Product)
(bni ,h, bnj ,h) = hb2n+1(n+ 1 + j − i) = snh (j − i)
(d
dxbni ,h,
d
dxbnj ,h) =
1
h(2sn−1
h (j − i)− sn−1h (j − i + 1)− sn−1
h (j − i − 1))
Extension to 2D
� Using tensor-product
� Redfine the Uniform Splines using integration alogn a given vector
A. Ratnani Jorek-Django 28/51
28/51
Uniform Splines in 2D: Box-Splines
Let us define the vectors e1 := (1, 0), e2 := (0, 1), e3 := (1, 1) ande4 := (−1, 1).In the sequel, Xn := {v1, v2, · · · , vn} will denote a direction set.The idea behind box-splines, is that starting with the characteristicfunction of the unit square, we will use convolution in severaldirections to generate a new function, called box-spline. We canrecover the case of bivariate B-splines if we do convolution using thetwo directions e1 and e2.
Figure: The two-, three-, and four-direction meshes
A. Ratnani Jorek-Django 29/51
29/51
Uniform Splines in 2D: Box-Splines of type I and II
Definition (Box-Spline of type I)For 4 ≤ i ≤ n, we define the box-spline of type-I associated to the direction set Xn
recursively by
B(v|Xi ) :=∫ 1
0B(v− tvi |Xi−1)dt
where B(v|X3) = B111 is the hat box-spline (Courant element).
Definition (Box-Spline of type II)For 5 ≤ i ≤ n, we define the box-spline of type-II associated to the direction set Xn
recursively by
B(v|Xi ) :=∫ 1
0B(v− tvi |Xi−1)dt
where B(v|X4) = B1111 is the ZP element.
-6 �
I
e1e2 e3
e4
A. Ratnani Jorek-Django 30/51
30/51
Uniform Splines in 2D: Box-Splines of type I
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
2
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
������
������
���
���
Figure: The B-net of box spline12!B211
A. Ratnani Jorek-Django 31/51
31/51
Uniform Splines in 2D: Box-Splines of type I
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
2
3
2
1
0
0
0
0
0
1
3
4
4
2
1
0
0
0
0
1
2
4
4
3
1
0
0
0
0
0
1
2
3
2
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
��������������
���������
�����
���������
�����
Figure: The B-net of box spline13!B221
A. Ratnani Jorek-Django 32/51
32/51
Uniform Splines in 2D: Box-Splines of type I
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
2
3
4
3
2
1
0
0
0
0
0
0
0
0
0
0
1
3
4
6
6
4
3
1
0
0
0
0
0
0
0
0
0
1
4
6
8
10
8
6
4
1
0
0
0
0
0
0
0
0
1
3
6
10
12
12
10
6
3
1
0
0
0
0
0
0
0
0
2
4
8
12
12
12
8
4
2
0
0
0
0
0
0
0
0
1
3
6
10
12
12
10
6
3
1
0
0
0
0
0
0
0
0
1
4
6
8
10
8
6
4
1
0
0
0
0
0
0
0
0
0
1
3
4
6
6
4
3
1
0
0
0
0
0
0
0
0
0
0
1
2
3
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
������������������������
������������������
������������
������
������������������
������������
������
Figure: The B-net of box spline14!B222
A. Ratnani Jorek-Django 33/51
33/51
Uniform Splines in 2D: Box-Splines of type II
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
4
8
4
0
0
0
2
8
8
8
2
0
0
0
4
8
4
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
0
0
0
4
8
8
4
0
0
4
8
8
4
0
0
0
4
4
0
0
0
0
0
0
0
0
������������������
@@@
@@@
@@@
@@@
@@
@@@@
������������
@@
@@
@@@
@@@
@@
������
@@
@@@@������������
@@@
@@@
@@@
@@@
������
@@@
@@@
Figure: The B-net of box spline1
2!23 B1111
A. Ratnani Jorek-Django 34/51
34/51
Figure: The supports of B211, B221, B222, and B322.
Some properties of Box-splines� Box-splines are p.p on each triangle,
� Box-splines are regular,
� For any 4 6 j 6 n, we have ∂vjB(·|Xn) = δvjB(·|Xn − {vj})� Global and local Independence, Stability, · · ·
A. Ratnani Jorek-Django 35/51
35/51
Schoenberg spaces in 1DLet T ? = {t?i , 0 6 i 6 s} be a strictly increasing sequence of points of R.
Definition (Spline)
A function S on R is a Spline of order k , k > 1 with the breakpoints T ? ifon each interval (t?i , t?i+1), it is a polynomial of degree 6 p := k − 1. Thespline can have any regularity less than p − 1 at the breakpoints. Thesmoothness αi of a spline S at the breakpoint t?i is defined as follows:
� αi 6 0 if S is discontinuous at t?i , otherwise
� αi is the largest integer integer 0 < αi 6 k so that S has continousderivatives of orders < αi
The defect mi := k − αi , is the number of degrees of freedom of S at t?i .The Schoenberg space Sk (T
?, m, I ), also noted in terms of smoothnessSp
α (T?, I ), consists of all splines S of order 6 k with breakpoints contained
in T ? and of smoothness > αi at t?i .
dim Sk (T?, m, I ) = k +
s
∑i=0
mi with m := (m0, · · · ,ms)
A. Ratnani Jorek-Django 36/51
36/51
B-Splines as Basis for Schoenberg spaces
To construct a B-Spline of degree p, we need p + 1 knots. Then, tocreate a family of B-splines, we will need to have a non-decreasingsequence of knots T = (ti )16i6N+k , also called knot vector, withk = p + 1. Each set of knots Tj = {tj , · · · , tj+p} will generate aB-spline Nj .
Definition (B-Spline serie)
The j-th B-Spline of order k is defined by the recurrence relation:
Nkj = wk
j Nk−1j + (1− wk
j+1)Nk−1j+1
where,
wkj (x) =
x − tjtj+k−1 − tj
N1j (x) = χ[tj ,tj+1[(x)
for k ≥ 1 and 1 ≤ j ≤ N.
A. Ratnani Jorek-Django 37/51
37/51
B-Splines as Basis for Schoenberg spaces
0
0.5
1
1.5
2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
N1N2N3N4N5N6N7N8
0
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
N1N2N3N4N5N6N7N8
0
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
N1N2N3N4N5N6N7N8
Figure: B-splines functions associated to the knot vector T = {000 1 2 3 44 555}, oforder k = 1, 2, 3
Figure: Quadratic B-Splines for T = {000, 111}, T = {000, 12 , 111} and
T = {000, 12 , 3
434 , 111}.
A. Ratnani Jorek-Django 38/51
38/51
B-Splines as Basis for Schoenberg spaces
Curry and Schoenberg proved that
Theorem
With the above notations, the B-splines (Nj )j∈Γ are basis for thespace Sk = Sk(T , I ).
We note some important properties of a B-splines basis:
� B-splines are piecewise polynomial of degree p = k − 1
� Compact support; the support of Nkj is contained in [tj , · · · , tj+k ]
� if x ∈ ]tj , tj+1[, then only the B-splines {Nkj−k+1, · · · ,Nk
j } arenon vanishing at x
� Positivity: ∀j ∈ {1, · · · ,N} Nj (x) > 0, ∀x ∈]tj , · · · , tj+k [
� Partition of unity : ∑Ni=1 N
ki (x) = 1, ∀x ∈ R
� Local linear independence
� If a knot ti has a multiplicity mi then the B-spline is C(p−mi ) at ti
A. Ratnani Jorek-Django 39/51
39/51
B-Splines as Basis for Schoenberg spaces
We now give some important properties of the B-splines series:Mardsen’s identity : We have the following result:
(· − u)k−1 = ∑j
ψj ,k(u)Nkj (·) (16)
where ψkj (u) = ∏k−1
i=1 (tj+i − u). This property is very important, itsays that à we can reproduce any polynomial of degree lessthan p, on a B-spline basis.This leads to the following representation theorem,
Theorem
Expansion in B-splines form: if S ∈ Sk(T , I ) and x ∈ [tj , tj+1], thenwe can write S as :
S(x) =j
∑i=j−k+1
[S ]iNki (x)
A. Ratnani Jorek-Django 40/51
40/51
B-Splines as Basis for Schoenberg spacesConvex hull : If tj < x < tj+1, then S(x) = ∑j
i=j−k+1[S ]iNk
i (x) is a
strictly convex combination of the numbers ([S ]i )i=j−k+1,..,j .Using the convex-hull property, if tj 6 x 6 tj+1, then one can easilycheck that
min([S ]i )i=j−k+1,..,j 6 S(x) 6 max([S ]i )i=j−k+1,..,j (17)
Conditioning property (stability) : Let α = {αi , i ∈ Λ}, be asequence of reals. We have the following conditioning property:
|αj | 6 Ck,∞‖ ∑i∈Λ
αiNki ‖, ∀j ∈ Λ (18)
where Ck,∞ 6 k2k−1 (Scherer and Shadrin).
Therefore, we have
1
Ck,∞‖α‖ 6 ‖ ∑
i∈ΛαiN
ki ‖ 6 ‖α‖ := max
i∈Λ(|αi |) (19)
A. Ratnani Jorek-Django 41/51
41/51
Distance of a regular function to S
In Approximation Theory, Jackson’s inequality makes the relationbetween the distance of a regular function (function’s bestapproximation) and the modulus of continuity of its derivatives.
Theorem (Jackson inequality)
Let 0 6 j 6 k − 1, g ∈ C(j) then :
dist(g ,SkT ) 6 C (k , j)hjω(D jg ; h)
In the case where g ∈ C(k) we have :
dist(g ,SkT ) 6 C (k)hk‖Dkg‖ (20)
A. Ratnani Jorek-Django 42/51
42/51
C r Macro-Element Spaces for Triangles
Let ∆ be a triangulation and V the set of vertices. Let V ,E and N are the number ofvertices, edges and triangles in ∆.
Definition (Splines space)The space of splines, of a regularity r across edges and of degree d , is
S rd (∆) = {s ∈ C r (∆), s |T ∈ Pd , ∀T ∈ ∆}
Theorem (Dimension of S0d)
Every splines s ∈ S0d (∆) is uniquely defined by its set of B-coefficients
(cξ
)ξ∈Dd ,∆
.
Moreover we have
dim S0d (∆) = V + (d − 1)E +
(d − 1
2
)N
Definition (SuperSplines space)Let 0 ≤ r ≤ ρ ≤ d . The space of SuperSplines if defined as
S r ,ρd (∆) = {s ∈ S rd (∆), s ∈ C ρ(v), ∀v ∈ V}
A. Ratnani Jorek-Django 43/51
43/51
C r Macro-Element Spaces for Triangles
� Smoothness conditions on a spline s ∈ S0d (∆) are just linear
conditions on the B-coefficients.
� If Λ denotes a set of linear functionals (linear combination of someB-coefficients), we have SΛ
d (∆) = {s ∈ S0d (∆), Ac = 0}
Definition (Minimal Determining Set – MDS)
Suppose Γ ⊂ Dd ,∆ is such that is s ∈ S and cζ = 0, ∀ζ ∈ Λ thens = 0. Then we say that Λ is a determining set for S .If M is a determining set for a spline space S and M has thesmallest cardinality among all possible detemining sets for S , then wecall M a minimal determining set (MDS) for S .
� The MDS can be used to construct stable local bases à
completeness
� A minimal Nodal determining set (NMDS) can also be defined, byapplying the linear constraints on vertices
A. Ratnani Jorek-Django 44/51
44/51
C r Macro-Element Spaces for Triangles
� Let ∆R be a refinement of the triangulation ∆.
� Let N be a NMDS for a space of splines S ⊂ S0d (∆R)
� For each T ∈ ∆, we define
NT := {v ∈ N : the carrier of v is contained inT}
Definition (Macro-Element space)
We call S a macro-element space provided that there is a NMDS Nfor S such thatfor all triangles T ∈ ∆, s |T is uniquely determined from the values(s(v))v∈NT
Constructing macro-element spaces is nontrivial
A. Ratnani Jorek-Django 45/51
45/51
C1 Powell-Sabin-6 Macro-Element Spaces
Th Powell-Sabin (6) Macro-Element space is S12 is defined on the following refinement
triangulation ∆PS6
Figure: (left) B-coefficients of s |T (right) MDS for S12 (∆PS6)
A. Ratnani Jorek-Django 46/51
46/51
C1 Clough-Tocher Macro-Element Spaces
Th Clough-Tocher Macro-Element space is S13 is defined on the following refinement
triangulation ∆CT
Figure: (left) B-coefficients of s |T (right) MDS for S13 (∆CT )
A. Ratnani Jorek-Django 47/51
47/51
C1 Powell-Sabin-12 Macro-Element Spaces
Th Powell-Sabin (12) Macro-Element space is S12 is defined on the following refinement
triangulation ∆PS12
Figure: (left) B-coefficients of s |T (right) MDS for S12 (∆PS12)
A. Ratnani Jorek-Django 48/51
48/51
C1 Quadrilateral Macro-Element Spaces
Th Quadrilateral Macro-Element space is S13 is defined on the following refinement
triangulation ∆QUAD
Figure: (left) B-coefficients of s |T (right) MDS for S13 (∆QUAD )
A. Ratnani Jorek-Django 49/51
49/51
C1 Macro-Element Spaces: comparison� d the spline degree,� ntri the number of subtriangles in each macro-element,� der the maximum derivative needed to compute the interpolant,� ndim the dimension of the spline space,� ncoef the dimension of the space of continuous splines on the same
triangulation.
Space d ntri nder ndim ncoefS1
3 (∆CT ) 3 3 1 3V + E 27VI + 15VB − 26
S12 (∆PS6) 2 6 1 3V 24VI + 14VB − 26
S12 (∆PS12) 2 12 1 3V + E 48VI + 26VB − 23
S13 (∆QUAD) 3 4 1 3VQ + EQ 18VQ
I + 212 VQ
B − 17
S1,25 (∆) 5 1 2 6V + E 25VI + 15VB − 24
� S1,25 (∆) is the most efficient space, lower complexity and highest
approximation power� Using Vornoi cells, it is easy to show that filling R2 with equilateral
triangles requires 2√3
times more vertices than filling the same
space with squares.A. Ratnani Jorek-Django 50/51
50/51
C2 Macro-Element Spaces: comparison
Space d ntri nder ndim ncoefS3
7 (∆CT ) 7 3 3 10V + 3E 147VI + 77VB − 146
S35 (∆PS ) 5 6 3 10V 149VI + 80VB − 149
S25 (∆DCT ) 5 9 2 6V + 3E 225VI + 115VB − 224
S25 (∆W ) 5 7 2 6V + 3E 175VI + 190VB − 174
S47 (∆QUAD) 7 4 3 10VQ + 3EQ 98VQ
I + 1052 VQ
B − 97
S2,49 (∆) 9 1 4 15V + 3E +N 81VI + 45VB − 80
� Cr Macro-Element spaces can also be defined using ∆CT , ∆PS or∆QUAD
A. Ratnani Jorek-Django 51/51
51/51