101
Computing Maxwell Eigenvalues in 3D using H 1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab [email protected] Seminar for Applied Mathematics Federal Institute of Technology, ETH Zürich Computing Maxwell Eigenvalues in 3D using H 1 conforming FEM – p.1/59

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab [email protected]

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Computing Maxwell Eigenvalues in 3Dusing H1 conforming FEM

Philipp FrauenfelderKersten Schmidt

Christoph [email protected]

Seminar for Applied MathematicsFederal Institute of Technology, ETH Zürich

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.1/59

Page 2: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Motivation

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.2/59

Page 3: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Overview

• Introduction: FEM & ExponentialConvergence

• Assembling

• Handling Hanging Nodes

• Finding Regular Supports

• Maxwell Eigenvalue Problems

• PerspectivesComputing Maxwell Eigenvalues in 3D using H

1 conforming FEM – p.3/59

Page 4: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Our Software: Concepts

• Started by Christian Lage during his Ph.D. studies (1995).

• Used and improved by Frauenfelder, Matache, Schmidlin, Schmidtand several students.

• Concept Oriented Design using mathematical principles [1].

• Currently two parts: hp-FEM, BEM (wavelet and multipole methods).

• C++ class library for general elliptic PDEs.

[1] P. F. and Ch. Lage, “Concepts—An Object Oriented Software Packagefor Partial Differential Equations”, Mathematical Modelling and NumericalAnalysis 36 (5), pp. 937–951 (2002).

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.4/59

Page 5: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

FEM Basics

Elliptic Boundary Value Problem in Ω ⊂ Rn in variational form:

Find u ∈ V such that:

a(u, v) = l(v) ∀v ∈ V,

where V is a FE space a(. , .) a bilinear form and l(.) a linear form.

Example: −∆u + u = f in Ω and u =0 on ∂Ω

=⇒ a(u, v) =

Ω

∇u · ∇v dx +

Ω

uv dx,

l(v) =

Ω

fv dx

V = S1,p(Ω, T ) ⊂ H1(Ω).

BilinearForm+operator()(elmX:Element,elmY:Element,em:ElementMatrix)

Laplacian Identity

LinearForm+operator()(elm:Element,em:ElementMatrix)

RHS

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.5/59

Page 6: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

FEM Basics

Elliptic Boundary Value Problem in Ω ⊂ Rn in variational form:

Find u ∈ V such that:

a(u, v) = l(v) ∀v ∈ V,

where V is a FE space a(. , .) a bilinear form and l(.) a linear form.

Example: −∆u + u = f in Ω and u =0 on ∂Ω

=⇒ a(u, v) =

Ω

∇u · ∇v dx +

Ω

uv dx,

l(v) =

Ω

fv dx

V = S1,p(Ω, T ) ⊂ H1(Ω).

BilinearForm+operator()(elmX:Element,elmY:Element,em:ElementMatrix)

Laplacian Identity

LinearForm+operator()(elm:Element,em:ElementMatrix)

RHS

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.5/59

Page 7: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

FEM Basics

Elliptic Boundary Value Problem in Ω ⊂ Rn in variational form:

Find u ∈ V such that:

a(u, v) = l(v) ∀v ∈ V,

where V is a FE space a(. , .) a bilinear form and l(.) a linear form.

Example: −∆u + u = f in Ω and u =0 on ∂Ω

=⇒ a(u, v) =

Ω

∇u · ∇v dx +

Ω

uv dx,

l(v) =

Ω

fv dx

V = S1,p(Ω, T ) ⊂ H1(Ω).

BilinearForm+operator()(elmX:Element,elmY:Element,em:ElementMatrix)

Laplacian Identity

LinearForm+operator()(elm:Element,em:ElementMatrix)

RHS

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.5/59

Page 8: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

FE Space

• Basis ΦiN

i=1 constructed from element shape functions φKj on

elements K ∈ T .

• Reference element shape functions: Nj , element map: FK : K → K

⇒ φKj FK = Nj .PSfrag replacements

K

KFK

Nj

0 0.2

0.4 0.6

0.8 1

x 0

0.2

0.4

0.6

0.8

1

y

-0.2-0.15-0.1

-0.05 0

0.05 0.1

0.15 0.2

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6x 0

0.2 0.4

0.6 0.8

1 1.2

1.4 1.6

y

-0.25-0.2

-0.15-0.1

-0.05 0

0.05 0.1

0.15 0.2

Φj

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.6/59

Page 9: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

FE Meshes

• Need to be regular (no hangingnodes):

• Need to be shape-regular (no degen-erate elements):

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.7/59

Page 10: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for Mesh & Space

Mesh+ncell(): int+scan(): Scan<Cell>

Space+dim(): int+nelm(): int+scan(): Scan<Element>

Element+T(): TMatrix

Cell+map: ElementMap+child(): Cell

Scan+eos(): bool+operator++(): P

PElementMap

+operator()(x:scalar[dim]): scalar[dim]

Ideas:• Mesh consists of Cells, every Cell has an ElementMap

• Space consists of Elements, every Element has a Cell

• Scan used to loop over Elements of a Space or Cells of a Mesh

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.8/59

Page 11: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for PDEs

BilinearForm+operator()(elmX:Element,elmY:Element,em:ElementMatrix)

LinearForm+operator()(elm:Element,em:ElementMatrix)

Operator+operator()(fncY:Function,fncX:Function)+spaceX(): Space+spaceY(): Space

LinearCombination-A: Operator-B: Operator+LinearCombination(A:Operator,B:Operator,a:scalar=1.0,b:scalar=1.0)

SystemMatrix-spcX: Space-spcY: Space-A: SparseMatrix+SystemMatrix(spc:Space,bf:BilinearForm)

Solver-A: Operator+Solver(a:Operator)

Function-spc: Space+operator+(fnc:Function): Function+operator-(fnc:Function): Function+space(): Space

