jorek-django: a new finite elements framework for...

53
Jorek-Django: A new Finite Elements framework for Computational Plasmas Physics Ahmed Ratnani IPP, Garching, Germany May 28, 2015 A. Ratnani Jorek-Django 1/51 1 / 51

Upload: others

Post on 22-May-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 2: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 3: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 4: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

A. Ratnani Jorek-Django 4/51

4/51

Page 5: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 6: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 7: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 8: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 9: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

Bezier techniques in Video Games

A. Ratnani Jorek-Django 8/51

8/51

Page 10: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 11: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 12: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 13: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 14: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 15: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 16: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 17: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 18: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 19: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 20: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 21: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 22: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

Extending The Geometry description: Triangular case

Figure: Examples of curved quadratic Bezier triangulations

A. Ratnani Jorek-Django 20/51

20/51

Page 23: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 24: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 25: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 26: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 27: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 28: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

Uniform Splines: 1D case

Figure: Uniform B-splines functions of order k = 2, 3, 4, 5

A. Ratnani Jorek-Django 26/51

26/51

Page 29: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 30: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 31: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 32: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 33: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 34: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 35: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 36: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 37: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 38: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 39: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 40: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 41: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 42: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 43: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 44: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 45: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 46: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 47: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 48: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 49: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 50: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 51: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 52: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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

Page 53: Jorek-Django: A new Finite Elements framework for ...ratnani.org/downloads/tutorials/django_intro_jorek_meeting.pdf · Jorek-Django: A new Finite Elements framework for Computational

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