Adaptive Finite Elemente in 2D - num.uni-sb.de

Werbung
Adaptive Finite Elemente in 2D
Torsten Keßler
Universität des Saarlandes
29. Januar 2016
Motivation
verkleinere (uniform) Dreiecke → kleinerer Fehler
Probleme
I
I
Idee
Rechenzeit
h2 = 12 h1
DoF2 ≈ 4 DoF1
Verfeinerung auch dort, wo sie eventuell unnötig ist.
Schätze den Fehler auf jedem Dreieck und wähle „passende“
Dreiecke für die Verfeinerung aus.
Schema
Diese Überlegung führt zum folgenden Schema:
Löse
Verfeinere
Schätze
Markiere
Fragen
I
In welcher Norm soll der Fehler geschätzt werden?
I
Was ist ein „guter“ Schätzer?
I
Auf welche Art sollen Dreiecke zur Verfeinerung ausgewählt
werden, damit Konvergenz gesichert ist?
Modellproblem
Sei Ω ⊂ R2 ein Polygon und ΓD , ΓN ⊂ ∂Ω mit ΓD ∪ ΓN = ∂Ω.
Löse für c ∈ R>0 , f ∈ L2 (Ω) und g ∈ L2 (ΓN ):
−∆u + cu = f
u=0
∂u
=g
∂n
ΓD
ΓN
Ω
in Ω
auf ΓD
auf ΓN
Variationsformulierung
Mit V = {v ∈ H 1 (Ω); γv Γ = 0} und
D
Z
a : V × V → R; (u, v ) 7→
h∇u, ∇v i + cuv dλ,
Ω
sowie
Z
ϕ : V → R; v 7→
Ω
fv dλ +
Z
ΓN
Finde u ∈ V mit:
∀v ∈ V : a(u, v ) = ϕ(v )
gv dS.
Löse
Verfeinere
Schätze
Markiere
Diskretisierung
T = (Ti )ni=1 reguläre Triangulierung von Ω und K = (Kj )m
j=1 die
Kanten der Dreiecke.
Für alle i ∈ {1, ... , n} sind ni das äußere Normalenfeld und hi der
Durchmesser von Ti .
Für alle j ∈ {1, ... , m} ist lj die Länge der Kante Kj .
ΓD
ΓN
Ω
Diskretisierung
Sei Vh ⊂ V ein endlichdimensionaler UVR, dessen Elemente aus
C (Ω) sind und eingeschränkt auf alle Elemente von T Polynome
sind. Dann gibt es ein eindeutiges uh ∈ Vh mit
∀vh ∈ Vh : a(uh , vh ) = ϕ(vh )
Löse
Verfeinere
Schätze
Markiere
Tafelanschrift
Triangulierung
ΓD
ΓN
Ω
Triangulierung
ΓD
ΓN
Ω
Sprung
∇ϕi
ϕi
xi−1
xi
xi+1
Herleitung des Schätzers
Mit den Definitionen von der Tafel folgt für alle v ∈ V :
a(e, v ) =
n Z
X
i=1
Ti
ri v dλ +
m Z
X
j=1
Rj v dS.
Kj
Aus der Fundamentalorthogonalität folgt:
0 = a(e, Πh v ) =
n Z
X
i=1
Ti
ri Πh v dλ +
m Z
X
j=1
Kj
Rj Πh v dS.
Herleitung des Schätzers
Z
Z
m
X
|a(e, v )| ≤
ri (v − Πh v ) dλ +
Rj (v − Πh v ) dS i=1 j=1 Kj
Ti
n X
Herleitung des Schätzers
Z
Z
m
X
|a(e, v )| ≤
ri (v − Πh v ) dλ +
Rj (v − Πh v ) dS i=1 j=1 Kj
Ti
n X
≤
n
X
i=1
kri kL2 (Ti ) kv − Πh v kL2 (Ti ) +
m
X
j=1
kRj kL2 (Kj ) kv − Πh v kL2 (Kj )
Herleitung des Schätzers
Z
Z
m
X
|a(e, v )| ≤
ri (v − Πh v ) dλ +
Rj (v − Πh v ) dS i=1 j=1 Kj
Ti
n X
≤
n
X
kri kL2 (Ti ) kv − Πh v kL2 (Ti ) +
i=1
≤ C kv kH 1 (Ω)
m
X
kRj kL2 (Kj ) kv − Πh v kL2 (Kj )
j=1