Vector+data: scalar[]+Vector(spc:Space,lf:LinearForm)

ElementMatrix-data: scalar[]+ElementMatrix(m:int=0,n:int=0)+transpose()+operator()(i:int,j:int): scalar

Variational formulation of an elliptic PDE on Ω:Find u ∈ V such that

a(u, v) = l(v) ∀v ∈ V

⇒ (A + M)uN = lN solve for uN .

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.9/59

Page 12: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 13: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 14: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 15: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 16: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 17: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

h Refinements

In general: elements with large error should be modified somehow h refinement

1-irregular meshes!

Remedy:

orHandling the hanging nodes byapplying constraints to them: Ahanging node is not a real de-gree of freedom.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.10/59

Page 18: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

p Enrichment

Instead of refining an element: increasing polynomial degree p. Good forsmooth functions.h FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

2 elements, p = 1

p FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

2 elements, p = 1

Convergence:

1e-14

1e-12

1e-10

1e-08

1e-06

0.0001

0.01

1

1 10 100 1000

rela

tive

ener

gy e

rror

degrees of freedom

h-FEMp-FEM

Solving the problem

−∆u + u = x2 in Ω = (−1, 1)

u = 0 on ∂Ω = −1, 1,

⇒ u(x) = −3cosh(x)

cosh(1)+ x2 + 2.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.11/59

Page 19: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

p Enrichment

Instead of refining an element: increasing polynomial degree p. Good forsmooth functions.h FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

4 elements, p = 1

p FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

2 elements, p = 2

Convergence:

1e-14

1e-12

1e-10

1e-08

1e-06

0.0001

0.01

1

1 10 100 1000

rela

tive

ener

gy e

rror

degrees of freedom

h-FEMp-FEM

Solving the problem

−∆u + u = x2 in Ω = (−1, 1)

u = 0 on ∂Ω = −1, 1,

⇒ u(x) = −3cosh(x)

cosh(1)+ x2 + 2.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.11/59

Page 20: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

p Enrichment

Instead of refining an element: increasing polynomial degree p. Good forsmooth functions.h FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

8 elements, p = 1

p FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

2 elements, p = 3

Convergence:

1e-14

1e-12

1e-10

1e-08

1e-06

0.0001

0.01

1

1 10 100 1000

rela

tive

ener

gy e

rror

degrees of freedom

h-FEMp-FEM

Solving the problem

−∆u + u = x2 in Ω = (−1, 1)

u = 0 on ∂Ω = −1, 1,

⇒ u(x) = −3cosh(x)

cosh(1)+ x2 + 2.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.11/59

Page 21: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

p Enrichment

Instead of refining an element: increasing polynomial degree p. Good forsmooth functions.h FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

16 elements, p = 1

p FEM:

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

-1 -0.5 0 0.5 1

2 elements, p = 4

Convergence:

1e-14

1e-12

1e-10

1e-08

1e-06

0.0001

0.01

1

1 10 100 1000

rela

tive

ener

gy e

rror

degrees of freedom

h-FEMp-FEM

Solving the problem

−∆u + u = x2 in Ω = (−1, 1)

u = 0 on ∂Ω = −1, 1,

⇒ u(x) = −3cosh(x)

cosh(1)+ x2 + 2.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.11/59

Page 22: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Exponential Convergence

Theorem: Let Ω ⊂ Rn (n = 2, 3) a polyhedron,

VN = S1,p(Ω, T ) 3 uN the FE space and u ∈Hk(Ω), k ≥ 1 the exact solution.

Then: ‖u − uN‖ ≤ c(

hp

)min(p,k−1)

‖u‖Hk(Ω).

erro

r

degrees of freedom

h FEM: ‖u − uN‖ ≤ c1hc2 algebraic convergence

p FEM: ‖u − uN‖ ≤ c(

1p

)p

if u ∈ C∞ exponential convergence

hp FEM: close to singularities: h FEMin regular areas: p FEM⇒ ‖u − uN‖ ≤ c exp(−bNα) if u ∈ B2

β exponential convergenceα = 3 in R

2

α = 5 in R3

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.12/59

Page 23: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Shape Functions in 1D

The reference element shape functions on (−1, 1) of order p:

Ni(ξ) =

1−ξ2 i = 0

1−ξ

21+ξ

2 P 1,1i−1(ξ) 1 ≤ i ≤ p − 1

1+ξ2 i = p

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-1 -0.5 0 0.5 1x

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.13/59

Page 24: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Element Types in 2D and 3D

2D:

3D:

Quads and Hexahedra: fully anisotropic, variable degree p.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.14/59

Page 25: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Shape Functions in 2D

The reference element shape functions on (−1, 1)2 of order (p, q) aretensor product functions of 1D shape functions:

Ni,j = Ni ⊗ Nj

Ni,j(ξ, η) = Ni(ξ) · Nj(η)Ni(ξ) =

1−ξ2 i = 0

1−ξ2

1+ξ2 P 1,1

i−1(ξ) 1 ≤ i ≤ p − 11+ξ

2 i = p

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1 0

0.2 0.4 0.6 0.8

1

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1-0.3-0.2-0.1

0 0.1 0.2 0.3

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1-0.3-0.2-0.1

0 0.1 0.2 0.3

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1

-0.04-0.02

0 0.02 0.04 0.06 0.08

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1

-0.04-0.02

0 0.02 0.04 0.06 0.08

-1-0.5

0 0.5

1 -1-0.5

0 0.5

1

-0.04-0.02

0 0.02 0.04 0.06 0.08

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.15/59

Page 26: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Overview

• Introduction: FEM & ExponentialConvergence

• Assembling

• Handling Hanging Nodes

• Finding Regular Supports

• Maxwell Eigenvalue Problems

• PerspectivesComputing Maxwell Eigenvalues in 3D using H

1 conforming FEM – p.16/59

Page 27: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

T Matrix

Definition 1 (T Matrix). Element shape functions

φKj

mK

j=1on element K,

global basis functions ΦiN

i=1.The T matrix T K ∈ R

mK×N of element K is implicitly defined by

Φi|K =

mK∑

j=1

[T K ]ji φKj

as vectors:

Φ|K = T>

KφK .

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.17/59

Page 28: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Assembly using T Matrices

Stiffness matrix: Aij = a(φi, φj), load vector: li = l(φi).Assembling:

l = l(Φ) = l(

K

T>

KφK

)

=∑

K

T>

Kl(φK) =

K

T>

KlK

A = a(Φ, Φ) =∑

K,K

T>

Ka(φK , φK)T K =

K,K

T>

KAKKT K

Note: AKK = 0 in standard FEM for K 6= K.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.18/59

Page 29: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Assembly using T Matrices

Stiffness matrix: Aij = a(φi, φj), load vector: li = l(φi).Assembling:

l = l(Φ) = l(

K

T>

KφK

)

=∑

K

T>

Kl(φK) =

K

T>

KlK

A = a(Φ, Φ) =∑

K,K

T>

Ka(φK , φK)T K =

K,K

T>

KAKKT K

Note: AKK = 0 in standard FEM for K 6= K.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.18/59

Page 30: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Example 1: Regular Mesh

Two elements with three local shape functions each and four global basisfunctions.

2

12

11

24

33

3

J

I

T I =

1 2 3 4

1 1 0 0 0

2 0 1 0 0

3 0 0 1 0

T J =

1 2 3 4

1 0 1 0 0

2 0 0 0 1

3 0 0 1 0

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.19/59

Page 31: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Example 1: Regular Mesh

Two elements with three local shape functions each and four global basisfunctions.

2

12

11

24

33

3

J

I

T I =

1 2 3 4

1 1 0 0 0

2 0 1 0 0

3 0 0 1 0

T J =

1 2 3 4

1 0 1 0 0

2 0 0 0 1

3 0 0 1 0

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.19/59

Page 32: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Example 2: Irregular Mesh

Three elements with three local shape functions each and four globalbasis functions. The hanging node is marked with .

I

K

L

1 2

3

3 4

21

3

1

2

1

3

2

T L =

1 2 3 4

1 0 1 0 0

2 0 0 0 1

3 0 1/2 1/2 0

T K =

1 2 3 4

1 0 1/2 1/2 0

2 0 0 0 1

3 0 0 1 0

⇒ continuous basis functions.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.20/59

Page 33: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Example 2: Irregular Mesh

Three elements with three local shape functions each and four globalbasis functions. The hanging node is marked with .

I

K

L

1 2

3

3 4

21

3

1

2

1

3

2

T L =

1 2 3 4

1 0 1 0 0

2 0 0 0 1

3 0 1/2 1/2 0

T K =

1 2 3 4

1 0 1/2 1/2 0

2 0 0 0 1

3 0 0 1 0

⇒ continuous basis functions.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.20/59

Page 34: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Generation of T Matrices

• Regular Mesh: Counting and assigning indices with respect totopological entities such as vertices, edges and faces.Explained in detail later.

• Irregular Mesh: Irregularity due to a refinement of an initiallyregular mesh.

OK: , not OK:Explanation follows.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.21/59

Page 35: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Generation of T Matrices

• Regular Mesh: Counting and assigning indices with respect totopological entities such as vertices, edges and faces.Explained in detail later.

• Irregular Mesh: Irregularity due to a refinement of an initiallyregular mesh.

OK: , not OK:Explanation follows.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.21/59

Page 36: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

T Matrices for Irregular Meshes

Irregularity due to a refinement of an initially regular mesh.Mesh M refine M′

Basis fcts. B = Brepl ∪ Bkeep −→ B′ = Bins ∪ Bkeep

Brepl: basis fcts. which can be solelydescribed by elements of M′\M

Bins: basis fcts. generated by regular partsof M′\M

Every element of B has a column in the T matrix. Generation is

• easy for Bins (like regular mesh),

• simple for Bkeep: modify column from M by S matrix.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.22/59

Page 37: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

T Matrices for Irregular Meshes

Irregularity due to a refinement of an initially regular mesh.Mesh M refine M′

Basis fcts. B = Brepl ∪ Bkeep −→ B′ = Bins ∪ Bkeep

Brepl: basis fcts. which can be solelydescribed by elements of M′\M

Bins: basis fcts. generated by regular partsof M′\M

Every element of B has a column in the T matrix. Generation is

• easy for Bins (like regular mesh),

• simple for Bkeep: modify column from M by S matrix.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.22/59

Page 38: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

T Matrices for Irregular Meshes

Irregularity due to a refinement of an initially regular mesh.Mesh M refine M′

Basis fcts. B = Brepl ∪ Bkeep −→ B′ = Bins ∪ Bkeep

Brepl: basis fcts. which can be solelydescribed by elements of M′\M

Bins: basis fcts. generated by regular partsof M′\M

Every element of B has a column in the T matrix. Generation is

• easy for Bins (like regular mesh),

• simple for Bkeep: modify column from M by S matrix.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.22/59

Page 39: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

T Matrices for Irregular Meshes

Irregularity due to a refinement of an initially regular mesh.Mesh M refine M′

Basis fcts. B = Brepl ∪ Bkeep −→ B′ = Bins ∪ Bkeep

!!"" ##$$ %%&&

''(())**++,,

--.. //00

1122

Brepl: basis fcts. which can be solelydescribed by elements of M′\M

Bins: basis fcts. generated by regular partsof M′\M

Every element of B has a column in the T matrix. Generation is

• easy for Bins (like regular mesh),

• simple for Bkeep: modify column from M by S matrix.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.22/59

Page 40: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for T Matrices

TMatrix-data: scalar[]+TMatrix(t:TColumn*=0)+append(t:TColumn*)

TColumn-lnk: TColumn*-n: int-index: int-data: scalar[]+TColumn(n:int,index:int,link:TColumn*=0)+link(): TColumn+operator[](i:int): scalar