n
X

hi2 kri k2
L2 (Ti )
i=1
+
m
X
j=1
1
2
lj kRj k2L2 (Kj ) 
Herleitung des Schätzers
Setze e = u − uh in die Abschätzung ein:

kek2E
= a(e, e) ≤ C kekH 1 (Ω)
n
X

hi2 kri k2L2 (Ti )
i=1
+
m
X
1
2
lj kRj k2L2 (Kj ) 
j=1
Da k−kE und k−kH 1 (Ω) äquivalent sind, folgt schlussendlich:

kekE ≤ C 
n
X
i=1
hi2 kri k2L2 (Ti )
+
m
X
j=1
1
2
lj kRj k2L2 (Kj ) 
.
Schätzer in der Energienorm
Sei T = (Ti )ni=1 eine reguläre Triangulierung von Ω und
K = (Kj )m
j=1 die Kanten der Dreiecke.
1
X
2
ηi = hi2 kri k2L2 (Ti ) +
lj kRj k2L2 (Kj )
i = 1, ... , n
Kj ∈K
Kj ⊂∂Ti
Dabei sind (ri )ni=1 die inneren Residuen und (Rj )m
j=1 die
Randresiduen.
Schätzer in der Energienorm
Dann gelten die Abschätzungen für eine Konstante C > 0:
ku − uh kE ≤ C η,
η=
n
X
!1
2
ηi2
i=1
und
n
η≤
1
X
X
1
2
ku − uh k2E +
hi2 kf − f k2L2 (Ti ) +
lj kg − gk2L2 (Kj )
.
C
i=1
Kj ∈K
Kj ⊂Ti ∩ΓN
Schätzer in der L∞ –Norm
Mit den Bezeichnungen und bei genügend regulären Funktionen sei
n
m
i=1
j=1
η∞ = max hi kri kL∞ (Ti ) + max lj kRj kL∞ (Kj ) .
Dann gilt
2
n
ku − uh kL∞ (Ω) ≤ C log max hi η∞
i=1
und
η∞ ≤
1
n
ku − uh kL∞ (Ω) + max hi2 kf − f kL∞ (Ti )
i=1
C
Löse
Verfeinere
Schätze
Markiere
Auswahl der Dreiecke
Es gibt zahlreiche Ansätze zur Auswahl der zu verfeinernden
Dreiecke.
n
Sei ηmax = max ηi und ϑ, ν ∈ [0, 1] Parameter.
i=1
Strategien
I
I
Einfachste Strategie: Markiere alle Dreiecke Ti ∈ T , für die
ηi ≥ ϑηmax ist.
Dörflers Strategie sucht kleinstmögliche Teilmenge I von
{1, ... , n}, so dass:
!1
2
X
i∈I
ηi2
≥ (1 − ϑ)η.
Dörflers Strategie
sum ← 0, µ ← 1
while sum < (1 − ϑ)2 η 2 do
µ←µ−ν
for i = 1 to n do
if Ti not marked then
if ηi > µηmax then
mark Ti
sum ← sum + ηi2
end if
end if
end for
end while
Löse
Verfeinere
Schätze
Markiere
Netzverfeinerung
Halbiere die markierten Dreiecke, so dass die entstandene
Triangulierung regulär ist.
Wichtig
Randknoten müssen beim Auflösen von hängenden Knoten
(Knoten auf Kanten) unberührt bleiben.
Implementierung
Löse
mit
FreeFEM++
Verfeinere
mit
Triangle
Schätze
mit
FreeFEM++
Markiere
mit
eigenem Programm
Implementierung von „Löse“ und „Schätze“
f e s p a c e Vh(Th , P1) ;
f e s p a c e Ph(Th , P0) ;
Vh u , v ;
Ph etaK ;
// L ö s e
p r o b l e m p o i s s o n ( u , v )=
i n t 2 d (Th) ( c *u* v+dx ( u ) * dx ( v )+dy ( u ) * dy ( v ) )
−i n t 2 d (Th) ( f * v ) − i n t 1 d (Th) ( g* v ) ;
// S c h ä t z e
v a r f ComputeEta ( unused , c h i )
=i n t 2 d (Th)
( c h i * s q u a r e ( h T r i a n g l e * ( c *u+dxx ( u )+dyy ( u )+f ) ) )
+i n t a l l e d g e s (Th)
( c h i * lenEdge * s q u a r e ( jump ( dx ( u ) *N. x+dy ( u ) *N. y ) ) ) ;
Implementierung von „Markiere“
Das Programm liest eine msh-Datei (z.B. Saarland.1.msh) und
eine Datei mit dem Fehlerschätzer (Saarland.1.eta) ein und gibt 4
Dateien aus:
Saarland . 1 . node
Saarland . 1 . e l e
Saarland . 1 . p o l y
Saarland . 1 . area
#Knoten
#D r e i e c k e
#Rand
#Maximale F l ä c h e
Implementierung von „Verfeinere“
Das Programm Triangle wird aufgerufen
. / t r i a n g l e −pra Saarland . 1
Als Ausgabe erhält man die Dateien
Saarland . 2 . node
Saarland . 2 . e l e
Saarland . 2 . p o l y
#Knoten
#D r e i e c k e
#Rand
Steuerung durch FreeFem++
s t r i n g base = ” S a a r l a n d ” ;
int n = 10;
f o r ( k=1;k<=n ; k++){
u = u;
etaK = etaK ;
// L ö s e
poisson ;
// S c h ä t z e
E r r o r E s t i m a t i o n (Th , Vh , Ph) ;
E x p o r t E r r o r ( etaK , base , k ) ;
// M a r k i e r e
WriteMesh (Th , base , k ) ;
D o e r f l e r S t r a t e g y ( base , k , nu , theta ) ;
// V e r f e i n e r e
TriangleAdaptMesh ( base , k ) ;
ReadAdaptedMesh (Th , base , k ) ;
}
Beispiel
Sei Ω =]0, 1[2 \[0,5, 1[2 und c = 1 · 10−10 .
−∆u(x , y ) + cu(x , y ) = x − y ∀(x , y ) ∈ Ω
∂u
= 0 auf Γ.
∂n
Ω
Ausgangsnetz
DoF ≈ 200
ηmin
ηmax
Vergleich uniform und adaptiv
DoF ≈ 250
uniform
adaptiv
Vergleich uniform und adaptiv
DoF ≈ 300
uniform
adaptiv
Vergleich uniform und adaptiv
DoF ≈ 440
uniform
adaptiv
Konvergenz
lineare Ansatzfunktionen
ϑ = 0,6 und ν = 0,05
uniform
adaptiv
10−0,8
η
10−1
3
10−1,2
1
10−1,4
1
2
10−1,6
102
103
DoF
Konvergenz
quadratische Ansatzfunktionen
ϑ = 0,6 und ν = 0,05
uniform
adaptiv
10−1
η
1
3
10−2
1
1
103
DoF
104
Konvergenz
I
I
suboptimale Konvergenz O h2/3 des Verfahrens mit
uniformer Netzverfeinerung, da die Lösung nicht in H 2 (Ω)
liegt.
optimale Konvergenz des adaptiven Verfahrens.
Zusammenfassung
I
I
AFEM sinnvoll bei großen lokalen Fehlern, etwa durch
Singularitäten.
Fehlerschätzer in der Energienorm ergibt sich aus
Variationsformulierung und Eigenschaften des (Quasi–)
Interpolationsoperators.
I
Eignet sich zum Schätzen des lokalen Fehlers.
I
Verschiedene Strategien zum Markieren und Verfeinern.
I
Es gibt auch Fehlerschätzer für andere Normen.
Anhang
Tei
ΓD
ΓN
ei
T
Ω
Vergleich uniform und adaptiv
DoF ≈ 540
uniform
adaptiv
Vergleich uniform und adaptiv
DoF ≈ 980
uniform
adaptiv
Vergleich uniform und adaptiv
DoF ≈ 4200
uniform
adaptiv
Zugehörige Unterlagen
Herunterladen