TColumnTensor+n: int[dim]+TColumnTensor(n:int[dim],index:int,link:TColumn*=0)+operator[](i:int[dim]): scalar

dim:int

TMatrixBase+operator()(A:ElementMatrix,B:ElementMatrix)

TIndex-data: scalar[]+TIndex(m:int,n:int,idx:scalar[])

• Different implementations for a T Matrix: TIndex and TMatrix

• TColumn represents a column of a T matrix: coefficients of a globaldegree of freedom in a particular element

• TColumnTensor: different interface to the data of TColumn withmulti-indices

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.23/59

Page 41: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Overview

• Introduction: FEM & ExponentialConvergence

• Assembling

• Handling Hanging Nodes

• Finding Regular Supports

• Maxwell Eigenvalue Problems

• PerspectivesComputing Maxwell Eigenvalues in 3D using H

1 conforming FEM – p.24/59

Page 42: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Subdivisions

Subdivisions of a quadrilateral in 2D:PSfrag replacements

Subdivisions of a hexahedron in 3D:

PSfrag replacements

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.25/59

Page 43: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrix

Definition 2 (S Matrix). Let K ′ ⊂ K be the result of a refinement ofelement K. The S matrix SK′K ∈ R

mK′×mK is defined by

φKj

K′=

mK′

l=1

[SK′K ]lj φK′

l

as vectors:

φK∣

K′

= S>

K′KφK′

φKj

K′is represented as a linear combination of the shape functions

φK′

l

mK′

l=1of K ′.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.26/59

Page 44: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Application of S Matrix

Proposition 1. Let K ′ ⊂ K be the result of a refinement of an element K.Then, the T matrix of K ′ can be computed as

T K′ = SK′KTkeepK + T ins

K′

where TkeepK denotes the T matrix of element K (with columns not

related to functions in Bkeep set to zero) and T insK′ the T matrix for

functions in Bins with respect to K ′.

Proposition 2. Let K ′ ⊂ K be the result of a refinement of the referenceelement K with H : K → K ′ the subdivision map. The element maps are

FK : K → K and FK′ : K → K ′

and FK′ H−1 = FK holds. Then, SK′K

= SK′K .

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.27/59

Page 45: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrix in Dimension d = 1

Subdividing J = (0, 1) in J ′ = (0, 1/2) and J? = (1/2, 1) with the referenceelement shape functions

Nj(ξ) =

1 − ξ j = 1

ξ j = 2

ξ(1 − ξ)P 1,1j−3(2ξ − 1) j = 3, . . . , J

yields (solving a linear system) for J = 4:

SJ′J

=

1 0 0 01/2 1/2 1/4 0

0 0 1/4 −3/4

0 0 0 1/8

and SJ?J

=

1/2 1/2 1/4 0

0 1 0 0

0 0 1/4 3/4

0 0 0 1/8

.

Hierarchic shape functions ⇒ hierarchic S matrices.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.28/59

Page 46: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – I

• d > 1 with hexahedral meshes ⇒ S matrices are built from tensorproducts of 1D S matrices.

• In 2D: Ni,j = Ni ⊗ Nj , the four bilinear shape functions are:

N1,2(ξ) = N1(ξ1) · N2(ξ2) N2,2(ξ) = N2(ξ1) · N2(ξ2)

N1,1(ξ) = N1(ξ1) · N1(ξ2) N2,1(ξ) = N2(ξ1) · N1(ξ2)

• Consider the subdivisions:

PSfrag replacements

K ′

K ′

K?

K?

Ka Kb

KcKd

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.29/59

Page 47: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – I

• d > 1 with hexahedral meshes ⇒ S matrices are built from tensorproducts of 1D S matrices.

• In 2D: Ni,j = Ni ⊗ Nj , the four bilinear shape functions are:

N1,2(ξ) = N1(ξ1) · N2(ξ2) N2,2(ξ) = N2(ξ1) · N2(ξ2)

N1,1(ξ) = N1(ξ1) · N1(ξ2) N2,1(ξ) = N2(ξ1) · N1(ξ2)

• Consider the subdivisions:

PSfrag replacements

K ′

K ′

K?

K?

Ka Kb

KcKd

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.29/59

Page 48: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – I

• d > 1 with hexahedral meshes ⇒ S matrices are built from tensorproducts of 1D S matrices.

• In 2D: Ni,j = Ni ⊗ Nj , the four bilinear shape functions are:

N1,2(ξ) = N1(ξ1) · N2(ξ2) N2,2(ξ) = N2(ξ1) · N2(ξ2)

N1,1(ξ) = N1(ξ1) · N1(ξ2) N2,1(ξ) = N2(ξ1) · N1(ξ2)

• Consider the subdivisions:

PSfrag replacements

K ′

K ′

K?

K?

Ka Kb

KcKd

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.29/59

Page 49: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – II

Subdivision map of left variant: H : K → K ′, ξ 7→(

ξ1/2

ξ2

)

. S matrix SK′K

is defined by:

PSfrag replacementsK ′ K?

Ni,j |K′ =∑

k,l

[

SK′K

]

(k,l),(i,j)Nk,l H−1.

Tensor product shape functions:

(Ni ⊗ Nj)|K′ =∑

k,l

[

SK′K

]

(k,l),(i,j)(Nk ⊗ Nl) H−1. (1)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.30/59

Page 50: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – II

Subdivision map of left variant: H : K → K ′, ξ 7→(

ξ1/2

ξ2

)

. S matrix SK′K

is defined by:

PSfrag replacementsK ′ K?

Ni,j |K′ =∑

k,l

[

SK′K

]

(k,l),(i,j)Nk,l H−1.

Tensor product shape functions:

(Ni ⊗ Nj)|K′ =∑

k,l

[

SK′K

]

(k,l),(i,j)(Nk ⊗ Nl) H−1. (1)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.30/59

Page 51: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – III

S matrices for 1D reference element shape fcts. used in (1):

Ni|J′=∑

m

[

SJ′J

]

miNm G−1 for the ξ1 part and

Nj=∑

n

[E]nj Nn for the ξ2 part,

where G : ξ 7→ ξ/2.

Plugging into the left hand side of (1) yields:

(Ni ⊗ Nj)|K′ = Ni|J′ ⊗ Nj =∑

m,n

([

SJ′J

]

miNm G−1

)

⊗(

[E]nj Nn

)

=∑

m,n

[

SJ′J

]

mi· [E]njNm G−1 ⊗ Nn.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.31/59

Page 52: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – III

S matrices for 1D reference element shape fcts. used in (1):

Ni|J′=∑

m

[

SJ′J

]

miNm G−1 for the ξ1 part and

Nj=∑

n

[E]nj Nn for the ξ2 part,

where G : ξ 7→ ξ/2. Plugging into the left hand side of (1) yields:

(Ni ⊗ Nj)|K′ = Ni|J′ ⊗ Nj =∑

m,n

([

SJ′J

]

miNm G−1

)

⊗(

[E]nj Nn

)

=∑

m,n

[

SJ′J

]

mi· [E]njNm G−1 ⊗ Nn.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.31/59

Page 53: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – IV

Comparing with the right hand side of (1):

m,n

[

SJ′J

]

mi· [E]nj Nm G−1 ⊗ Nn

=∑

k,l

[

SK′K

]

(k,l),(i,j)Nk G−1 ⊗ Nl.

PSfrag replacements K ′ K?

Therefore for the vertical subdivision:

SK′K

= SJ′J

⊗ E for the left quad K ′,

SK?K

= SJ?J

⊗ E for the right quad K?.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.32/59

Page 54: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – IV

Comparing with the right hand side of (1):

m,n

[

SJ′J

]

mi· [E]nj Nm G−1 ⊗ Nn

=∑

k,l

[

SK′K

]

(k,l),(i,j)Nk G−1 ⊗ Nl.

PSfrag replacements K ′ K?

Therefore for the vertical subdivision:

SK′K

= SJ′J

⊗ E for the left quad K ′,

SK?K

= SJ?J

⊗ E for the right quad K?.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.32/59

Page 55: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – V

PSfrag replacements

K ′

K?

PSfrag replacements

K ′

K?

Ka Kb

KcKd

Horizontal subdivision:

SK′K

= E ⊗ SJ′J

for the bottom quad K ′,

SK?K

= E ⊗ SJ?J

for the top quad K?.

Subdivision into four quads:

• subdivide K horizontally into two children

• subdivide upper and lowerchild vertically into Kd and Kc and Ka and Kb resp.

SKdK

=(

SJ′J

⊗ E)

·(

E ⊗ SJ?J

)

SKcK

=(

SJ?J

⊗ E)

·(

E ⊗ SJ?J

)

SKaK=(

SJ′J ⊗ E)

·(

E ⊗ SJ′J

)

SKbK=(

SJ?J ⊗ E)

·(

E ⊗ SJ′J

)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.33/59

Page 56: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor Product in 2D – V

PSfrag replacements

K ′

K?

PSfrag replacements

K ′

K?

Ka Kb

KcKd

Horizontal subdivision:

SK′K

= E ⊗ SJ′J

for the bottom quad K ′,

SK?K

= E ⊗ SJ?J

for the top quad K?.

Subdivision into four quads:

• subdivide K horizontally into two children

• subdivide upper and lowerchild vertically into Kd and Kc and Ka and Kb resp.

SKdK

=(

SJ′J

⊗ E)

·(

E ⊗ SJ?J

)

SKcK

=(

SJ?J

⊗ E)

·(

E ⊗ SJ?J

)

SKaK=(

SJ′J ⊗ E)

·(

E ⊗ SJ′J

)

SKbK=(

SJ?J ⊗ E)

·(

E ⊗ SJ′J

)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.33/59

Page 57: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Meshes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.34/59

Page 58: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Meshes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.34/59

Page 59: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Meshes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.34/59

Page 60: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

S Matrices: Tensor-Product in 3D

Same idea as in 2D, just of this form:

SK′K

=∏

(A ⊗ B ⊗ C)

in each of the factors, one of A, B or C is an 1D S matrix.Depending on the factors, 7 subdivisions are possible:

Concepts: arbitrary number and combination of these 7 subdivisions in 3D.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.35/59

Page 61: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for S Matrices

SMatrixBase+operator()(src:TColumn,dest:TColumn)

SMatrix1D-data: scalar[]+SMatrix1D(small:ShpFct1D,left:ShpFct1D,right:ShpFct1D)

SMatrixCompose-A: SMatrixBase-B: SMatrixBase-C: SMatrixBase*+SMatrixCompose(a:SMatrixBase,b:SMatrixBase,c:SMatrixBase*=0)

SMatrixTensor-matrix: SMatrixBase-position: int+SMatrixTensor(m:SMatrixBase,pos:int)

dim:int

• SMatrix1D contains the coefficients, all other classes make use ofthat

• SMatrixCompose implements ·• SMatrixTensor implements ⊗

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.36/59

Page 62: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Overview

• Introduction: FEM & ExponentialConvergence

• Assembling

• Handling Hanging Nodes

• Finding Regular Supports

• Maxwell Eigenvalue Problems

• PerspectivesComputing Maxwell Eigenvalues in 3D using H

1 conforming FEM – p.37/59

Page 63: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 64: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 65: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 66: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 67: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 68: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Anisotropic and Conforming

Main point: find the cells (either coarse or fine) which belong to thesupport of a certain basis function.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.38/59

Page 69: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Condition for Continuity

• In order to have continuous global basis functions Φi, the unisolventsets on the interfaces in the support of Φi have to match.

• Unisolvent set for Q1 in a quad / hex are the corners:

⇒ matching edges which coincide in a vertex is sufficient

• Unisolvent set for Qp are• additional p − 1 points on every edge• additional (p − 1)2 points on every face• additional (p − 1)3 points in the interior

⇒ matching faces which coincide in an edge is sufficient forcontinuous edge modes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.39/59

Page 70: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Condition for Continuity

• In order to have continuous global basis functions Φi, the unisolventsets on the interfaces in the support of Φi have to match.

• Unisolvent set for Q1 in a quad / hex are the corners:

⇒ matching edges which coincide in a vertex is sufficient

• Unisolvent set for Qp are• additional p − 1 points on every edge• additional (p − 1)2 points on every face• additional (p − 1)3 points in the interior

⇒ matching faces which coincide in an edge is sufficient forcontinuous edge modes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.39/59

Page 71: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Condition for Continuity

• In order to have continuous global basis functions Φi, the unisolventsets on the interfaces in the support of Φi have to match.

• Unisolvent set for Q1 in a quad / hex are the corners:

⇒ matching edges which coincide in a vertex is sufficient

• Unisolvent set for Qp are• additional p − 1 points on every edge• additional (p − 1)2 points on every face• additional (p − 1)3 points in the interior

⇒ matching faces which coincide in an edge is sufficient forcontinuous edge modes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.39/59

Page 72: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Algorithm for Continuity (Vertex)

• In every cell of the finest mesh, register all edges and cells in theirvertices.

• For every vertex, while something changed in the last loop:• Check if some of the edges of the vertex have a relationship

(ancestor / descendant).• If two edges are related, exchange the smaller cell in the list of

the vertex by the cell matching the larger cell.• Delete the list of edges and rebuild it from the list of cells.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.40/59

Page 73: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Algorithm for Continuity (Vertex)

• In every cell of the finest mesh, register all edges and cells in theirvertices.

• For every vertex, while something changed in the last loop:• Check if some of the edges of the vertex have a relationship

(ancestor / descendant).

• If two edges are related, exchange the smaller cell in the list ofthe vertex by the cell matching the larger cell.

• Delete the list of edges and rebuild it from the list of cells.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.40/59

Page 74: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Algorithm for Continuity (Vertex)

• In every cell of the finest mesh, register all edges and cells in theirvertices.

• For every vertex, while something changed in the last loop:• Check if some of the edges of the vertex have a relationship

(ancestor / descendant).• If two edges are related, exchange the smaller cell in the list of

the vertex by the cell matching the larger cell.• Delete the list of edges and rebuild it from the list of cells.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.40/59

Page 75: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample Basis Functions

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.41/59

Page 76: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample Basis Functions

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.41/59

Page 77: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample Basis Functions

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.41/59

Page 78: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample Basis Functions

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.41/59

Page 79: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample Basis Functions

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.41/59

Page 80: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Sample hp Meshes

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.42/59

Page 81: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Scalar Computations: Pseudo 3D

Edge type singularity.

1e-05

0.0001

0.001

0.01

0.1

2 4 6 8 10 12 14 16 18

rela

tive

ener

gy e

rror

dof^1/3

−∆u + u = f in Ω = (−1, 1) × (0, 1) × (0, 1/2)

u(r, φ, z) =√

r sin(φ/2)z(1 − z) in Ω

u = 0 on z = 0 ⊂ ∂Ω

and on y = 0 ∩ x ≥ 0 ⊂ ∂Ω

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.43/59

Page 82: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Scalar Computations: Vertex Singularity

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

2 3 4 5 6 7 8 9 10 11

rela

tive

ener

gy e

rror

dof^1/4

0.001

0.01

0.1

1

10

100

1000

10 100 1000 10000 100000

time

[s]

dof

meshsolve

integration

Vertex type singularity.

−∆u + u = f in Ω = (0, 1)3

u(r, θ, φ) =√

r sin θ sin φ in Ω

u = 0 on y = 0 ⊂ ∂Ω

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.44/59

Page 83: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Overview

• Introduction: FEM & ExponentialConvergence

• Assembling

• Handling Hanging Nodes

• Finding Regular Supports

• Maxwell Eigenvalue Problems

• PerspectivesComputing Maxwell Eigenvalues in 3D using H

1 conforming FEM – p.45/59

Page 84: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Eigenvalue Problems

Source problem:Find u with −∆u + cu = f in Ω and u = 0 on ∂Ω.A variational form (·v,

, integration by parts):Find u ∈ V such that

Ω

∇u · ∇v dx + c

Ω

uv dx =

Ω

fv dx ∀v ∈ V

⇒ (A + cM)uN = lN solve for uN ∈ VN .

Eigenvalue Problem:Find an Eigenpair (λ, u) with −∆u = λu in Ω and u = 0 on ∂Ω.Find (λ, u) ∈ R × V such that

Ω

∇u · ∇v dx = λ

Ω

uv dx ∀v ∈ V

⇒ AuN = λNMuN solve for (λN , uN ) ∈ R × VN .

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.46/59

Page 85: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Eigenvalue Problems

Source problem:Find u with −∆u + cu = f in Ω and u = 0 on ∂Ω.A variational form (·v,

, integration by parts):Find u ∈ V such that

Ω

∇u · ∇v dx + c

Ω

uv dx =

Ω

fv dx ∀v ∈ V

⇒ (A + cM)uN = lN solve for uN ∈ VN .

Eigenvalue Problem:Find an Eigenpair (λ, u) with −∆u = λu in Ω and u = 0 on ∂Ω.Find (λ, u) ∈ R × V such that

Ω

∇u · ∇v dx = λ

Ω

uv dx ∀v ∈ V

⇒ AuN = λNMuN solve for (λN , uN ) ∈ R × VN .

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.46/59

Page 86: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Convergence of Eigenvalues

Eigenvectors:

‖wm − wm,N‖H1 ≤ C supv∈Wm

infvN∈VN

‖v − vN‖H1

Simple Eigenvalues:

|λm − λm,N | ≤ C supv∈Wm

infvN∈VN

‖v − vN‖2H1

Eigenvalues converge twice as fast as Eigenvectors.Eigenvectors converge quasi-optimally.

For ‖v − vN‖H1 , exponential convergence is possible.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.47/59

Page 87: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Maxwell Equations

−∂tD + curlH = σE + j Ampère’s Law (2)

∂tB + curlE = 0 Farraday’s Law (3)

j: current density, H, E: magnetic & electric field, B, D: magnetic &electric induction.Constitutive laws (in general: ε, µ ∈ R

3×3 later assumed to be scalars):D = εE and B = µH applied to (2) & (3):

−∂tεE + curlH = σE + j ∂tµH + curl E = 0

Consider time harmonic solutions, Ansatz:

E(x, t) = Re(

E(x)eiωt)

H(x, t) = Re(

H(x)eiωt)

ie., combinations of sin and cos.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.48/59

Page 88: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Towards a Variational Form

Time harmonic Maxwell equations:

−iωεE + curlH = σE + j iωµH + curlE = 0

curl(ε−1 curlH) − ω2µH = curl(ε−1j) curl(µ−1 curlE) − ω2εE = −iωj

with perfect conductor boundary conditions (σ → ∞):

µH · n = 0 E ∧ n = 0

Spaces for these equations:

H(div, Ω) :=

u ∈ L2(Ω)3 : div u ∈ L2(Ω)

H(curl, Ω) :=

u ∈ L2(Ω)3 : curlu ∈ L2(Ω)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.49/59

Page 89: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Variational Electric Source Problem

Consider

curl(µ−1 curlE) − ω2εE = −iωj in Ω and E ∧ n = 0 on ∂Ω.

in variational form:Find E ∈ H0(curl, Ω) with div εE = 0 such that

Ω

µ−1 curl E · curlF − ω2

Ω

εE · F =

Ω

iωj · F ∀F ∈ H0(curl, Ω)

Constraint div εE = 0 makes discretisation difficult (Nédelec elements).Better introduce Xn :=

E ∈ H0(curl, Ω) : div E ∈ L2(Ω)

and thevariational formFind E ∈ Xn such that

Ω

µ−1 curlE ·curlF +

Ω

div E div F −ω2

Ω

εE ·F =

Ω

iωj ·F ∀F ∈ Xn

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.50/59

Page 90: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for Vector Valued Problems

vectorial

concepts

Vectorial-vdim: uint-idx: uint-vdata: Array<F*>+Vectorial(vdim:uint,uint:arrayWidth)+put(vdata:F,a:int=0,b:int=0): void+get(int:a,int:b=0): F*+vdim(): uint

comp

Element+T(): TMatrixBase

F

TMatrixBase+operator()(A:ElementMatrix<F>,B:ElementMatrix<F>): void

F

BilinearForm+operator()(elmX:Element<F>,elmY:Element<F>,em:ElementMatrix<F>): void

F

LinearForm+operator()(elm:Element<F>,em:ElementMatrix<F>): void

F

Space+dim(): uint+nelm(): uint+scan(): Scanner*

F

Space-dim: uint-nelm: uint+Space(vdim:uint)+rebuild(): void

F

«comp = concepts::Space<F>»

Element+Element(vdim:uint)

F

«comp = concepts::Element<F>»

concepts::Joiner<Element<F>*, 1>

1

elm*

TMatrix-offsetRow: uint-offsetColumn: uint+TMatrix(vdim:uint)

F

«comp = TMatrixOffset<F>»

1

T1

TMatrixOffset-offsetRow: uint-offsetColumn: uint+TMatrixOffset(T:TMatrixBase,offsetRow:uint,offsetColumn:uint)

F

0,1

1

BilinearFormF

«comp = concepts::BilinearForm<F>»

LinearFormF

«comp = concepts::LinearForm<F>»

Offset stores how many degrees of freedomare in previous components.

Vectorial abstracts a containerfor components. The type of thecomponents is given as a templateargument. The spacializations ofVectorial do not need to takecare of handling the componentsor put and get methods.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.51/59

Page 91: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Electric Eigenvalue Problem

Find ω > 0 sucht that ∃E ∈ Xn \ 0 with

Ω

µ−1 curlE · curlF +

Ω

div E div F = ω2

Ω

εE · F ∀F ∈ Xn

Hn :=

u ∈ H1(Ω)3 : u ∧ n = 0 on ∂Ω

• Xn is curl and div conforming, hence continuous across interfaces⇒ Hn = Xn

• Hn is easy to discretise and implement: Cartesian product of scalardiscretisation S1,p(Ω, T ) of H1(Ω)

• Converges to wrong solutions if Ω has reentrant corners:• Hn 6= Xn

• codimXnHn = ∞

• Hn closed in Xn ie., sequences in Hn have their limits in Hn.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.52/59

Page 92: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Weighted Regularization

Find the frequencies ω > 0 such that ∃E ∈ Hn \ 0 with

Ω

curlE · curlF + s〈E, F 〉Y = ω2

Ω

E · F ∀F ∈ Hn

〈E, F 〉Y =

Ω

ρ(x) div E div F

Properly chosen weight ρ(x) and s ∈ R+.

Idea: use spaces

Xn[Y ] := u ∈ H0(curl, Ω) : div u ∈ Y ⊃ Hn dense

and the solutions of Maxwell equations ∈ Xn[Y ].

[2] Martin Costabel and Monique Dauge, “Weighted regularization of Maxwell equations inpolyhedral domains”, Numer. Math. 93 (2), pp. 239–277 (2002).

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.53/59

Page 93: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Weighted Regularization

Find the frequencies ω > 0 such that ∃E ∈ Hn \ 0 with

Ω

curlE · curlF + s〈E, F 〉Y = ω2

Ω

E · F ∀F ∈ Hn

〈E, F 〉Y =

Ω

ρ(x) div E div F

Properly chosen weight ρ(x) and s ∈ R+.

Idea: use spaces

Xn[Y ] := u ∈ H0(curl, Ω) : div u ∈ Y ⊃ Hn dense

and the solutions of Maxwell equations ∈ Xn[Y ].

[2] Martin Costabel and Monique Dauge, “Weighted regularization of Maxwell equations inpolyhedral domains”, Numer. Math. 93 (2), pp. 239–277 (2002).

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.53/59

Page 94: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Chosing the Weight and s

s〈E, F 〉Y = s

Ω

ρ(x) div E div F

2D:ρ(x) = rα where r is the distance to a reentrant corner and α ∈ [0, 2]depending on the angle of the reentrant corner: α ∈ (2 − 2π/ωc, 2]

3D:ρ(x) = dist (x, C ∪ E)α

where α ∈ [0, 2] (depending on angle of edge and cone of corner).

s scales the 〈. , .〉Y form. Spurious Eigenvalues get scaled too, real Eigen-values not. Sensible range: (0, 30). s = 0 gives a large kernel sincediv E = 0 is not enforced at all.α = 2 is the limiting case, nice to implement since r2 is polynomial.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.54/59

Page 95: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Chosing the Weight and s

s〈E, F 〉Y = s

Ω

ρ(x) div E div F

2D:ρ(x) = rα where r is the distance to a reentrant corner and α ∈ [0, 2]depending on the angle of the reentrant corner: α ∈ (2 − 2π/ωc, 2]

3D:ρ(x) = dist (x, C ∪ E)α

where α ∈ [0, 2] (depending on angle of edge and cone of corner).

s scales the 〈. , .〉Y form. Spurious Eigenvalues get scaled too, real Eigen-values not. Sensible range: (0, 30). s = 0 gives a large kernel sincediv E = 0 is not enforced at all.α = 2 is the limiting case, nice to implement since r2 is polynomial.

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.54/59

Page 96: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Convergence of Eigenvalues

As before:Eigenvectors:

‖Em − Em,N‖Xn≤ C sup

F∈Wm

infFN∈VN

‖F − FN‖Xn

Simple Eigenvalues:

|λm − λm,N | ≤ C supF∈Wm

infFN∈VN

‖F − FN‖2Xn

For ‖F − FN‖Xn, exponential convergence possible:

R2: Proof by Costabel, Dauge, Schwab

R3: experimental evidence, proof in preparation

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.55/59

Page 97: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Classes for Maxwell Discretisation

DivDiv-i: uint-j: uint+DivDiv(singularities:SingularSet,i:uint=0,j:uint=0)

Weight = TrivialWeight

BilinearForm+operator()(elmX:Element<F>,elmY:Element<F>,em:ElementMatrix<F>): void

F

«F = Real»

TrivialWeight+operator()(singularities:SingularSet,point:Real3d,elm:Hexahedron): Real

ShortestDist+operator()(singularities:SingularSet,point:Real3d,elm:Hexahedron): Real

ProductOfAll+operator()(singularities:SingularSet,point:Real3d,elm:Hexahedron): Real

1

weight

alternative weight functions

SingularSet+add(attrib:Attribute,msh:Mesh): void+verticesScan(): Scan<SingularVertex>+edgesScan(): Scan<SingularEdge>

SingularVertex-vertex: Connector0-vtx0: Real3d+SingularVertex(vertex:Connector0,vtx0:Real3d)+vertex(): Connector0+distance(point:Real3d,elm:Hexahedron): Real

SingularEdge-edge: Connector1-vtx0, vtx1: Real3d+SingularEdge(edge:Connector1,vtx0:Real3d,vtx1:Real3d)+edge(): Connector1+distance(point:Real3d,elm:Hexahedron): Real

*

vertices1

*

edges1

1

singularities

RotRot-i: uint-j: uint+RotRot(i:uint=0,j:uint=0)

«F = Real»

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.56/59

Page 98: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

EVP in the Thick L Shaped Domain

1e-10

1e-09

1e-08

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

5 10 15 20 25

rela

tiv e

rror

in e

igen

valu

e

dof^1/3

ev 1ev 2ev 3ev 4ev 5ev 6ev 7ev 8ev 9

0 5 10 15 20 25 308

10

12

14

16

18

20

22

24

s

eige

nval

ue

Maxwell eigenvalues in the thick L shaped domain, weight r2, σ = 0.5

σ = 0.15

α = 2

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.57/59

Page 99: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

EVP in the Thick L Shaped Domain

1e-10

1e-09

1e-08

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

5 10 15 20 25 30

rela

tiv e

rror

in e

igen

valu

e

dof^1/3

ev 1ev 2ev 3ev 4ev 5ev 6ev 7ev 8ev 9

0 5 10 15 20 25 308

10

12

14

16

18

20

22

24

s

eige

nval

ue

Maxwell eigenvalues in the thick L shaped domain, weight r2, σ = 0.5

7054 dof

σ = 0.5

α = 2

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.58/59

Page 100: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Perspectives

• Maxwell EVP in the Fichera corner• Maxwell source problems

• A posteriori error estimation, anisotropic regularity estimation

• Improved mesh handling

• Iterative multilevel domain decompositioning solvers:Toselli (Zürich), Schöberl (Linz)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.59/59

Page 101: Computing Maxwell Eigenvalues in 3D using H1 conforming FEM · Computing Maxwell Eigenvalues in 3D using H1 conforming FEM Philipp Frauenfelder Kersten Schmidt Christoph Schwab pfrauenf@math.ethz.ch

Perspectives

• Maxwell EVP in the Fichera corner• Maxwell source problems

• A posteriori error estimation, anisotropic regularity estimation

• Improved mesh handling

• Iterative multilevel domain decompositioning solvers:Toselli (Zürich), Schöberl (Linz)

Computing Maxwell Eigenvalues in 3D using H1 conforming FEM – p.59/59