91
Funktionalorientierte Gitteroptimierung bei der Finite-Elemente Approximation elliptischer Differentialgleichungen Diplomarbeit von Thomas Richter Betreuer: Prof. Dr. R. Rannacher Fakult¨ at f¨ ur Mathematik Universit¨ at Heidelberg 1. Januar 2001

Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Funktionalorientierte

Gitteroptimierung bei der

Finite-Elemente Approximation

elliptischer Differentialgleichungen

Diplomarbeit

von

Thomas Richter

Betreuer:

Prof. Dr. R. Rannacher

Fakultat fur Mathematik

Universitat Heidelberg

1. Januar 2001

Page 2: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Inhaltsverzeichnis

1 Einleitung 4

2 Die adaptive Finite-Elemente Methode 8

2.1 Finite-Elemente Methode, Grundlegende Notationen . . . . . . 8

2.2 Der a-posteriori Fehlerschatzer . . . . . . . . . . . . . . . . . . 11

2.3 Fehlerindikatoren und Adaptivitat . . . . . . . . . . . . . . . . 17

3 Optimierung der Funktionalauswertung 31

4 Optimale Gittererzeugung 37

4.1 Mehrfache Verfeinerung einer Zelle . . . . . . . . . . . . . . . 38

4.2 Erhohte Genauigkeit im dualen Problem . . . . . . . . . . . . 41

4.2.1 Der Algorithmus mit zwei Gittern . . . . . . . . . . . . 42

4.2.2 Auswertung des Fehlerschatzers . . . . . . . . . . . . . 43

4.2.3 Auswertung der Fehlerindikatoren . . . . . . . . . . . . 43

4.2.4 Die innere Iteration . . . . . . . . . . . . . . . . . . . . 44

4.2.5 Verfeinern des Gitters . . . . . . . . . . . . . . . . . . 45

4.3 Numerische Beispiele . . . . . . . . . . . . . . . . . . . . . . . 46

4.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 Remeshing 57

5.1 Der adaptive FE-Algorithmus mir”Remeshing“ . . . . . . . . 59

5.2 Numerische Beispiele . . . . . . . . . . . . . . . . . . . . . . . 60

2

Page 3: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

6 Anisotrope Finite-Elemente 63

6.1 Erkennen von Anisotropie . . . . . . . . . . . . . . . . . . . . 64

6.1.1 Anisotropie im Interpolationsfehler . . . . . . . . . . . 65

6.1.2 Anisotrope Interpolationsabschatzungen . . . . . . . . 67

6.1.3 Anisotropie in den Fehlerindikatoren . . . . . . . . . . 68

6.2 Erzeugen von optimalen Tensorgittern . . . . . . . . . . . . . 71

6.2.1 Lokale Gittergenerierung . . . . . . . . . . . . . . . . . 71

6.2.2 Gittergenerierung . . . . . . . . . . . . . . . . . . . . . 72

6.2.3 Globale Gittergenerierung . . . . . . . . . . . . . . . . 72

6.3 Numerische Beispiele . . . . . . . . . . . . . . . . . . . . . . . 76

6.4 Gitteroptimierung mit lokalen Interpolationsfehlern . . . . . . 82

6.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 87

7 Ausblick 88

Literaturverzeichnis 90

3

Page 4: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 1

Einleitung

Gegenstand dieser Arbeit ist die adaptive Finite-Elemente Approximation

partieller Differentialgleichungen. Bei der Finite-Elemente Methode wird zur

Losung der Differentialgleichung die beste Approximation in einem Funk-

tionenraum, dem Ansatzraum, gesucht. Grundlegend ist die Diskretisierung

der analytischen Gleichung. Hierzu wird das Gebiet, in dem die Differential-

gleichung zu losen ist, trianguliert, in Dreiecke oder Vierecke unterteilt. Im

dreidimensionalen Fall werden entsprechend Tetraeder oder Hexaeder ver-

wendet. Die Elemente der Triangulation heißen Zellen.

Die Gute der Diskretisierung wird durch die Triangulation bestimmt. Bei

der Finite-Elemente Losung werden Ansatzraume verwendet, deren Funktio-

nen auf den Zellen der Triangulation stuckweise polynomial sind. Die Ba-

sisfunktionen haben einen kleinen Trager, der sich nur uber wenige Zellen

erstreckt.

Bei der adaptiven Finite-Elemente Methode wird die Losung schrittweise

berechnet: zunachst wird eine Approximation der Losung auf einem gro-

ben Gitter, also einem Gitter mit wenigen Zellen, bestimmt. Mit einem a-

posteriori Fehlerschatzer wird die Gute dieser Approximation geschatzt. Ist

der Fehler zu groß, so muß eine genauere Approximation berechnet werden.

Hierzu werden Zellen des Gebiets verfeinert. Bei der adaptiven Methode wer-

den stets nur moglichst wenig Zellen zur Verfeinerung ausgewahlt, da der

Aufwand des Verfahrens mit der Zahl der Zellen steigt. Ziel ist es, die opti-

4

Page 5: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

male Balance zwischen Aufwand und Genauigkeit zu finden, das bedeutet die

Zellen zu erkennen, die verfeinert werden mussen, um ein”optimales Gitter“

zu erzeugen.

Hierzu beschreiben lokale Fehlerindikatoren die Wirkung der einzelnen

Zellen auf den Gesamtfehler. Diese Fehlerindikatoren dienen zur Verfeine-

rung der Triangulation. Zellen, deren Fehlerindikatoren groß sind, werden

verfeinert. Auf der neuen Triangulation wird jetzt eine bessere Naherung der

Losung bestimmt. Dieser Prozeß wird solange wiederholt, bis der Fehler eine

gewunschte Toleranz unterschreitet und die Approximation in ausreichender

Genauigkeit vorliegt.

In dieser Arbeit werden folgende Fragen untersucht:

• Gibt es einen”optimalen Fehlerschatzer“? Optimal bedeutet hier, daß

der Wert des Fehlerschatzers sehr nahe am wirklichen Fehler liegt.

• Existiert eine”optimale Triangulierung“ zur Losung der Differential-

gleichung? Die vorgegebene Toleranz soll bei minimaler Anzahl an Zel-

len und mit moglichst wenigen Adaptionsschritten erreicht werden.

• Welche Diskretisierungsparameter neben den Zellgroßen bestimmen die

Approximation? Kann das adaptive Verfahren erweitert werden, so daß

auch die optimale Geometrie, also die Form der Zellen erkannt und

berucksichtigt wird?

Ein grundlegendes Werkzeug in dieser Arbeit ist die von Braack vorgestellte

Formel zur Berechnung der optimalen Zellgroße (siehe z.B. [1]). Eine Funk-

tion gibt fur jeden Punkt im Gebiet die optimale Zellweite an:

hopt(x) =

(W

Ncells

)12

Ψ(x)−14 .

Dabei ist Ncells die Zahl der Zellen der Triangulation, W und Ψ(x) werden

durch das Problem und Gebiet bestimmt.

In Kapitel 2 wird die adaptive Finite-Elemente Methode zunachst vor-

gestellt und im Detail diskutiert. Ein sehr allgemeiner Fehlerschatzer – von

Becker und Rannacher entwickelt [2] – wird vorgestellt. Dieser Fehlerschatzer

5

Page 6: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

ermoglicht es, den Fehler in Funktionalen zu bestimmen. Ist man zum Bei-

spiel nur an der Losung in einem Punkt interessiert, so kann der Fehler auch

genau in diesem Punkt geschatzt werden. Weiter werden ubliche Adapti-

onsstrategien zur Gittersteuerung und auch die schon genannte Gitterformel

vorgestellt. Diese Adaptionsstrategien optimieren das Gitter in Bezug auf

das spezielle Fehlerfunktional und werden in diesem Kapitel analysiert und

erweitert.

Der Fehlerschatzer aus Kapitel 2 wird in Kapitel 3 verwendet werden,

um ohne zusatzlichen Rechenaufwand die Genauigkeit der Funktionalaus-

wertung zu erhohen. Soll die Losung im Funktional ausgewertet werden (z.B.

Ableitung in einem Punkt, Mittelwert in einem Teilgebiet, ..), kann der Feh-

lerschatzer einfließen, um den Wert des Fehlerfunktionals zu bestimmen.

Kapitel 4 beschaftigt sich mit dem Problem der”optimalen Gittersteue-

rung“. Hier wird ein Algorithmus vorgestellt, der die Zahl der Zwischenrech-

nungen, die bis zum entgultigen Ergebnis notig sind, reduziert. Die Gitterfor-

mel zeigt die optimalen Zellgroßen auf dem ganzen Gebiet. Es wird versucht,

eine Triangulation zu erzeugen, welche die von der Gitterformel vorgegebenen

Zellgroßen optimal widerspiegelt. Hierzu mussen die Zellen der Triangulati-

on in einem Schritt gleich mehrmals verfeinert werden, da das Gitter die

Zielgroßen moglichst schnell erreichen soll.

In Kapitel 5 wird die bisher betrachtete Methode der lokalen Gitterverfei-

nerung mit der Gittergenerierung verglichen. Bei lokaler Gitterverfeinerung

werden einzelne Zellen des Gitters in neue Zellen aufgeteilt, um eine feinere

Triangulation und somit eine bessere Approximation der Losung zu erreichen.

Die Struktur des Grobgitters bleibt dabei immer gleich, es werden keine Git-

terpunkte verschoben. Bei der Gittergenerierung wird in jedem Schritt ein

neues Gitter erzeugt. Gittergeneratoren versuchen ein Gitter zu erzeugen,

das vorgegebene Zellweiten optimal widerspiegelt. Ziel dieses Kapitels ist es

nicht, optimale Gittergeneratoren zu entwickeln; ein Gittergenerator wird nur

herangezogen, um zu prufen, ob vorgegebene Zellgroßen mit lokaler Gitter-

verfeinerung uberhaupt realisiert werden konnen, oder ob die Verwendung

von Gittergeneratoren hierfur unerlaßlich ist.

In Kapitel 6 wird auf anisotrope Probleme eingegangen. Ein stark ani-

6

Page 7: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

sotropes Verhalten tritt bei vielen partiellen Differentialgleichungen auf. Be-

trachtet man z.B. Kanalstromungen bei hoheren Reynoldzahlen, so stellt man

fest, daß die Losung ihr Verhalten senkrecht zum Kanalrand stark andert,

sie tangential zum Rand aber nahezu konstant bleibt. Mogliche Anisotropie

soll a-posteriori erkannt werden und in die Diskretisierung einfließen. Mußten

bisher nur optimale Zellgroßen bestimmt werden, so ist es jetzt notwendig,

auch die optimale”Verzerrung“ der Zellen zu erkennen. Diese Information

uber die Anisotropie der Losung soll automatisch erkannt und berucksichtigt

werden. Die Gitteroptimierungsformel liefert hierfur keine Ansatze. Ziel ist

es, eine entsprechende Formel fur den anisotropen Fall zu entwickeln.

An dieser Stelle mochte ich Herrn Prof. Dr. R. Rannacher fur die Vergabe

des interessanten Themas sowie seine begleitende Betreuung beim Anfertigen

der Arbeit danken. Mein besonderer Dank gilt auch Herrn Dr. M. Braack fur

anregende Diskussionen und Herrn W. Bangerth fur programmiertechnische

Unterstutzung. Weiter mochte ich der ganzen AG Numerik fur ihr gutes

Arbeitsklima und stets offene Turen danken.

7

Page 8: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 2

Die adaptive Finite-Elemente

Methode

2.1 Finite-Elemente Methode, Grundlegende

Notationen

Die adaptive Finite-Elemente Methode kann am besten an einem Beispiel

vorgestellt werden. Die Poissongleichung mit homogenen Dirichlet Randwer-

ten soll auf einem Quadrat gelost werden:

−∆u = f in Ω ⊂ R2

u = 0 auf ∂Ω

Ω = (−1, 1)2.

(2.1)

Dieses sehr einfache Problem ist leicht zu untersuchen und in vieler Hinsicht

typisch fur elliptische partielle Differentialgleichungen. Es wird im folgenden

oft als Modellproblem herangezogen. Eine Funktion u heißt klassische Losung

der Differentialgleichung, wenn u ∈ C2(Ω)∩C0(Ω) und u die Gleichung (2.1)

erfullt. In [3] wird gezeigt, daß dieses Problem eine Losung u ∈ C2,α(Ω) fur

alle f ∈ Cα(Ω) besitzt. Dabei ist

Cm,α(Ω) = v ∈ Cm(Ω) : ∂sv holder-stetig zum Exponenten α ∀ |s| = m.

Das Gebiet Ω muß hinreichend regular sein, zur”Klasse C2,α“ gehoren.[5]

8

Page 9: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Bei der Finite-Elemente Methode wird die Differentialgleichung als Va-

riationsgleichung gelost. Hierzu wird die Gleichung zunachst mit einer Test-

funktion ϕ multipliziert, welche die gleichen Randwerte wie u erfullt (ϕ = 0

auf ∂Ω). Anschließend wird uber das Gebiet Ω integriert:

−∫

Ω

∆uϕ dx =

Ω

fϕ dx . (2.2)

Trivialerweise ist jede Losung u des Modellproblems (2.1) auch Losung der

variationellen Formulierung (2.2) fur alle Funktionen ϕ ∈ C∞0 . Mit partieller

Integration ergibt sich:∫

Ω

∇u∇ϕ dx −∫

∂Ω

∂nu ϕ︸︷︷︸=0

dx =

Ω

fϕ dx . (2.3)

Dabei ist ∂nu :=< n,∇u >, wenn n der nach außen gerichtete Normalvektor

am Rand des Gebietes ist. Im Gegensatz zu (2.1) reichen bei dieser For-

mulierung schwachere Regularitatsbedingungen u ∈ H1(Ω). Dabei ist der

Sobolew-Raum Hp(Ω) die Vervollstandigung von (z.B. [4])

X := f ∈ C∞(Ω); ‖f‖p <∞, mit ‖f‖p :=∑

|α|≤p

‖∂αf‖L2(Ω) .

Die Losung der Variationsgleichung (2.3) wird nun in H10 (Ω) der entsprechen-

den Vervollstandigung des Funktionenraums

X := f ∈ C∞0 (Ω); ‖f‖p <∞

gesucht. Variiert wird uber alle Testfunktionen ϕ aus H10 (Ω). Das Problem

lautet dann:

suche u ∈ H10 (Ω) : (∇u,∇ϕ) = (f, ϕ) ∀ϕ ∈ V = H1

0 (Ω). (2.4)

Dabei werden folgende Bezeichnungen eingefuhrt:

(u, v) =

Ω

uv dx ,

(u, v)K =

Ω

uv dx , fur K ⊂ Ω,

‖u‖ =√

(u, u),

‖u‖K =√

(u, u)K.

9

Page 10: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Abbildung 2.1: Lineares Dreiecks- und bilineares Viereckselement.

Aus dem Riesz’schen Darstellungssatz folgt, daß das Variationsproblem (2.4)

fur alle f ∈ L2(Ω) eine Losung in u ∈ H10 (Ω) besitzt. Liegt dieses u in C2(Ω),

so stimmt diese Losung mit der klassischen Losung uberein.

Zur numerischen Losung des Variationsproblems wird dieses diskretisiert.

Der Ansatzraum, in dem die Losung u gesucht wird, sowie der Testraum der

Funktionen ϕ werden durch endlich dimensionale Unterraume ersetzt. Bei

der Finite-Elemente Methode sind dies Raume von stuckweise polynomialen

Funktionen. Die Basisfunktionen besitzen Trager, die sich nur uber wenige

Zellen erstrecken. Abbildung 2.1 zeigt eine Basisfunktion fur eine Dreieckstri-

angulation und fur eine Viereckstriangulation. Die diskreten Raume werden

stets mit Vh bezeichnet. Die diskretisierte Variationsgleichung nimmt folgen-

de Form an:

suche uh ∈ Vh : (∇uh,∇ϕh) = (f, ϕh) ∀ϕh ∈ Vh. (2.5)

In [3] und [5] wird genau auf die Fehleranalyse der Finite-Elemente Metho-

de eingegangen. Hier werden nur einige, fur diese Arbeit wichtige Punkte

betrachtet.

Wesentlicher Bestandteil von numerischen Methoden sind Fehlerschatzer.

Grundlegend fur die Fehlerbetrachtung ist die Galerkinorthogonalitat. Da

sowohl die kontinuierliche Losung u, als auch die diskrete Losung uh die

Variationsgleichung (2.5) erfullen, ergibt sich fur den Fehler e = u − uh die

Galerkinorthogonalitat:

(∇(u− uh),∇ϕh) = (∇e,∇ϕh) = 0, ∀ϕh ∈ Vh. (2.6)

10

Page 11: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Der Fehler steht orthogonal auf dem diskreten Testraum Vh. Damit laßt sich

der Fehler der Approximation uh in der naturlichen Norm des Problems, der

Energienorm ‖∇e‖ =√

(∇e,∇e) abschatzen.

‖∇e‖2 = (∇e,∇e) = (∇e,∇(u− uh))

= (∇e,∇(u− vh)) ∀vh ∈ Vh

≤ ‖∇e‖ ‖∇(u− vh)‖ .

Fur den Fehler ergibt sich

‖∇e‖ ≤ ‖∇(u− vh)‖ ∀vh ∈ Vh.

Die Finite-Elemente Approximation ist bezuglich der Energienorm die beste

Approximation im Ansatzraum und kann z.B. durch den Interpolationsfehler

abgeschatzt werden. Daraus ergibt sich die Fehlerabschatzung:

‖∇e‖ ≤ cih∥∥∇2u

∥∥ .

Dabei ist h die maximale Zellweite (der maximale Durchmesser) aller Ele-

mente der Triangulation und ci eine Interpolationskonstante. Dieser Feh-

lerschatzer ist ein sogenannter a-priori Fehlerschatzer. Der Fehlerschatzer

kann unabhangig von einer berechneten Approximation der Losung, also vor

dem Losen des Problems berechnet werden.

Grundlegender Nachteil dieses a-priori Fehlerschatzers ist, daß er in dieser

Form numerisch nicht auswertbar ist. Die Ableitungen der Losung sind nicht

bekannt. Der wirkliche Fehler wird zudem stark uberschatzt. Im folgenden

werden sogenannte a-posteriori Fehlerschatzer verwendet. Diese schatzen den

Fehler erst nach dem Losen der Gleichung. Der in dieser Arbeit verwendete

a-posteriori Fehlerschatzer wird genauer sein als der a-priori Schatzer und

zusatzlich im Verlauf der Rechnung an Genauigkeit gewinnen.

2.2 Der a-posteriori Fehlerschatzer

Beim adaptiven Finite-Elemente Verfahren wird zunachst eine Naherungs-

losung der Differentialgleichung bestimmt. Mit den Informationen aus dieser

11

Page 12: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Losung – a-posteriori – wird der Fehler geschatzt. Ist der Fehler noch zu

groß, so muß eine genauere Losung bestimmt werden. Hierfur werden aus

der bisherigen Losung Informationen uber die Diskretisierung gewonnen, die

einfließen, um eine bessere Triangulation zu erzeugen. Dieser Prozeß wird

solange wiederholt, bis der Fehler klein genug ist (oder die Kapazitat des

Computers erschopft ist). Ein a-posteriori Fehlerschatzer kann zwei Aufgaben

erfullen:

1. Der Fehler der Losung muß berechnet werden. Dieses wird als der ei-

gentliche Fehlerschatzer bezeichnet und dient als Abbruchskriterium

fur die Rechnung.

2. Aus dem Fehlerschatzer mussen Strategien zur Gitteradaption herge-

leitet werden. Eine Moglichkeit ist, den Ursprung des Fehlers zu lokali-

sieren: fur jede Zelle der Triangulation wird ein Wert – der Fehlerin-

dikator – vorliegen, der den Einfluß dieser Zelle auf den Gesamtfehler

beschreibt. Die Fehlerindikatoren werden zur Verfeinerung der Trian-

gulation verwendet.

Der Fehler e = u− uh soll allgemein in (linearen) Funktionalen

j : H1(Ω) → R

gemessen werden konnen. Dabei konnen die Funktionale z.B. Punkt- oder

Mittelwerte uber den Fehler oder Ableitungswerte des Fehlers beschreiben.

Herkommliche Fehlerschatzer messen den Fehler in (teils gewichteten) glo-

balen Normen. Der Ansatz uber Funktionale ist viel allgemeiner. Mogliche

Funktionale sind:

Punktfehler j(u) = u(x0), x0 ∈ Ω,

Ableitungsfehler j(u) = ∂xu(x0), x0 ∈ Ω,

Mittelwerte j(u) = 1/ |W|∫Wu dx , W ⊂ Ω,

Randintegrale j(u) =∫

∂Ω∂nu dx .

12

Page 13: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

In der gerechneten Losung uh, in den Daten f und in dem Gebiet allein

sind nicht genug Informationen enthalten, um den Fehler in dieser Allge-

meinheit zu bestimmen. Das im folgenden vorgestellte Verfahren wurde von

Becker und Rannacher (siehe z.B. [2]) entwickelt und erlaubt es, den Fehler

in beliebigen linearen Funktionalen zu bestimmen.

Um den Fehler in einem linearen Funktional j : H1(Ω) → R zu bestim-

men, wird das duale Problem definiert:

suche z ∈ V (∇ϕ,∇z) = j(ϕ) ∀ϕ ∈ V. (2.7)

Im folgenden wird davon ausgegangen, daß sowohl u, als auch z mit linearen,

bzw. bilinearen Elementen berechnet werden. Dann gilt mit e = u − uh fur

alle zh ∈ Vh wegen der Galerkinorthogonalitat (2.6) folgende Fehleridentitat:

j(e) = (∇e,∇z)= (∇(u− uh),∇(z − zh))

= (f, z − zh) − (∇uh,∇(z − zh))

=∑

K∈Th

(f + ∆uh, z − zh)K − 〈∂nuh, z − zh〉∂K

=∑

K∈Th

(f + ∆uh, z − zh)K − 12〈[∂nuh] , z − zh〉∂K .

(2.8)

Dabei sind [∂nuh] fur ∂K ⊂ Ω, also fur Kanten, die nicht am Rand des

Gebietes liegen, die Sprunge uber die Normalableitung am Zellrand:

[∂nuh] (x) = limt→0+

∂uh

∂n(x− tn) − ∂uh

∂n(x+ tn)

.

n ist der nach außen gerichtete Normalvektor an ∂K. Liegt ∂K ⊂ ∂Ω auf

dem Rand des Gebiets, so ist

[∂nuh] (x) = 2∂nuh(x).

Da aber sowohl z als auch zh auf dem Rand identisch Null sind, fallt das Ska-

larprodukt an allen Zellen des Rands weg. Wird eine Moglichkeit gefunden,

die duale Losung z numerisch auszuwerten, so kann ein Schatzwert fur den

Fehler in jedem linearen Funktional ermittelt werden.

13

Page 14: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Da die rechte Seite f und die diskrete Losung uh bekannt sind, konnen

die Residuen numerisch ausgewertet werden. Die Gewichte konnen in dieser

Form nicht ausgewertet werden, da die duale Losung z nicht vorliegt. Fur

eine Naherung gibt es folgende Ansatze:

1. Die duale Losung wird in einem Ansatzraum von hoherer Ordnung

z(2) ∈ V(2)h , zum Beispiel mit biquadratischen Elementen berechnet;

(z − zh) wird durch (z(2)h − ihz

(2)h ) ersetzt, wobei ih die Interpolation

ih : H1(Ω) → Vh ist. Als auswertbarer Fehlerschatzer ergibt sich:

η1 =∑

K∈Th

(f, z(2) − ihz

(2)h ) −

(∇uh,∇(z

(2)h − ihz

(2)h ))

. (2.9)

Dieser Ansatz scheidet wegen seiner hohen Kosten allerdings aus, da

schon das Losen mit biquadratischen Elementen, im Gegensatz zu bi-

linearen Elementen, einen enormen Mehraufwand bedeutet.

2. Liegt die duale Losung in H2(Ω), so kann die in Vh frei wahlbare Funk-

tion zh als ihz, die Knoteninterpolierende von z gewahlt werden. Mit

der Interpolationskonstante ci gelten die Interpolationsabschatzungen

‖z − ihz‖K ≤ cih2K

∥∥∇2z∥∥

K,

‖z − ihz‖∂K ≤ cih3

2

K

∥∥∇2z∥∥

K.

(2.10)

Die zweiten Ableitungen von z konnen dann uber einen Differenzen-

quotienten ∇2hzh(xK) ausgewertet werden:

η2 =∑

K∈Th

cIh3K(‖f‖K + h

12K ‖[∂nuh]‖)

∣∣∣∇2hzh(xK)

∣∣∣K

(2.11)

3. Die duale Losung wird im gleichen Ansatzraum Vh berechnet und (z−zh) wird durch (z∗h − zh) ersetzt. Dabei ist z∗h die patchweise Interpo-

lierte von zh in einen Raum hoherer Ordnung: die Losung zh wird auf

einer Gruppe von 2 × 2 aneinandergrenzenden Zellen mit der gleichen

Verfeinerungsstufe (auf einem”Patch“) quadratisch interpoliert. Diese

biquadratisch Interpolierte z∗h ist eine genauere Approximation von z

als die gerechnete zh:

η3 =∑

K

(f, (z∗h − zh))K − 1

2〈[∂nuh] , (z

∗h − zh)〉∂K

. (2.12)

14

Page 15: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die Qualitat eines Fehlerschatzers kann an seiner Nahe zum wirklichen

Fehler gemessen werden. Um die Gute eines Fehlerschatzers η quantitativ

messen zu konnen, wird der Effektivitatsindex

Ieff =η

j(e)

eingefuhrt. Je naher dieser Wert bei 1 liegt, umso genauer ist der Feh-

lerschatzer. Asymptotisch sollte der Effektivitatsindex gegen 1 oder zuminde-

stens gegen eine Konstante konvergieren. Ist die Konstante nicht unabhangig

vom Problem, so ist der Fehlerschatzer als Abbruchskriterium wertlos. In

Beispiel (2.1) werden die Effektivitatsindizes der Fehlerschatzer (2.9, 2.11,

2.12) getestet.

Beispiel 2.1 (Effektivitatsindex) Gelost wird das Modellproblem (2.1).

Zwei verschiedene Fehlerfunktionale werden betrachtet:

j1(ϕ) = ϕ(

14, 1

4

),

j2(ϕ) =1

|W|

W

ϕ, W =[−1

2, 0]×[0, 1

2

].

Die rechte Seite wird anhand der vorgegebenen Losung bestimmt:

u(x, y) = (1 − x2)(1 − y2) sin(4x) sin(4y).

Verglichen werden die Effektivitatsindizes der Fehlerschatzer η1 (2.9), η2

(2.11) und η3 (2.12).

In Tabelle 2.1 werden fur eine Sequenz von lokal verfeinerten Gittern die

Effektivitatsindizes angegeben. Zusatzlich wird die Zeit angegeben, die ins-

gesamt (bei der gesamten Sequenz) fur die Berechnung des Fehlerschatzers

aufgewendet wurde. Der numerische Aufwand besteht insbesondere in der

Quadratur. Bei Fehlerschatzer η1 spielt die Berechnung der dualen Losung

mit biquadratischen Elementen die großte Rolle. Das hier verwendete Ver-

fahren zur Gitteradaption, also zur lokalen Gitterverfeinerung wird spater

beschrieben.

Die Fehlerschatzer η1 und η3 liegen sehr schnell nahe am Fehler. Bei

beiden Fehlerfunktionalen konvergieren sie gegen 1. Der Fehlerschatzer η2

15

Page 16: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Mittelwert

N j(e) η1/e η2/e η3/e

81 0.076 1.0151 393.5 1.0588

151 0.027 1.0072 337.9 1.0710

653 0.0036 0.9995 229.9 0.9963

1435 0.0014 1.0017 177.2 1.0074

2937 0.00065 1.0002 120.8 0.9852

6249 0.00032 1.0004 84 1.0087

12995 0.00012 1.0001 84.1 0.9964

26603 7.25 · 10−5 1.00009 55.6 1.0038

56073 2.70 · 10−5 1.00004 61.6 0.9963

Zeit fur Auswertung 1400 sec 182 sec 130 sec

Punktfehler

N j(e) η1/e η2/e η3/e

81 0.4288 0.179 69.6 0.187

151 0.1463 0.269 83.1 0.205

297 0.0382 0.267 115.8 0.245

635 0.0102 0.305 123.6 0.285

1443 0.00295 0.398 129.1 0.407

2875 0.000945 0.528 130.9 0.515

6229 0.000289 0.614 147.7 0.605

12521 0.000108 0.742 148.1 0.727

26903 3.948 · 10−5 0.824 155.3 0.806

55287 1.624 · 10−5 0.893 155.8 0.882

Zeit fur Auswertung 1540 sec 188 sec 138 sec

Tabelle 2.1: Die Effektivitatsindizes fur alle drei Fehlerschatzer und die Zeit,

die insgesamt zur Auswertung der Fehlerschatzer (inkl. duales Problem) auf-

gewendet wurde. (Beispiel 2.1)

16

Page 17: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

liefert aber keine brauchbaren Ergebnisse. Der Effektivitatsindex pendelt sich

zwar ein, jedoch ist dieser Wert nicht problemunabhangig, und die Konstante

ist sehr groß. Bei diesem Fehlerschatzer fließt neben Interpolationskonstanten

zusatzlich die Ungenauigkeit, die durch die Anwendung der Cauchy-Schwarz

Ungleichung hervorgerufen wird, ein.

Der zeitliche Aufwand fur die Berechnung der patchweisen Interpolie-

renden z∗h ist sehr gering, somit scheint dieser Fehlerschatzer der optimale

hinsichtlich Genauigkeit und Aufwand zu sein. Der geringfugig bessere Ef-

fektivitatsindex bei η1 ist nicht den hohen Aufwand wert, der mit der Losung

des dualen Problems mit biquadratischen Finiten Elementen verbunden ist.

Wenn im Folgenden vom Fehlerschatzer die Rede ist, ist stets η3 gemeint,

und er wird einfach mit η bezeichnet.

2.3 Fehlerindikatoren und Adaptivitat

Adaptive Finite-Elemente Verfahren passen das Gitter wahrend der Rech-

nung dem Problem an. Um den Fehler der Rechnung zu reduzieren, werden

stets die Zellen verfeinert, die zu einem”optimal erreichbaren“ Gitter fuhren:

der Fehler auf dem neuen Gitter soll bei moglichst wenig Zellen klein sein.

Hierzu werden Zellen verfeinert, deren Fehlerindikatoren”groß“ sind. Bei

globaler Verfeinerung wird das Gitter auch da verfeinert, wo der erwunschte

Fehler schon weit unterschritten ist. An Stellen mit großem Fehlerindika-

tor wird unter Umstanden zuwenig verfeinert. Adaptive, lokale Verfeinerung

kann zu”optimalen Gittern“ fuhren, auf denen die Losung mit weniger Zel-

len, also mit weniger Freiheitsgraden und somit weniger Rechenaufwand ge-

wonnen werden kann. Der ubliche Algorithmus zum adaptiven Losen einer

Differentialgleichung ist:

1. Vorgegeben ist ein Startgitter Th, und eine Toleranz TOL,

die im Fehlerfunktional erreicht werden soll.

2. Berechne uh zur Triangulation Th.

3. Berechne den Fehlerschatzer η.

17

Page 18: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

4. η < TOL: Abbruch.

5. Berechne die Fehlerindikatoren ηK.

6. η > TOL: Verfeinere das Gitter mit den Fehlerindikatoren

ηK und wiederhole ab 2.

Die Berechnung des Fehlerschatzers in Schritt 3 des Algorithmus wurde

in Abschnitt 2.2 behandelt. Jetzt soll kurz auf die Fehlerindikatoren einge-

gangen werden:

Die Fehlerindikatoren stellen eine Lokalisierung des Fehlers da. Um mit

ihnen ein Gitter zu erzeugen, mussen sie stets positiv sein. Ausgehend von den

drei Fehlerschatzern η1, η2 und η3 (2.9, 2.11, 2.12) des letzten Kapitels liegt es

nahe, die lokale Struktur des Fehlerschatzers zu nutzen und die Indikatoren

als

j(e) ≤∑

K∈Th

ηK ,

η1K =

∣∣∣(f, z(2)h − ihz

(2)h )K −

(∇uh,∇(z

(2)h − ihz

(2)h ))

K

∣∣∣ ,

η2K = h3

K

(‖f‖K + 1

2h−

12

K ‖[∂nuh]‖∂K

) ∣∣∣∇2hzh(xK)

∣∣∣ ,

η3K =

∣∣(f, z∗h − zh)K − 12〈[∂nuh] , z

∗h − zh〉∂K

∣∣

zu definieren. Die Anteile der Fehlerindikatoren werden ublicherweise in Re-

siduen ρK und Gewichte ωK aufgeteilt. Die Fehlerindikatoren η2K schreiben

sich dann als:

ηK = (ρ(1)K + ρ

(2)K )ωK

ρ(1)K = ‖f‖K

ρ(2)K = 1

2h−

12

K ‖[∂nuh]‖∂K

ωK = h3K

∣∣∣∇2hzh(xK)

∣∣∣ .

(2.13)

Die Residuen beschreiben die Approximation der Losung, die Gewichte geben

den Einfluß des Fehlerfunktionals an. Es zeigt sich, daß ρ(2)K ωK der maßgeb-

liche Term im Fehlerschatzer ist. Wird die frei wahlbare Funktion zh ∈ Vh

18

Page 19: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

als eine Interpolierende von z auf einem Patch P von 2 × 2 Zellen gewahlt,

so bleibt ein Freiheitsgrad in der Mitte des Patchs ubrig, um folgende Eigen-

schaft dieser speziellen Interpolierenden iP z zu erreichen:∫

P

(z − iP z) = 0. (2.14)

Dann steht z− iP z also orthogonal auf allen patchweise konstanten Funktio-

nen und der Fehlerschatzer laßt sich schreiben als:

j(e) =∑

P∈Th

(f − fP , z − iP z)P − 12〈[∂nuh] , (z − iP z)〉∂P .

Der Term ‖f − fP‖P ‖z − iP z‖P ist um eine h-Potenz kleiner als der Sprung-

term und kann fur h→ 0 vernachlassigt werden.

Zunachst wird auf Schritt 6 des Algorithmus, dem Erzeugen eines neu-

en Gitters, eingegangen. Prinzipiell gibt es bei adaptiven Finite-Elemente

Methoden zwei Moglichkeiten, ein neues Gitter zu erzeugen:

Mesh Refinement Zellen des Gitters werden verfeinert, oder mehrere Zel-

len werden zu einer groberen Zelle zusammengefaßt. Bei einem zweidi-

mensionalen Rechteckgitter kann eine Zelle entweder in vier neue Zellen

unterteilt werden, oder es wird ein Patch aus 2 × 2 Zellen mit gleicher

Verfeinerungsstufe zu einer Zelle zusammengefaßt.

Remeshing Ausgehend von den Fehlerindikatoren wird ein vollstandig neu-

es Gitter erzeugt. Aus den Fehlerindikatoren werden optimale Zellwei-

ten berechnet und es wird versucht, ein Gitter zu erzeugen, welches

diese Zellweiten am besten wiederspiegelt. In einem spateren Abschnitt

wird diese Methode der Gittererzeugung mit der lokalen Gitterverfeine-

rung verglichen. Genauere Untersuchungen hierzu sind nicht Ziel dieser

Arbeit.

Zunachst wird die erste Methode, das Mesh Refinement (die”lokale Gitter-

verfeinerung“) untersucht. Bei lokaler Gitterverfeinerung entsteht folgende

Situation: wird eine Zelle verfeinert, so entstehen auch neue Freiheitsgrade.

Diese treffen nicht zwangslaufig auf Freiheitsgrade von anderen Zellen, son-

dern konnen auch mitten auf der Kante einer Nachbarzelle liegen. Wurde

19

Page 20: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Abbildung 2.2: Gitter mit zwei”hangenden Knoten“

man diese sogenannten”hangenden Knoten“ (siehe Abbildung (2.2)) nicht

gesondert berucksichtigen, so ware die Finite-Elemente Methode nicht kon-

form, d.h. Vh 6⊂ H1(Ω). Diese Bedingung ist aber absolut erforderlich. Die

zusatzlichen Freiheitsgrade durfen nicht wie die ubrigen behandelt werden;

an diesen Stellen muß Stetigkeit erzwungen werden. Hierzu werden die Werte

der diskreten Funktionen an diesen Freiheitsgraden auf den Mittelwert der

beiden angrenzenden Freiheitsgrade gesetzt. Auf jeder Kante einer Zelle ist

nur ein hangender Knoten erlaubt. Hangende Knoten und die damit auf-

tauchenden Probleme werden z.B. in [7] diskutiert. Mit diesem Vorgehen ist

lokale Gitterverfeinerung moglich. In jedem Schritt der Verfeinerung sollen

stets die Zellen verfeinert werden, deren Fehlerindikatoren”groß“ sind. Die

Fehlerindikatoren der Zellen gleichen sich mit jedem Schritt der Verfeinerung

an. In einem”optimalen Gitter“ sind die Fehlerindikatoren aquilibriert. Mit

entsprechender Abstraktion kann dieses bewiesen werden. Dazu seien Ki fur

i = 1, . . . , N die N Zellen einer Triangulation mit Fehlerindikatoren ηi. Nach

Verfeinerung einer Zelle entstehen vier neue Zellen, jeweils mit Fehlerindika-

toren

η[1]i =

1

16ηi.

Hier wurde quadratische Konvergenz angenommen. Die Rechnung kann ent-

sprechend mit jeder anderen Konvergenzordnung durchgefuhrt werden. Die

Vereinfachung besteht in der Annahme, daß die Konvergenzordnung auf dem

ganzen Gebiet gleich ist. Davon kann i.A. nicht ausgegangen werden. Da die

Fehlerindikatoren positiv sind, meist einfach Absolutwerte der lokalen Dar-

stellung des Fehlerschatzers sind, mußte auch der Zusammenhang zwischen

20

Page 21: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

der”Konvergenz“ der Fehlerindikatoren und des Fehlerschatzers betrachtet

werden. Hier wird aber davon ausgegangen, daß sich die Fehlerindikatoren

wie der Fehler verhalten.

Satz 2.1 (Aquilibrierung) Auf einem Gitter mit N Zellen seien die Feh-

lerindikatoren η1, . . . , ηN mit ηi > 0 gegeben. Weiter entstehen nach ri-facher

Verfeinerung einer Zelle Ki 4ri neue Zellen, jeweils mit Fehlerindikator

η[ri]i = 16−riηi. (2.15)

Zu vorgegebener Fehlertoleranz TOL entsteht bei ri-facher lokaler Verfeine-

rung der Zellen Ki genau dann ein Gitter mit minimaler Zahl von Zellen,

wenn die Fehlerindikatoren η[ri]i aquilibriert sind.

Beweis:

Es sei r = (r1, . . . , rN) ∈ NN . Die Zelle Ki wird ri mal verfeinert. Dann hat

das entstehende Gitter

N(r) =N∑

i=1

4ri

Zellen. Die Summe der Fehlerindikatoren ist wegen der Voraussetzung

E(r) =N∑

i=1

4riηi16−ri =N∑

i=1

ηi4−ri.

Im folgenden wird nur ein kontinuierliches Problem fur r ∈ RN gelost. Nur

fur diesen Fall ist ein Lagrange-Ansatz moglich. Ist ein Toleranzwert TOL

vorgegeben, so ist das Minimierungsproblem

! minN(r), E(r) ≤ TOL

zu losen. Mit dem Lagrange-Ansatz

L(r, λ) = N(r) + λ(TOL− E(r))

∂L

∂ri(r, λ) = ln 4 · 4ri + ληi ln 4 · 4−ri

∂λL(r, λ) = TOL− E(r)

21

Page 22: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

erhalt man gleich fur ∂riL = 0:

ηi = −1

λ16ri. (2.16)

Setzt man (2.16) in (2.15) ein, so ergibt sich fur η[ri]i nach ri-facher Verfeine-

rung ein vom ursprunglichen Fehlerindikator unabhangiger Wert:

η[ri]i = −ηi

1

ληi

= −1

λ,

Eigentlich ware hier ein ganzzahliges Optimierungsproblem zu losen. Das

Ziel, eine Aquilibrierung der Fehlerindikatoren zu erreichen bleibt aber be-

stehen. Das Ergebnis zeigt vielmehr die Einschrankung der”zulassigen Git-

ter“, die durch lokale Gitterverfeinerung erzeugt werden konnen. Eine echte

Aquilibrierung ist nicht moglich.

Ist eine Aquilibrierung der Fehlerindikatoren erreicht, so wird nach wei-

terer globaler Verfeinerung ein”optimales Gitter“ mit aquilibrierten Fehler-

indikatoren erhalten.

Satz 2.2 (Globale Verfeinerung) Auf einem Gitter mit N Zellen seien

die Fehlerindikatoren aquilibriert: ηi = η, ∀i ∈ 1, . . . , N. Nach ri-facher

Verfeinerung einer Zelle Ki enstehen 4ri neue Zellen, mit Fehlerindikator

η[ri]i = 16−riη.

Nach globaler Verfeinerung entsteht ein Gitter mit minimaler Zahl von Zellen

in der Klasse der”zulassigen“ Gitter, auf dem die Losung mit der Fehlerto-

leranz TOL approximiert wird.

Beweis:

Nach r-facher globaler Verfeinerung gilt fur die Fehlerindikatoren aller Zellen

η[r]i = 16−rη.

Die Fehlerindikatoren sind also auch im neuen Gitter aquilibriert, und das

Gitter ist mit den Ergebnissen von Satz 2.1 optimal.

22

Page 23: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die Auswahl der Zellen zur Verfeinerung kann nach unterschiedlichen

Verfeinerungsstrategien (Adaptionsstrategien) geschehen. Einige, haufig ver-

wendete werden im folgenden genannt und diskutiert. Insbesondere wird un-

tersucht, ob sich bei den Adaptionsstrategien aquilibirierte Fehlerindikatoren

einstellen und ob diese dann unter weiterer Verfeinerung erhalten bleiben.

1) Fixed error fraction:

Es werden die Zellen mit den großten Fehlerindikatoren verfeinert, die sum-

miert einen Anteil γ des Fehlers ausmachen. Hierzu werden die Fehlerindika-

toren zunachst absteigend sortiert

ηKi≥ ηKi+1

.

Alle Zellen Ki fur i = 1, . . . , I mit

I = arg

max

1≤I≤N

I∑

i=1

ηKi≤ γη

werden verfeinert. Dieses Vorgehen hat den Nachteil, daß nicht gesteuert

werden kann, wieviele Zellen verfeinert werden. Sind die Fehlerindikatoren

aquilibriert, so werden nur γN Zellen verfeinert.

2) Fixed number:

In jedem Schritt wird ein bestimmter Anteil γ von Zellen mit großem Fehler-

indikator verfeinert. Die Fehlerindikatoren werden wieder absteigend sortiert

und alle Zellen Ki mit i = 1, · · · , γN werden verfeinert. Dieses Verfahren

berucksichtigt nicht die Verteilung der Fehlerindikatoren. Sind die Indika-

toren ungleich verteilt, so werden zu Beginn zuviele Zellen verfeinert. Eine

Aquilibrierung wird nicht dauerhaft erreicht und wenn sie vorliegen sollte,

sofort wieder gestort, da nicht global verfeinert wird.

3) Error balancing:

Zu einer vorgegebenen Toleranz TOL wird ein zellweiser Toleranzwert

tol =TOL

N

berechnet. Verfeinert werden alle ZellenK, deren Fehlerindikator uber diesem

Wert liegen

ηK > tol.

23

Page 24: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Eine sinnvolle Strategie ist, die Toleranz TOL auf die Halfte der Summe der

Fehlerindikatoren zu setzen. Dann ist sichergestellt, daß die Fehlerindikatoren

zunachst aquilibriert werden. Ist dieses der Fall, so wird das Gitter global

verfeinert.

4) Optimierungsformel

Ist das Ziel vorgegeben, die Fehlerindikatoren auf einem niedrigen Wert zu

aquilibrieren, so kann dieses als Optimierungsproblem formuliert werden. Als

Losung erhalt man die optimale Gitterweite hopt(x) als Funktion. (Siehe hier-

zu z.B. [1], [6]). Zunachst wird angenommen, daß fur die Residuen (2.13)

ρK = ρ(1)K + ρ

(2)K

mit h→ 0 ein gitterunabhangiger Grenzwert

h−1K ρK ≈ Ψu(xK) (2.17)

gilt. Dabei bedeutet a ≈ b, daß es eine von h unabhangige Konstante C gibt,

so daß gilt:1

Cb ≤ a ≤ Cb.

Auch fur die duale Losung gilt entsprechend fur z ∈ H2(Ω)

h−3K ωK ≤ cihK

∥∥∇2z∥∥

K≈ ci

∣∣∇2z(xK)∣∣ =: Ψz(xK). (2.18)

Mit (2.17) und (2.18) sei dann

Ψ(x) := Ψu(xK)Ψz(xK), mit x, xK ∈ K.

Der Fehler η =∑

K∈ThρKωK laßt sich damit schreiben als

η ≈ E(h) =∑

K∈Th

h4KΨ(xK) =

Ω

h(x)2Ψ(x) dx . (2.19)

Grundlegend fur das weitere Vorgehen ist die Existenz dieser Fehlerdarstel-

lung. Insbesondere das Integral∫

Ψ(x) dx muß existieren. Hierfur ist Voraus-

setzung, daß die zweiten Ableitungen von u und z im Produkt integrierbar

sind. Mit diesen Definitionen lassen sich zwei Optimierungsprobleme formu-

lieren:

24

Page 25: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

(I) Minimiere E(h) unter der Nebenbedingung N ≤ Nmax.

(II) Minimiere N unter der Nebenbedingung E(h) ≤ TOL.

Satz 2.3 (Gitteroptimierungsformel) Unter der Voraussetzung, daß der

Fehlerschatzer asymptotisch fur h→ 0 die Form (2.19) annimmt und folgen-

des Integral existiert

W :=

Ω

Ψ(x)1

2 dx <∞,

haben die Optimierungsprobleme (I) und (II) die Losungen

(I) hopt(x) ≈(

W

Nmax

)12

Ψ(x)−1

4

(II) hopt(x) ≈(TOL

W

)12

Ψ(x)−1

4

Beweis:

Der Beweis wird nur fur das erste Optimierungsproblem gefuhrt (der zweite

lauft entsprechend), da dieses der in der Praxis relevante Fall sein durfte

(optimales Ergebnis bei beschrankten Ressourcen). Fur die Schrittweite in

Abhangigkeit der”Gitterweitenfunktion“ h(x) gilt

N(h) =∑

K∈Th

hK(xK)2hK(xK)−2 ≈∫

Ω

h(x)−2.

Das Lagrangefunktional zum Optimierungsproblem (I) ist

L(h, λ) = E(h) + λ(N(h) −Nmax),

mit der Ableitung

L′[ϕ, λ] =

( ∫Ωϕ(x) (2h(x)Ψ(x) − 2λh(x)−3) dx

µ(∫

Ωh(x)−2 −Nmax dx

))T

.

Im stationaren Punkt (L′ = 0) ergibt sich fur alle Variationen von ϕ und µ:

h(x)Ψ(x) − λh(x)−3 = 0,

Ω

h(x)−2 dx −Nmax = 0.

25

Page 26: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Folglich gilt:

h(x) =

Ψ(x)

) 1

4

, Nmax =

(1

λ

) 12∫

Ω

Ψ(x)12 dx .

Mit

λ =W 2

N2max

folgt schließlich die optimale Gitterfunktion:

hopt(x) = λ1

4 Ψ(x)−1

4 .

Eine Verfeinerungsstrategie mit dieser Formel ware etwa:

• Verfeinere Zelle K, wenn hopt(xK) < 12hK

• Vergrobere Zelle K, wenn hopt(xK) > 2hK

Diese Strategie entspricht der Error Balancing Strategie, mit einer speziell

gewahlten Toleranz. Die Optimierungsformel birgt einige Probleme:

• Es ist nicht sichergestellt, daß zu der Gitterweitenfunktion hopt(x) auch

ein entsprechendes Gitter gehort. Fur eine Strategie, wie gerade ge-

nannt, ist die Formel jedoch anwendbar.

• Die gitterunabhangigen Grenzwerte (2.17) und (2.18) mussen existie-

ren, damit sich der Fehlerschatzer in der Form (2.19) schreiben laßt.

Diese Bedingung liegt z.B. schon dann nicht vor, wenn der Fehler in

einem Punkt ausgewertet wird. Die duale Losung ist dann die loga-

rithmische Green’sche Funktion, deren zweiten Ableitungen sich wie

1/r2 verhalten, wenn r der Abstand zum Auswertungspunkt ist. Das

Integral in (2.19) existiert dann nur, wenn die zweiten Ableitungen der

primale Losung ∂αu, |α| = 2 im Auswertungspunkt verschwinden.

• Die Gitterformel liefert als Gitterweitenverteilung eine zellweise kon-

stante Funktion. Diese Funktion beschreibt nur die optimale Gitter-

weite unter den bekannten Informationen und in der Klasse der Gitter,

deren Zellen auf dem Gebiet der ursprunglichen Zellen gleich groß sind.

26

Page 27: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

5) Optimales Gitter:

Es wird versucht, das Produkt aus Fehler und Anzahl der Zellen zu mi-

nimieren. Dieses Produkt kann als eine Art Qualitatsindex fur das Gitter

herangezogen werden und wird als der Gitterindex definiert:

Definition 1 (Gitterindex) Ein Gitter bestehe aus N Zellen und die Lo-

sung auf diesem Gitter habe den Fehler j(e). Hat das Verfahren die Konver-

genzordnung O(N−α), so heißt

IG = Nαj(e)

der Gitterindex und mißt die Qualitat des Gitters fur das entsprechende Pro-

blem.

Bei der Verwendung von bilinearen Finiten Elementen ist α als 1 zu wahlen,

wenn u und z hinreichend regular sind. Die Fehlerindikatoren werden zunachst

wieder absteigend sortiert

η1 ≥ η2 ≥ · · · ≥ ηN ,

und es sollen die ersten m Zellen, also die mit den großten Fehlerindikatoren

verfeinert werden. Der Fehler, der bei Verfeinerung von m Zellen im neuen

Gitter zu erwarten ist, wird mit E(m), die Anzahl der Zellen im neuen Gitter

mit N(m) bezeichnet.

min [N(m)E(m)] , 1 ≤ m ≤ N.

N(m) = n + 3m.

Dann wird folgendes Optimierungsproblem gelost:

E(m) =

N∑

i=1

ηi − (1 − 14)

m∑

i=1

ηi.

Auch wenn dieses Problem analytisch nur schwer losbar ist, konnen alle

Moglichkeiten getestet werden. So entsteht ein O(n · log n) Algorithmus, der

stets das optimale Gitter (im Sinne von Definition 1) erzeugt.

27

Page 28: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

In der Anwendung sind keine großen Unterschiede zwischen den Verfahren

1) bis 5) festzustellen. Der große Nachteil der Fixed Fraction und Fixed Num-

ber Methode ist die Wahl der Parameter. Es kann nicht gesteuert werden,

wieviele Zellen verfeinert werden mussen. Alle anderen Verfahren bestimmen

diese Zahl selbst, und verhindern vor allem, daß zu viel verfeinert wird.

Die Optimierungsformel liefert auch neue Erkenntnisse. Sind die – git-

terunabhangigen – Werte der Funktion Ψ(x) ausgeglichen, so liegt bei Ver-

wendung bilinearer FE-Raume immer eine Konvergenz der Ordnung TOL ∼N−1

max vor. Um den Fehler zu reduzieren, muß dann stets global verfeinert

werden. Dieses wird nun an zwei Beispielen illustriert.

Beispiel 2.2 (Globale Verfeinerung bei aquilibrierten Gittern)

Gerechnet wird wieder das Modellproblem (2.1). Es wird solange mit der Op-

timierungsformel verfeinert, bis die Fehlerindikatoren aquilibriert sind. Eine

Aquilibrierung ist erreicht, wenn ein bestimmter Anteil α der Fehlerindika-

toren nahe am Mittelwert uber alle Fehlerindikatoren liegt:

aquilibriert, wenn∑

K∈Th

αK ≥ αN.

aK =

1 1

2η ≤ ηK ≤ 2η

0 sonst,

η =1

N

K∈Th

ηK .

Danach wird stets global verfeinert. Die rechte Seite wird zu zwei vorgege-

benen Losungen bestimmt:

u1(x, y) = (1 − x2)(1 − y2) sin(4x) sin(6y),

u2(x, y) = (1 − x2)(1 − y2)

√√x2 + y2 + y.

u2 hat im Nullpunkt eine Singularitat in der Ableitung. Im ersten Fall,

(Losung ohne Singularitat) wird das erhoffte Ergebnis erreicht: bei globa-

ler Verfeinerung bleibt eine Konvergenz der Ordnung N−1. Bei u2 liegt bei

globaler Verfeinerung lediglich eine Konvergenz der Ordnung O(N−1/2) vor.

Hier laßt sich der Fehler jedoch auch nicht in der Form (2.19) schreiben. Das

28

Page 29: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

1e-05

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000 1e+06

j(e)

DOFs

lokale VerfeinerungGlobale Verfeinerung

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)

DOFs

lokale VerfeinerungGlobale Verfeinerung

Abbildung 2.3: Globale Verfeinerung, sobald die Fehlerindikatoren aquili-

briert sind; oben: glatte Losung; unten: Losung mit Singularitat.

29

Page 30: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Freiheitsgrade IG bei η2K IG bei η3

K

81 34.73 34.73

140 21.24 19.98

800 9.45 7.74

4000 3.01 3.06

8700 2.01 1.95

20000 1.354 1.452

50000 0.874 1.268

80000 0.787 0.960

Tabelle 2.2: Gitterindex bei beiden Fehlerindikatoren

Integral uber die Ableitungen von u und z ist nicht endlich. Abbildung 2.3

zeigt die Ergebnisse.

Mit den beschriebenen Adaptionsstrategien kann jetzt die Qualitat der

Fehlerindikatoren uberpruft werden. A-priori gibt es kein Maß fur die Qua-

litat eines Fehlerindikators. Eine Bewertung kann nur anhand des erzeugten

Gitters erfolgen. Hierzu wird ein numerisches Beispiel gerechnet.

Beispiel 2.3 (Qualitat von Fehlerindikatoren) Wieder wird das Modell-

problem (2.1) gelost. Das Fehlerfunktional ist j2, der Punktfehler. Die Gitter

werden mit der”Optimales Gitter“-Strategie erzeugt. Die Qualitat der Feh-

lerindikatoren wird am erzeugten Gitter gemessen. Hierzu wird der Gitterin-

dex (Definition 1) herangezogen. Als Fehlerindikatoren dienen die lokalen

Absolutwerte der Fehlerschatzer η2 und η3 (2.11, 2.12) aus Abschnitt 2.2:

η2K = h3

K

(‖f‖K + 1

2h−

12

K ‖[∂nuh]‖∂k

) ∣∣∣∇2hzh

∣∣∣

η3K =

∣∣(f, z∗h − zh)K − 12〈[∂nuh] , z

∗h − zh〉∂K

∣∣ .In Tabelle 2.3 sind die Gitterindizes fur beide Sequenzen von Gittern auf-

getragen. Auch wenn die Unterschiede nicht groß sind, erzeugen die Fehler-

indikatoren η2K deutlich bessere Gitter. Der sehr ungenaue Fehlerschatzer η2

laßt sich gut als Fehlerindikator verwenden und der Gitterindex liegt um 20%

niedriger, die Gitter sind um 20% effizienter.

30

Page 31: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 3

Optimierung der

Funktionalauswertung

Ist man an dem Wert des Fehlerfunktionals j(u) interessiert, so kann der Feh-

lerschatzer verwendet werden, um einen genaueren Wert fur das Funktional

zu erhalten. Es gilt

j(u) = j(uh) + (∇e,∇z)

Ware es moglich den Fehlerterm (∇e,∇z) exakt zu bestimmen, so konnte

auch das Funktional exakt ausgewertet werden. (Unabhangig von der Appro-

ximation von uh). Die Genauigkeit der dualen Losung kann also verwendet

werden, um das Funktional mit hoher Genauigkeit zu bestimmen. Im folgen-

den werden verschiedene Verfahren vorgestellt, den Fehler (∇e,∇z) durch

einen Fehlerschatzer η zu ersetzten und mit

j(u) = j(uh) + η

einen besseren Wert fur das Funktional zu erhalten, als er mit j(uh) vorliegt.

Auch ohne die primale Losung zu rechnen, konnte der Wert des Funktionals

exakt ermittelt werden, wenn die kontinuierliche duale Losung vorliegt. Denn

fur uh = 0 gilt:

j(u) = j(0) + (∇e,∇z) = (f, z).

Alle Informationen uber den Wert des Fehlerfunktionals lassen sich auch aus

der rechten Seite f und der dualen Losung z gewinnen. Insbesondere kann

31

Page 32: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

die Genauigkeit des bereits vorgestellten Fehlerschatzers verwendet werden,

um einen besseren Schatzwert fur das Fehlerfunktional zu erhalten. Der Term

(∇e,∇z) wird also durch den auswertbaren Fehlerschatzer η ersetzt (2.12),

der mit der hochsten Genauigkeit vorliegt. Als erste Moglichkeit fur einen im

Vergleich zu j(uh) verbesserten Funktionalwert j1(uh) ergibt sich:

j1(uh) := j(uh) + (f, z∗h) − (∇uh,∇z∗h) , (3.1)

und fur den Fehler j(u) − j1(uh)

j(u) − j1(uh) = (∇(u− uh),∇z) − (∇(u− uh),∇z∗h)= (∇(u− uh),∇(z − z∗h)) .

(3.2)

Die Verbesserung zum ursprunglichen Fehler (Vergleiche 2.8) besteht in der

Verwendung der patchweisen Interpolierten z∗h. Eine Verbesserung der Kon-

vergenz ist schwer vorhersagbar, da es fur den Term (z−z∗h) keine verlaßliche

Interpolationsabschatzung gibt. Es existiert kein Fehlerschatzer fur j(u) −j(uh) auf der Basis von uh, zh und z∗h. Wendet man auf (3.2) die Cauchy-

Schwarz Ungleichung an, so erhalt man

∣∣j(u) − j(uh)∣∣ ≤ ‖∇(u− uh)‖ ‖∇(z − z∗h)‖ , (3.3)

den Fehler in u und einen modifizierten Fehler in z in der Energienorm.

Nun konnte man versuchen, fur beide Energiefehler ein”optimales Gitter“ zu

erzeugen. Da von der dualen Losung z nur ein zh ∈ Vh, also nur eine Funktion

aus dem primalen Testraum abgezogen werden darf, ist es nicht ohne weiteres

moglich, fur das duale Problem ein”optimales Gitter“ zu verwenden.

Der Fehlerschatzer muß in einer Form geschrieben werden, die es erlaubt,

von z Funktionen aus getrennten Ansatzraumen abzuziehen. Hierzu wird ein

modifiziertes Funktional j(uh) eingefuhrt, mit

j(u) − j(uh) = (∇(u− uh),∇(z − zD))

⇔ j(uh) := j(uh) + (f, zD) − (∇uh,∇zD)(3.4)

wobei zD ∈ VD aus einem eigenen Ansatzraum stammt, also auf einem un-

abhangigen Gitter berechnet werden kann; es gilt nicht notwendig VD ⊃ Vh.

32

Page 33: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Eine (3.1) entsprechende Darstellung fur eine weitere Moglichkeit der Funk-

tionalauswertung j2(u) erhalt man sofort durch

j(u) = j(uh) + j(e) = j(uh) + [j(u) − j(uh)] + j(uh) − j(uh)

= (∇(u− uh),∇(z − zD)) + j(uh) + (f, zD) − (∇uh,∇zD)

≈ (∇(u− uh),∇(z∗ − zD)) + j(uh) + (f, zD) − (∇uh,∇zD)

⇒ j2(uh) := j(uh) + (f, z∗D) − (∇uh,∇z∗D) .

Dabei ist z∗D wieder die patchweise Interpolierte von zD auf einem Patch. Fur

den Fehler j(u) − j2(u) gilt dann:

j(u) − j2(uh) = (f, z) − j(uh) − (f, z∗D) + (∇uh,∇z∗D)

= (f, z − z∗D) − (∇uh,∇(z − z∗D))

= (∇(u− uh),∇(z − z∗D))

≤ ‖∇ (u− uh)‖ ‖∇ (z − z∗D)‖ .

(3.5)

Wieder erhalt man zwei Energiefehler. Diesmal ist es moglich, die Gitter von

u und z getrennt zu optimieren. Zur weiteren Verbesserung des Funktional-

werts kann auch noch die diskrete primale Losung uh durch die biquadrati-

sche Interpolierte u∗h ersetzt werden. Es ist zu erwarten, daß diese eine bessere

Naherung fur u darstellt:

j3(u) = j(u∗h) + (f, z∗D) − (∇u∗h,∇z∗D) .

Fur samtliche hier vorgestellte Methoden existiert nun kein Fehlerschatzer

mehr. Es ist aber stets∣∣j(u) − j(uh)

∣∣ ≤ |j(u) − j(uh)| zu erwarten, da die

patchweise Interpolierte eine bessere Approximation ist und z auf einem ge-

trennten Gitter berechnet wurde. In Beispiel (3.1) wird der Effekt der ver-

schiedenen Methoden zur Auswertung des Funktionals verglichen. Da eine ex-

akte Losung vorgegeben sein wird, kann der Fehler auch ohne Fehlerschatzer

genau bestimmt werden. Dieses gibt zumindestens Anhaltspunkte fur die

Anwendung der Methode auf andere Probleme:

Beispiel 3.1 (Auswertung des Funktionals) Gelost wird das Modellpro-

blem (2.1). Das Fehlerfunktional und die rechte Seite werden so gewahlt, daß

33

Page 34: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

primale und duale Losung große zweite Ableitungen in unterschiedlichen Ge-

bieten haben: (Abbildung 3.1)

u(x, y) =(1 − x2)(1 − y2) exp

(− 1

x4

)

j(ϕ) =

∫ 1

−1

ϕ(x, 0) dx .

Die Gitter des primalen und dualen Problems werden getrennt gefuhrt und

verfeinert. Zur Verfeinerung der Gitter wird stets ein Energiefehlerschatzer

verwendet. Ziel ist es, den Fehler in Bezug auf NP +ND, die Summe der Frei-

heitsgrade des primalen und dualen Gitters, zu minimieren. Dieser Wert steht

fur den Aufwand der numerischen Losung. Verfeinert wird stets das Gitter,

welches weniger Freiheitsgrade hat. Zur Auswertung des Fehlerfunktionals

werden vier Methoden verwendet:

O j(uh),

I j1(uh) = j(uh) + (f, zD) − (∇uh,∇zD) ,

II j2(uh) = j(uh) + (f, z∗D) − (∇uh,∇z∗D) ,

III j3(uh) = j(u∗h) + (f, z∗D) − (∇u∗h,∇z∗D) .

In Abbildung 3.2 ist der Fehler gegen die Summe der Freiheitsgrade beider

Gitter aufgetragen. Methode I bringt bei der Auswertung keine wesentlichen

Vorteile gegenuber dem Standartvorgehen O. Bei den anderen beiden Me-

thoden II und III liegt jedoch eine Konvergenz der Ordnung N−2 in Bezug

auf die Summe der Zahl der Freiheitsgrade aus beiden Gittern vor.

Der a-posteriori Fehlerschatzer konnte bisher fur die Erzeugung von ef-

fizienten Gittern verwendet werden, da die Residuen und die Gewichte ge-

meinsam und lokal den Fehler bestimmen. Hier wird die Cauchy-Schwarz

Ungleichung verwendet und die Gitter werden getrennt verfeinert. An den

Stellen, an denen z glatt ist, mußte das primale Gitter nicht verfeinert wer-

den. Gleiches gilt entsprechend fur das duale Gitter. Diese Auswertung des

Funktionals beruht auf getrennten Gittern fur u und z. Beispiele haben ge-

zeigt, daß die Ergebnisse nicht so gut sind, wenn zur Verfeinerung des pri-

malen Gitters die ublichen Fehlerindikatoren verwendet werden.

34

Page 35: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Nprim Ndual Nprim + Ndual j(e) j1(e) j2(e) j3(e)

81 81 162 0.441 0.438 0.134 0.117

289 81 370 0.105 0.105 0.035 0.00124

289 189 478 0.105 0.015 0.015 0.00338

289 401 690 0.105 0.032 0.0032 0.00093

665 401 1066 0.026 0.026 0.00098 0.00054

665 921 1568 0.026 0.0103 0.00024 0.00025

2333 921 3254 0.0065 0.0065 7.97 · 10−5 2.05 · 10−6

2333 1953 4286 0.0065 0.0036 1.01 · 10−4 3.11 · 10−5

2333 5329 7662 0.0065 0.0019 3.04 · 10−5 3.55 · 10−5

6945 5329 12274 0.0016 0.0011 2.47 · 10−5 2.08 · 10−6

6945 8661 15606 0.0016 0.0010 9.80 · 10−6 2.18 · 10−6

23805 8661 32466 0.00038 0.00030 4.07 · 10−6 8.44 · 10−7

23805 23701 47506 0.00038 0.00025 2.17 · 10−6 2.69 · 10−7

Tabelle 3.1: Freiheitsgrade des primalen und dualen Gitters und Wert des

Fehlerfunktionals bei allen Methoden der Auswertung von Beispiel 3.1.

Eine weitere Anwendung dieser Methode ist die Moglichkeit, den Fehler

zu reduzieren, ohne uber eine genaue Approximation der primalen Losung

zu verfugen. Angenommen, zu verschiedenen rechten Seiten muß stets der

Wert der Losung in einem Punkt bestimmt werden. Dann reicht es eine gute

duale Losung zu berechnen und, zu jeder rechten Seite, die primale Losung

uh nur auf einem Grobgitter zu bestimmen. Das Fehlerfunktional kann dann

wie gerade beschrieben als

j(uh) = j(uh) + (f, z∗D) − (∇uh,∇z∗D)

ausgewertet werden. Ist z∗D einmal berechnet, so kann zu jedem f der Wert

j(uh) uber eine Residuumsberechnung bestimmt werden.

35

Page 36: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Primale Loesung

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

-0.0050

0.0050.01

0.0150.02

0.0250.03

0.0350.04

0.045

z

Duale Loesung

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

z

Abbildung 3.1: Losung des primalen und dualen Problems zu Beispiel 3.1.

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

1

100 1000 10000 100000

j~(e

)

N_primal+N_dual

OIIIIII

Abbildung 3.2: Die Fehler bei den verschiedenen Auswertungsmoglichkeiten

des Funktionals bei Beispiel 3.1. O: j(uh), I: j(uh) + (f, zD) − (∇uh,∇zD),

II: j(uh) + (f, z∗D) − (∇uh,∇z∗D), III: j(u∗h) + (f, z∗D) − (∇u∗h,∇z∗D)

36

Page 37: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 4

Optimale Gittererzeugung

Die bisher vorgestellten Verfahren haben den Nachteil, daß in jedem Ver-

feinerungsschritt jede Zelle hochstens einmal in vier neue Zellen aufgeteilt

werden kann. Der Reduktion des Fehlers pro Verfeinerungsschritt sind Gren-

zen gesetzt. Nach dem Verfeinern mussen das primale und das duale Problem

erneut gerechnet werden.

Die Gitteroptimierungsformel liefert zusatzliche Informationen, die ver-

wendet werden konnten, um sofort ein sehr viel feineres Gitter zu erzeugen.

Neben der Entscheidung, ob eine Zelle zu verfeinern ist, kann eine optimale

Gitterweite fur diese Zelle angegeben werden. Es ware moglich, sofort ein

Gitter zu erzeugen, das dem Problem optimal angepaßt ist. Hierzu mußte in

jedem Schritt sofort mehrfach verfeinert werden.

Dieses Verfahren ist auf alle oben genannten Adaptionsstrategien anwend-

bar. Ich orientiere mich am Error Balancing : Eine Zelle K wird verfeinert,

wenn ηK > tol der zellweisen Fehlertoleranz ist. Diese Zelle wird in vier neue

Zellen K1, . . . , K4 geteilt. Ware bekannt, wie sich der Fehler entwickelt und

wie groß er auf den neuen Zellen K1 bis K4 ware, so konnten diese Zellen

noch einmal verfeinert werden. Es mussen Fehlerindikatoren ηKibestimmt

werden, die den Fehler auf diesen neuen Zellen angeben.

37

Page 38: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

4.1 Mehrfache Verfeinerung einer Zelle

Die Entwicklung des Fehlerindikators ηK auf die Kinder K ′ der Zelle K nahe-

rungsweise berechnet werden. Fur die Darstellung des Fehlerindikators auf

K gilt dann mit (2.11) zunachst:

ηK ≤(‖f‖K + 1

2h−

12

K ‖[∂nuh]‖∂K

)h3

K

∣∣∇2hz(xK)

∣∣

≈ h4K

(∣∣∣f(xK)∣∣∣+∣∣∣∇2

hu(xK)∣∣∣) ∣∣∣∇2

hz(xK)∣∣∣ .

Dabei sind hK |f(xK)|, hK |∇2hz(xK)|, hK |∇2

hu(xK)| geeignete Approximatio-

nen der Normen auf der Zelle K und es wird angenommen, daß sich die

Sprunge uber die Normalableitungen wie die zweiten Ableitungen von u ver-

halten.

Auf diese Weise liegt ein Fehlerindikator vor, in dem nur die Gitterweite

hK als gitterabhangige Große eingeht. Der Fehler auf einer Zelle K kann

auch auf verfeinerte Zellen K ′ ⊂ K ubertragen werden. Angenommen: K ′

sei direktes Kind der Zelle K, also durch einfache Verfeinerung entstanden.

Dann ist hK ′ = 12hK . Damit gilt fur den Fehler auf K ′:

ηK ′ = h4K ′

(∣∣∣f(xK ′)∣∣∣+∣∣∣∇2u(xK ′)

∣∣∣) ∣∣∣∇2

hz(xK ′)∣∣∣

≈ h4K

16

(∣∣∣f(xK)∣∣∣+∣∣∣∇2u(xK)

∣∣∣) ∣∣∣∇2

hz(xK)∣∣∣

=ηK

16

Diese Rechnung gilt entsprechend fur weitere Kinder der neuen Zelle K ′.

Nach n-facher Verfeinerung gilt also fur eine Kn – ein n-tes Kind von K –

mit Zellweite hKn= 2−nhK naherungsweise fur den Fehler ηKn

:

ηKn≈ ηK

16n

Wird eine Zelle n mal verfeinert, so entstehen 4n neue Zellen. Die Sum-

me der Fehlerindikatoren auf diesen Zellen muß die vorgegebene, zellweise

Toleranz tol erreichen:

tol = 4n · ηK

16n=ηK

4n

⇔ nK = log4

ηK

tol

(4.1)

38

Page 39: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Verfeinert man die Zellen K jeweils nK mal, so ergeben sich folgende Proble-

me:

1) Die zweiten Ableitungen von u und z mussen existieren. Dieses wurde aber

generell eine Konvergenz der Ordnung h2 bedeuten. Enthalt das Funktional

jedoch Ableitungen von u, so liegt diese Konvergenzordnung schon nicht mehr

vor. Es stellt sich dann das Problem, daß keine globale Konvergenzaussage

mehr getroffen werden kann.

2) Es ist zu erwarten, daß diese Verfeinerungsstrategie zu sehr schlechten

Gittern fuhrt. Angenommen, die Ableitung in einem Punkt soll minimiert

werden. Der Fehlerindikator wird in allen Zellen, die diesen Punkt beruhren,

sehr groß sein und mehrmalige Verfeinerung vorschlagen. Nach dem ersten

Verfeinern kann nicht zwischen Fehlerindikatoren auf den neuen Zellen un-

terschieden werden, alle Zellen mussen wieder verfeinert werden. Die Verfei-

nerung wird auf Patchen durchgefuhrt und zu viele Zellen werden beruck-

sichtigt. Es werden entweder alle Kinder verfeinert oder keines. Das Gitter

ist dem Problem nicht entsprechend angepaßt und es werden weit mehr Zel-

len benotigt um einen bestimmten Fehler zu erreichen, als wenn das Gitter

langsam verfeinert wurde. Hierzu ein

Beispiel 4.1 (Gitter bei mehrfacher Verfeinerung) Es wird erneut das

Problem von Beispiel 2.1 gelost. Als Fehlerfunktional wird diesmal nur der

Mittelwert uber einen Teil des Gebiets betrachtet:

j(ϕ) =1

|W|

W

ϕ, W =[−1

2, 0]×[0, 1

2

].

Die Gitter werden auf zwei Arten adaptiert:

Strategie 1 Nach der Berechnung des dualen und des primalen Problems

wird das Gitter nach der”Error Balancing“ Strategie verfeinert. Es

werden alle Zellen des Gitters verfeinert, deren Fehlerindikatoren uber

einem Schwellenwert liegen. Dann werden primales und duales Problem

erneut berechnet.

Strategie 2 Nach der Berechnung des primalen und dualen Problems wer-

den wie in (4.1) alle Zellen so oft verfeinert, bis (bei geschatzter Kon-

39

Page 40: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000 1e+06

j(e)

DOFs

Strategie IIStrategie I

Abbildung 4.1: Anzahl der Freiheitsgrade und Fehler zum Erreichen der Ge-

nauigkeit von j(e) ≤ 2 · 10−6 bei Strategie I und Strategie II (mehrfache

Verfeinerung der Zellen)

vergenz zweiter Ordnung) die Fehlerindikatoren aquilibriert sind und

ein Schwellenwert erreicht ist. Der Schwellenwert wird in jedem Schritt

der Rechnung neu bestimmt.

Abbildung 4.1 zeigt den Fehler j(e) in Abhangigkeit von der Anzahl der Frei-

heitsgrade (DOFs). Die Anzahl der Gitterpunkte zum Erreichen des gleichen

Fehlers steigt bei mehrfacher Verfeinerung (Strategie II) sehr stark. Das Git-

ter ist nicht optimal an das Problem und das Fehlerfunktional angepaßt, und

es wird offensichtlich nicht optimal verfeinert.

Dieses Beispiel zeigt deutlich, daß nicht genugend Informationen vorlie-

gen, um ein”optimales Gitter“ zu erzeugen. Die Anzahl der Zellen steigt

exponentiell mit der Zahl der Verfeinerungen pro Schritt. Mehrfache Verfei-

nerung ohne das Problem erneut zu rechnen kann nur erfolgreich sein, wenn

genauere Fehlerindikatoren fur die Kinder einer Zelle vorliegen. Ohne Ent-

scheidungskriterien zur Verfeinerung von Kindern – von Zellen auf denen der

Fehlerschatzer nicht berechnet werden kann – wird die Strategie nicht zu

guten Gittern fuhren. Der Rechenaufwand wird zu groß und es kann trotz

schneller Verfeinerung keine Zeitersparnis erzielt werden. Hier zeigt sich auch

das Problem bei der Verwendung der Optimierungsformel (Satz 2.3). Es wird

40

Page 41: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

zwar eine Gitterweitenfunktion bestimmt, diese aber ist auf dem Gebiet einer

Zelle des groben Gitters stets konstant. Die Optimierung beschrankt sich auf

die Klasse der Gitter, die auf Patchen konstante Zellgroße hat. Das Ergebnis

kann also nicht ein optimales Gitter sein. Liegt z.B. ein Auswertungspunkt

in einer Zelle, so wird die Gitterweitenfunktion sehr kleine neue Zellen auf

dem Gebiet dieser Zelle vorschlagen. Diese kleine Gitterweite wird jedoch

nur in unmittelbarer Nahe des Auswertungspunkts benotigt. Die Daten lie-

gen fur die Optimierungsformel nicht in hinreichender Genauigkeit vor, um

ein wirklich optimales Gitter zu erzeugen.

Eine Moglichkeit, um dieses Problem zu beheben, ist, das duale Problem

genauer zu rechnen. Die Gewichte (2.13) im Fehlerschatzer konnen dann mit

hoherer Genauigkeit ermittelt werden und die Verfeinerung kann gezielter

erfolgen. So wurde der Aufwand fur die Berechnung des primalen Problems

gespart. Alternativ konnte auch das duale Problem festgehalten, und das

primale weiter gerechnet werden. Im nachsten Kapitel wird ein Verfahren

vorgeschlagen, um genaue Informationen uber den Fehlerschatzer zu erhalten,

die verwendet werden konnen, sehr schnell gute Gitter zu erzeugen.

4.2 Erhohte Genauigkeit im dualen Problem

Wenn die Residuen und Gewichte im Fehlerschatzer als kontinuierliche Funk-

tion vorliegen wurden, so konnte mit der Gitteroptimierungsformel (Satz 2.3)

in einem Schritt ein”optimales Gitter“ erzeugt werden. Die bisherigen Ver-

suche, eine Zelle sofort mehrfach zu verfeinern, schlagen wegen der nicht vor-

handenen Information uber die Fehlerverteilung innerhalb einer Zelle fehl.

Die Genauigkeit des Fehlerschatzers soll nun durch eine bessere Approxima-

tion der dualen Losung erhoht werden. Das duale Problem erhalt hierzu ein

separates Gitter Dh und dieses wird solange verfeinert (D(1)h ,D(2)

h , . . . ,D(m)h ),

bis der Wert des Fehlerschatzers konvergiert. Der Fehlerschatzer wird jetzt

stets in Abhangigkeit von zwei Eingabewerten fur die primale und duale

41

Page 42: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Losung geschrieben:

η(uh, zD) =∑

K∈Th

ηK(uh, zD),

ηK(uh, zD) = ‖f‖K ‖z − zD‖K + 12‖[∂nuh]‖∂K ‖z − zD‖∂K .

(4.2)

Dabei liegt uh in Vh(Th), dem Finite-Elemente Raum auf einem primalen

Gitter Th, und zD ∈ Vh(Dh) auf einem dualen Gitter.

Erst wenn dieser Fehlerschatzer nahe genug am optimalen Wert η(uh, zD) →η(uh, z), dem Fehlerschatzer mit der kontinuierlichen dualen Losung liegt,

wird mit diesem genauen Fehlerschatzer ein neues primales Gitter erzeugt.

Jetzt sollten genug Informationen vorliegen, um in einem Schritt ein sehr

feines Gitter erzeugen zu konnen. Das duale Problem muß zwar – wie bei der

ublichen, schrittweisen Gitterverfeinerung – mehrfach gerechnet werden, der

Aufwand fur das primale Problem ist jedoch reduziert.

4.2.1 Der Algorithmus mit zwei Gittern

Man geht von einer vorgegebenen Toleranz TOL aus, die im Fehlerfunktional

j(e) erreicht werden soll. Fur die Berechnung des dualen Problems wird eine

weitere Fehlertoleranz γD benotigt. Sie gibt die Genauigkeit an, die fur den

Fehlerschatzer erwartet wird: |η(uh, z) − η(uh, zD)| ≤ γD. Starttriangulatio-

nen Th und D1h sind gegeben.

1. Berechne uh auf Th.

2. Setze j = 1

(a) Berechne zj auf Djh

(b) Berechne den Fehlerschatzer ηj aus u und zj

(c) Wenn der Fehlerschatzer nicht genau genug ist

(|η(uh, z) − η(uh, zD)| > γD), erzeuge das Gitter

Dj+1h aus Dj

h und gehe zu (2a) mit j := j + 1

42

Page 43: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

3. Wenn η > TOL, berechne die Fehlerindikatoren und erzeuge

neues Gitter T (∗)h fur das primale Problem. Weiter bei 1

mit diesem Gitter -- ansonsten Abbruch.

Das primale Problem muß bei diesem Vorgehen nur selten gerechnet wer-

den. Durch die hohe Genauigkeit des Fehlerschatzers ist zu erwarten, daß die

Gitter effektiv sind, die Verfeinerung auf das Problem und das Fehlerfunktio-

nal optimal abgestimmt ist. Im folgenden werden die einzelnen Schritte im

Algorithmus erklart.

4.2.2 Auswertung des Fehlerschatzers

Ziel ist es jetzt, eine Form des Fehlerschatzers zu finden, in der primales und

duales Problem unterschiedliche Triangulationen haben. Um die optimale

Genauigkeit fur den Fehlerschatzer zu erhalten, wird die duale Losung z

durch die patchweise Interpolierte z∗j der diskreten dualen Losung zj auf dem

dualen Gitter ersetzt. Die Fehleridentitat kann dann ausgewertet werden als:

ηj =∑

K∈Th

(f, z∗j − ihz∗j )K −

(∇uh,∇(z∗j − ihz

∗j ))

K. (4.3)

Dabei ist ih die Interpolation in den primalen Testraum Vh. Die Interpolierte

ihz∗j kann in der Auswertung des Fehlerschatzers wegen der Galerkinortho-

gonalitat naturlich weggelassen werden.

Die Auswertung des Fehlerschatzers ist mit hohem Aufwand verbunden,

da Funktionen aus unterschiedlichen Raumen in einem Skalarprodukt inte-

griert werden mussen. Bei der Implementation ist es notwendig, die primale

Losung uh und die patchweise Interpolierte z∗j der dualen Losung zunachst in

einen gemeinsamen Funktionenraum zu interpolieren, der beide Ansatzraume

enthalt.

4.2.3 Auswertung der Fehlerindikatoren

Um die genaueren Informationen uber die duale Losung nutzen zu konnen,

mussen die Fehlerindikatoren, die bisher nur auf den Zellen des primalen Git-

ters vorliegen, auf beliebigen Verfeinerungen von primalen Zellen auswertbar

43

Page 44: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

sein. Zusatzlich muß berucksichtigt werden, daß die Gewichte auf einem ge-

trennten Gitter vorliegen. Es sollen Fehlerindikatoren, wie (2.11) hergeleitet

werden, da diese die besten Ergebnisse lieferten. Der typische Fall wird sein,

daß die Residuen auf Zellen P ∈ Th des primalen Gitters vorliegen. Die

Gewichte liegen auf den Zellen D ∈ Dh des dualen Gitters vor und die Feh-

lerindikatoren mussen auf Zellen K ⊂ P ∈ Th ausgewertet werden, die Ver-

feinerungen von primalen Zellen sind. Hierzu ist es notwendig, die Residuen

und Gewichte der Fehlerindikatoren unabhangig von h-Potenzen anzugeben.

Die Residuen und Gewichte mussen gegen einen gitterunabhangigen Wert

konvergieren.

Bei den Gewichten sind die Potenzen der Gitterweite bereits separiert

(2.11). Fur die Residuen gilt:

ρ(1)K + ρ

(2)K = ‖f‖K + 1

2h−

12

K ‖[∂nuh]‖∂K

= hK

(h−1

K ‖f‖K + 12h− 3

2

K ‖[∂nuh]‖∂K

).

Der Ausdruck in den Klammern nimmt eine gitterunabhangige Form an,

wenn an die Regularitat von uh eine Bedingung wie bei der Gitteroptimie-

rungsformel (2.19) gestellt wird:

h−1K ‖f‖K + 1

2h− 3

2

K ‖[∂nuh]‖∂K ≈∣∣∣f(xK)

∣∣∣+ 12

∣∣∣∇2hu(xK)

∣∣∣ .

Der Fehlerschatzer laßt sich nun allgemein auf Zellen K schreiben, wenn die

Daten der Residuen und Gewichte auf primalen Zellen P und dualen Zellen

D vorliegen:

ηK = h4K

(h−1

P ‖f‖P + 12h− 3

2

P ‖[∂nuh]‖∂P

) ∣∣∣∇2hz(xK)

∣∣∣ , (4.4)

wobei K ⊂ P und hK |∇2hz(xK)| eine Approximation von ‖∇2z‖K ist.

4.2.4 Die innere Iteration

In der inneren Iteration des Algorithmus wird das duale Gitter solange ver-

feinert, bis der Fehlerschatzer ηj auskonvergiert ist. In jedem Schritt muß

44

Page 45: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

das duale Gitter dem”Fehler im Fehlerschatzer“ angepaßt werden. Hierzu

mußte eigentlich ein weiteres duales Problem zu einem speziellen Funktional

gerechnet werden. Zur Vereinfachung wird aber das duale Gitter mit einem

Energiefehlerschatzer verfeinert.

Als Abbruchskriterium wird die Abweichung zweier aufeinander folgen-

der Schatzwerte |ηi+1 − ηi| benutzt. Wenn diese unter einem Toleranzwert γD

liegt, so ist die duale Losung genau genug. Bei diesem Vorgehen muß sicher-

gestellt werden, daß das duale Gitter in jedem Schritt hinreichend verfeinert

wird. Hat Di+1h die gleiche Anzahl von Zellen wie Di

h, so andert sich auch

der Wert des Fehlerschatzers nicht. Wird aber zur Gitteradaption die”Fixed

Fraction“ oder”Fixed Number“ Methode verwendet, so kann hinreichende

Verfeinerung sichergestellt werden.

4.2.5 Verfeinern des Gitters

Das Verfeinern der primalen Gitters zielt auf aquilibrierte Fehlerindikatoren.

Es wird zunachst ein Toleranzwert vorgegeben. Das Verfeinern geschieht dann

nach folgendem Algorithmus:

Vorgegeben ist maxV , die maximale Anzahl von Verfeinerungsschritten.

Weiter sei err die Summe der Fehlerindikatoren. Diese Summe soll nach

maxV Verfeinerungsschritten einen Toleranzwert erreichen.

Setze T 1h = Th die aktuelle Triangulation und wiederhole fur i =

1, . . . , maxV :

1. Setze TOL < err (Zielwert) und tol = TOL/Ncells (Der Schwel-

lenwert auf jeder Zelle)

2. Fur alle P ∈ T ih:

(a) berechne ηP (wie in 4.4).

(b) Wenn ηP > TOL: Wahle P zum Verfeinern aus.

3. Fuhre Verfeinerungen aus und erzeuge neue Triangulation fur

das primale Problem T ih → T i+1

h .

45

Page 46: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Erfullen z und u die Regularitatsvoraussetzungen der Gitterformel (Satz

2.3), so sollten nach hinreichend vielen Verfeinerungsschritten des primalen

Gitters die Fehlerindikatoren aquilibriert sein und der Algorithmus schlagt

globale Verfeinerung vor.

4.3 Numerische Beispiele

Das Modellproblem (2.1) wird mit unterschiedlichen rechten Seiten und un-

terschiedlichen Fehlerfunktionalen auf dem Quadrat [−1, 1]2 betrachtet. Als

abschließendes Beispiel wird die Poissongleichung auf einem Gebiet mit Schlitz

betrachtet. Hier treten zusatzlich Eckensingularitaten auf. Die rechten Seiten

bestimmen sich stets aus vorgegebenen Losungen:

u1(x, y) = (1 − x2)(1 − y2) sin(4x) sin(6y),

u2(x, y) = (1 − x2)(1 − y2)(1 − x),

u3(x, y) = (1 − x2)(1 − y2)

√√x2 + y2 + y,

u4(x, y) = (1 − x2)(1 − y2) exp

(− 1

x4

).

Die Losung u3 hat Nullrandwerte auf dem Rand und auf dem Schlitz 0 ×[−1, 0] und wird auf einem speziellen Gebiet Ω′ berechnet:

Ω′ = (−1, 1)2\(0 × [1, 0]).

Diese Losung hat in der Ableitung eine Singularitat im Ursprung. Die Vor-

aussetzungen der Gitterformel (Satz 2.3) gelten hier nicht. Das Integral uber

die zweiten Ableitungen von u und z ist nicht endlich. Die betrachteten Feh-

lerfunktionale sind:

j1(ϕ) = ϕ(x0) x0 = (14, 1

4),

j2(ϕ) =

Γ1

∂nϕ dx Γ1 = [−1 × (−1, 1)] ∪ [(−1, 1) × 1],

j3(ϕ) =1

|W|

W

ϕ dx W = (−12, 0) × (0, 1

2),

j4(ϕ) =

∫ 1

−1

ϕ(x, 0) dx .

46

Page 47: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die beiden Funktionale j1 und j2 liegen nicht in H−1(Ω) und mussen daher

regularisiert werden. (Siehe z.B. [2]). Am Beispiel von j1 bedeutet dies, das

der Punktwert als Mittelwert uber eine Umgebung Bε(x0) des Punktes x0

ausgewertet wird:

j1(ϕ) =1

|Bε(x0)|

Bε(x0)

ϕ(x) dx , Bε(x0) = z ∈ Ω : |z − x0| ≤ ε.

Der Parameter ε muß hinreichend klein gewahlt werden und orientiert sich

an der Fehlertoleranz TOL, so daß der durch die Regularisierung entstehende

Fehler nicht ins Gewicht fallt.

Zu den rechten Seiten und Fehlerfunktionalen werden folgende funf Bei-

spiele gerechnet:

Losung Funktional

Beispiel 4.2 u1 j1

Beispiel 4.3 u2 j2

Beispiel 4.4 u2 j3

Beispiel 4.5 u3 j3

Beispiel 4.6 u4 j4

Die Beispiele wurden so gewahlt, daß moglichst viele Falle abgedeckt werden:

zu rechten Seiten mit unterschiedlichen Regularitatseigenschaften werden

verschiedene Fehlerfuntionale ausgewertet. Bis auf u3 in Beispiel 4.5 liegen

alle Losungen in H2(Ω). Als stark singulares Funktional wird bei Beispiel 4.3

die Normalableitung ausgewertet. Bei diesen beiden Beispielen (4.3, 4.5) sind

die Regularitatsvoraussetzungen der Gitteroptimierungsformel nicht erfullt.

Alle Probleme werden mit zwei unterschiedlichen Strategien gelost:

Strategie 1: Primales und duales Problem werden auf demselben Gitter

berechnet.

Strategie 2: Das duale Problem wird auf einem eigenen Gitter berechnet.

Die Rechnung lauft nach Algorithmus 4.2.1.

47

Page 48: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die Zellen werden bei beiden Strategien mit der Methode des”Optimalen

Gitters“ zur Verfeinerung ausgewahlt. Die Zellen des dualen Gitters werden

bei Strategie 2 mit der”Fixed-Fraction“ Methode ausgewahlt. Im Algorith-

mus zum Verfeinern des primalen Gitters (4.2.5) wird der Parameter maxV

als drei gewahlt. Auch das duale Problem wird maximal dreimal verfeinert,

bis die Abweichung im Fehlerschatzer (durch eine genauere duale Losung)

unter einem Prozent liegt. (Abschnitt (4.2.4) im Algorithmus). Zu den Bei-

spielen sind die kontinuierlichen Losungen bekannt. Der Fehler kann – bis auf

numerische Integration – stets exakt bestimmt werden. Alle Gleichungssy-

steme werden mit einem SSOR-vorkonditionierten konjugierten Gradienten-

Verfahren (CG-Verfahren) gelost.

In Abbildungen 4.2 bis 4.6 ist der Fehler der Approximation in Abhangig-

keit der benotigten Freiheitsgrade und in Abhangigkeit der CPU-Zeit angege-

ben, die benotigt wurde, einen Toleranzwert zu erreichen. Dabei werden alle

Zwischenrechnungen, die auf groben Gittern durchgefuhrt werden mussen,

mit einbezogen. Weiter wird zu den Beispielen die Anzahl der Zwischengitter

fur das primale Problem angegeben, also die Zahl der durchgefuhrten Rech-

nungen. Zu jedem Beispiel wird ein Gitter angegeben, daß mit Strategie 2

erzeugt wurde.

48

Page 49: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Beispiel 4.2 (Losung u1, Fehlerfunktional j1)

1e-05

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)/

j(u)

Freiheitsgrade

Strategie 1Strategie 2

1e-05

0.0001

0.001

0.01

0.1

1

0.01 0.1 1 10 100 1000

j(e)/

j(u)

Zeit

Strategie 1Strategie 2

Abbildung 4.2: Punktfehler bei glatter Losung.

Strategie 1 Strategie 2

Freiheitsgrade 93000 87000

Zeit 1. 0.45

Rechnungen des primalen Problems 10 4

Rechnungen des dualen Problems 10 9

49

Page 50: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Beispiel 4.3 (Losung u2, Fehlerfunktional j2)

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)/

j(u)

Freiheitsgrade

Strategie 1Strategie 2

0.0001

0.001

0.01

0.1

1

0.01 0.1 1 10 100 1000

j(e)/

j(u)

Zeit

Strategie 1Strategie 2

Abbildung 4.3: Integral uber Normalableitung bei glatter rechter Seite.

Strategie 1 Strategie 2

Freiheitsgrade 79000 75000

Zeit 1. 0.56

Rechnungen des primalen Problems 10 4

Rechnungen des dualen Problems 10 10

50

Page 51: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Beispiel 4.4 (Losung u2, Fehlerfunktional j3)

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

10 100 1000 10000 100000 1e+06

j(e)/

j(u)

Freiheitsgrade

Strategie 1Strategie 2

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

0.01 0.1 1 10 100 1000 10000

j(e)/

j(u)

Zeit

Strategie 1Strategie 2

Abbildung 4.4: Mittelwert uber Teil der Losung bei glatter rechter Seite.

Strategie 1 Strategie 2

Freiheitsgrade 360000 350000

Zeit 1. 0.70

Rechnungen des primalen Problems 8 4

Rechnungen des dualen Problems 8 5

51

Page 52: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Beispiel 4.5 (Losung u3, Fehlerfunktional j3)

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)/

j(u)

Freiheitsgrade

Strategie 1Strategie 2

0.0001

0.001

0.01

0.1

1

0.01 0.1 1 10 100 1000

j(e)/

j(u)

Zeit

Strategie 1Strategie 2

Abbildung 4.5: Die Losung hat eine Eckensingularitat, der Fehler wird in

einem Punkt ausgewertet.

Strategie 1 Strategie 2

Freiheitsgrade 46500 45300

Zeit 1. 0.49

Rechnungen des primalen Problems 12 4

Rechnungen des dualen Problems 12 12

52

Page 53: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Beispiel 4.6 (Losung u4, Fehlerfunktional j4)

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)/

j(u)

Freiheitsgrade

Strategie 1Strategie 2

0.0001

0.001

0.01

0.1

1

0.01 0.1 1 10 100 1000

j(e)/

j(u)

Zeit

Strategie 1Strategie 2

Abbildung 4.6: Das Fehlerfunktional ist ein Linienintegral, die Funktion hat

zwei Stellen mit großen Ableitungen.

Strategie 1 Strategie 2

Freiheitsgrade 79000 70500

Zeit 1. 0.47

Rechnungen des primalen Problems 8 3

Rechnungen des dualen Problems 8 4

53

Page 54: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die Abbildungen und Tabellen 4.2 bis 4.6 zu den Beispielen 4.2 bis 4.6

zeigen, daß Strategie 2 deutlich uberlegen ist. Es werden meist Zeitersparnisse

von 50% erreicht. Auch die Gitter sind – im Gegensatz zu Beispiel 4.1 – sehr

effizient. Es werden bei Strategie 2 nicht mehr Freiheitsgrade benotigt, um

einen Fehler zu erreichen, als bei der ublichen, schrittweisen Verfeinerung von

Strategie 1. Liegt der duale Fehlerschatzer hinreichend genau vor, so kann

das duale Gitter optimal verfeinert werden.

Unabhangig von der Problemstellung liefert der Algorithmus zur mehrfa-

chen Verfeinerung sehr gute Ergebnisse. Die angegebenen Gitter zeigen, daß

dieses Verfahren auf verschiedenste Probleme angewendet werden kann.

Insgesamt zeigt sich, daß dieses Verfahren erst effektiv ist, wenn primale

und duale Losung große zweite Ableitungen haben. Es hat sich aber auch

schon beim Vergleich der Adaptionsstrategien in Kapitel 2 gezeigt, daß bei

sehr glatten Losungen keine Unterschiede zwischen den Strategien festzu-

stellen sind. In Beispiel 4.4 ist der Zeitgewinn nur sehr gering. Bei diesem

Beispiel sind die Fehlerindikatoren schon nach der ersten Verfeinerung aqui-

libriert; danach wird nur noch global verfeinert.

4.4 Zusammenfassung

Die Strategie zur mehrfachen Verfeinerung ist mit einem hohen technischen

Aufwand verbunden. Es mussen zwei Gitter verwaltet werden, die Losungen

liegen auf beiden Gittern (bei unterschiedlicher Zahl von Freiheitsgraden) vor

und mussen haufig zwischen den Gittern interpoliert werden. Trotz des hoher-

en Aufwands lohnt sich die Gitterstrategie, da insgesamt bei weitem weniger

Losungen berechnet werden mussen. In allen Beispielen war das Verfahren

nach drei oder vier Verfeinerungen am Ziel. Mit der klassischen Strategie

wurde dieses erst nach mindestens doppelt so vielen Schritten erreicht. Da

das Verfahren stets versucht, die Fehlerindikatoren wirklich zu aquilibrieren,

sind die Gitter oft effektiver als bei einfacher Verfeinerung.

Ein Problem der Strategie 2 ist die große Schrittweite bei der Verfeinerung

des Gitters: in Beispiel 4.4 hat das primale Gitter Th ausgehen von 64 Zellen

54

Page 55: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

nach nur drei Verfeinerungsschritten mehr als 300.000 Zellen. Das Verfahren

ist schwer zu steuern. Der Parameter maxV kann wahrend der Berechnung

adaptiv gewahlt werden; wenn der derzeitige Wert des Fehlerschatzers schon

nahe an der gewunschten Fehlertoleranz liegt, so muß maxV klein gewahlt

werden. Um die gewunschten Effekte zu erreichen, mußten sehr geringe Feh-

lertoleranzen vorgegeben werden (oft 10−5). Bei nur wenigen Verfeinerungs-

schritten ist Strategie II noch nicht uberlegen.

Auf der Seite der Implementation des Verfahrens ergeben sich insbe-

sondere im Zusammenhang mit der verwendeten Finite-Elemente Software-

Bibliothek deal.II [13, 14] einige Probleme:

• Zwei vollkommen getrennte Gitter mussen verwaltet werden. Der Spei-

cherbedarf ist deutlich hoher. Alle Daten liegen nun verteilt auf zwei

Gittern vor. Da die Gitter lokal verfeinert sein sollen, besteht keine

direkte Verbindung zwischen den Gittern.

• Die Zellen des primalen Gitters mussen oft mit denen im dualen in

Verbindung gebracht werden. Im Fehlerschatzer mussen zu den Zellen

des derzeitigen Gitters entsprechende Zellen aus dem primalen und dem

dualen Gitter gesucht werden, um die Residuen und Gewichte zu ermit-

teln. Der Aufwand fur die Suche nach einer Zelle ist O(M · logN), wenn

M die Zahl der Zellen im Grobgitter ist. Um diesen Faktor verlangert

sich nun die Laufzeit verschiedener Algorithmen (Auswertung des Feh-

lerschatzers und der Fehlerindikatoren).

• Werden fur das duale und primale Problem die gleichen Gitter ver-

wendet, so kann bei diesen einfachen Beispielen fur beide Probleme

die gleiche Besetzungsstruktur der Matrix verwendet werden. Bei zwei

getrennten Gittern sind aber unterschiedlichen Besetzungsstrukturen

notwendig.

Die dargestellte Strategie kann nicht ohne weiteres auf nichtlineare Pro-

bleme ubertragen werden. Sollen diese Probleme mit dem Newton-Verfahren

gelost werden, so muß bei bestimmten nichtlinearen Problemen fur jeden

55

Page 56: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Schritt eine hinreichend gute Startlosung bekannt sein. Unterscheiden sich

die Gitter nicht sehr stark, so ist die Interpolation der alten Losung in das

neue Gitter meist ein guter Startwert. Werden aber die Gitter so stark ver-

feinert wie bei der hier vorgestellten Strategie, so kann gegebenenfalls nicht

mehr mit dem Newton-Verfahren gelost werden. Es mußten Verfahren, mit

geringerer Konvergenzordnung verwendet werden. Diese wurden den mit der

Verfeinerungsstrategie erreichten Vorteil wieder aufheben.

56

Page 57: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 5

Remeshing

Die in Kapitel 2 vorgestellte Methode der lokalen Gitterverfeinerung soll nun

mit dem Remeshing verglichen werden. Ausgehend von den Fehlerindikato-

ren muß nun nicht mehr entschieden werden, ob eine Zelle verfeinert wird,

sondern ein komplett neues Gitter muß erzeugt werden. Dabei bleibt die

Struktur des Gitters nicht mehr erhalten.

Bei diesem Verfahren werden in jedem Schritt des Remeshings fur alle

Zellen des derzeitigen Gitters neue Zellweiten berechnet, so daß die Fehler-

indikatoren im neuen Gitter aquilibriert sind. Es ist nicht sichergestellt (und

im Allgemeinen auch nicht zu erwarten), daß zu den gewunschten Zellwei-

ten auch ein Gitter gehort. Gerade bei der Verwendung von Vierecksgittern

sind die Gestaltungsmoglichkeiten begrenzt, da die Triangulation gewissen

Regularitatsbedingungen genugen muß.

Es wurde den Rahmen dieser Arbeit sprengen, naher auf dieses Problem

und allgemein auf die Erzeugung von Gittern einzugehen. Vielmehr wird

in diesem Kapitel versucht, die Ergebnisse des dualen Fehlerschatzer (2.12)

auf die Gittergenerierung zu ubertragen. Weiter wird untersucht, ob es mit

Remeshing besser moglich ist, eine gewunschte Gitterweitenverteilung auf

einem Gitter zu realisieren, als mit hierarchischer Gitterverfeinerung. Die

quantitativen Ergebnisse der Berechnungen spielen hier zunachst keine Rolle.

Grundlegend ist die Vorgabe einer Gitterweitenfunktion. Die Gitteropti-

mierungsformel (Satz 2.3) liefert sofort eine Verteilung der Gitterweiten h(x)

57

Page 58: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

und wird als Eingabe fur einen Gittergenerator verwendet.

Alternativ kann – ausgehend von Fehlerindikatoren – ηK und einer an-

genommenen Konvergenzordnung α die optimale Zellweite hopt berechnet

werden: hat die Zelle K die Zellweite hK und soll auf den neuen Zellen der

Fehler tol erreicht werden, so ist hopt fur α = 1 bestimmt als:

hopt =

(tol

ηK

) 1

4

hK .

Bei beiden Moglichkeiten spielen die Konstanten des Fehlerschatzers eine

große Rolle. Das erzeugte Gitter hat zwar aquilibrierte Fehlerindikatoren, je-

doch sind diese mit der – nicht bekannten – Konstante skaliert. Die Anzahl

der Zellen im neuen Gitter wird durch die Konstante beeinflußt und kann

nicht vorhergesagt werden. Eine Moglichkeit, diesem Problem aus dem Weg

zu gehen, ist die gewunschte Anzahl der Zellen im neuen Gitter vorher fest-

zulegen. Ist hopt(x) die optimale Gitterfunktion im Gebiet Ω, so ist die Zahl

der zu erwartenden Zellen im neuen Gitter:

N =

Ω

h−2opt(x) dx .

Wenn die gewunschte Zahl der Zellen als N vorgegeben ist, so muß die Git-

terfunktion skaliert werden durch:

hopt(x) =

√N

N· hopt(x).

Diese Gitterfunktion kann nun an einen Gittergenerator ubergeben werden.

In den folgenden Beispielen wird der Gittergenerator BAMG 1 [9] verwen-

det. BAMG verwendet einen”Quadtree“-Algorithmus (siehe z.B. [8]) und

erzeugt eine Dreiecks-Triangulation. Da die verwendete FE-Bibliothek de-

al.II [13, 14] nur mit Rechtecksgitter rechnen kann, werden die Dreiecksgitter

in Rechtecksgitter transformiert. Bei der Transformation werden Vierecks-

gitter erzeugt, die moglichst starken Regularitatsbedingungen an ihre Form

genugen. Die Transformation erfolgt in zwei Schritten:

1

”Bidemensional Anisotropic Mesh Generator“ von Frederic Hecht.

http://www-rocq.inria.fr/Frederic.Hecht

58

Page 59: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Abbildung 5.1: Die beiden Transformationsschritte von einem Dreiecksgitter

zu einem Vierecksgitter.

1. Zusammenfassen von zwei Dreiecken zu einem Viereck:

Je zwei Dreiecke mit gemeinsamer Seite werden zu einem Viereck zu-

sammengefaßt, wenn fur das Verhaltnis von langster Seite l zu kurzester

Seite k im erzeugten Viereck

1 ≤ l

k≤ 2

und fur alle Innenwinkel αi des erzeugte Vierecks

1

3π ≤ αi ≤

2

gilt. Die neuen Vierecke werden alle einmal global verfeinert.

2. Aufteilen der ubrigen Dreiecke in jeweils drei Vierecke:

Die ubrigen Dreiecke werden in jeweils drei Vierecke aufgeteilt. Hierzu

werden neue Ecken in der Mitte der Seitenlinien des Dreiecks und im

Mittelpunkt des Dreiecks erzeugt.

Auf diese Art entsteht ein Vierecksgitter ohne hangende Knoten. Abbildung

5.1 zeigt den Transformationsprozeß an einem einfachen Beispiel.

5.1 Der adaptive FE-Algorithmus mir”Re-

meshing“

Das adaptive Finite-Elemente Verfahren muß nur bezuglich der Gittersteue-

rung verandert werden. Anstelle der Gitterverfeinerung tritt nun der Gitter-

generator.

59

Page 60: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

1. Vorgegeben ist ein Startgitter Th, und eine Toleranz TOL,

die im Fehlerfunktional erreicht werden soll.

2. Berechne uh zur Triangulation Th.

3. Berechne den Fehlerschatzer η und ηK.

4. η < TOL: Abbruch.

5. Berechne aus den Fehlerindikatoren die optimale Gitterfunk-

tion. Passe die Gitterfunktion der gewunschten Anzahl von

Zellen an.

6. Erzeuge mit einem Gittergenerator ein neues Gitter und star-

te mit diesem Gitter ab 2.

In Punkt (5) des Algorithmus muß in jedem Schritt die Anzahl der Zellen

gewahlt werden. Im Prinzip konnte stets die gleiche Zahl von Zellen gewahlt

werden. In jedem Schritt wird das Gitter bei gleicher Zellenzahl effizienter

und der Fehler geringer. Jeder Schritt der Berechnung wurde dann aber hohe

Kosten verursachen. Ein mogliches effizienteres Verfahren ware, in jedem

Schritt die Zahl der Zellen langsam zu erhohen.

5.2 Numerische Beispiele

Zunachst soll uberpruft werden, in wie weit der benutzte Gittergenerator

eine vorgegebene Dichtefunktion in einem Gitter darstellen kann. Verglichen

werden die vorgegebenen Zellweiten mit den Zellweiten, die das erzeugte

Gitter darstellt. Zusatzlich wird das Ergebnis des Gittergenerators mit den

erreichten Zellweiten bei lokaler Gitterverfeinerung verglichen.

Beispiel 5.1 Gerechnet wird das Modellproblem (2.1) zu vorgegebener Losung

u(x, y) = (1 − x2)(1 − y2) sin(4x) sin(6y)

mit dem Fehlerfunktional

j(ϕ) = ∂xu(x0), x0 = (14, 1

4).

60

Page 61: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Das Fehlerfunktional liegt nicht in H−1(Ω) und muß regularisiert werden.

(Siehe z.B. Abschnitt 4.3). Die duale Losung hat eine starke Singularitat im

Punkt x0 (jetzt wird die Ableitung im Punkt ausgewertet). Beim Remeshing

erhalt der Gittergenerator als Dichtefunktion die Ergebnisse der Optimie-

rungsformel (Satz 2.3). Ausgewertet werden jeweils die Gitterweiten aller

Zellen entlang einer Testlinie, die durch das Gebiet lauft. Einmal wird ent-

lang der Linie (t, 0.25) und einmal entlang der Linie (t, 0.8) ausgewertet.

In den Grafiken 5.2 sind jeweils die Zellweiten gegen die x-Koordinate auf-

getragen. In jeder Grafik ist das Ergebnis der Gitterformel (Satz 2.3), sowie

die realisierten Zellweiten bei Gittergenerierung und Gitterverfeinerung auf-

getragen. Da die Zellweiten stark schwanken konnen, werden die Ergebnisse

in Abbildung 5.3 zusatzlich als Bezier-Kurven gezeigt.

In den Grafiken 5.2 und 5.3 zeigt sich, daß beide Verfeinerungsstrategien

in der Lage sind, die Ergebnisse der Gitterformel darzustellen. Der in der

Grafik 5.3 klare Vorteil des Gittergenerators liegt nur an der Unscharfe der

lokalen Gitterverfeinerung: benachbarte Zellweiten konnen nur um den Fak-

tor 2 variieren. Im kritischen Punkt x = 0.25 fallt die Wahl aber auf die

kleinere Zellweite, die nahe an der Vorgabe der Gitterformel liegt. Samtliche

Ergebnisse des Gittergenerators zeigen Fehler am Rand. Hier mussen Zellen

kunstlich verkleinert werden, um an den Rand des Gebiets zu passen.

61

Page 62: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

1e-05

0.0001

0.001

0.01

0.1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

GittergeneratorGitterverfeinerung

Zielwert

0.01

0.1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

GittergeneratorGitterverfeinerung

Zielwert

Abbildung 5.2: Die Zellweiten entlang der Linien (t, 0.25) (oben) und (t, 0.8).

1e-05

0.0001

0.001

0.01

0.1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

h

(x,0.25)

ZielwertGittergenerator

Gitterverfeinerung

0.01

0.1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

h

(x,0.8)

ZielwertGittergenerator

Gitterverfeinerung

Abbildung 5.3: Die interpolierten Zellweiten entlang beider Linien.

62

Page 63: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 6

Anisotrope Finite-Elemente

In vielen Fallen hat die Losung einer Differentialgleichung ein stark aniso-

tropes Verhalten: z.B. konnen Grenzschichten am Rand auftreten, Anisotro-

pien konnen durch anisotrope Daten, durch Sprunge in der rechten Seite

oder durch Singularitaten des Gebiets, schließlich auch durch Singularitaten

im Operator hervorgerufen werden. Auf der anderen Seite kann durch das

Fehlerfunktional ein anisotropes Verhalten erzeugt werden. Werden Integrale

entlang einer Linie – zum Beispiel am Rand – ausgewertet, so zeigt die dua-

le Losung anisotropes Verhalten an dieser Linie. Insgesamt lassen sich die

Ursachen fur anisotropes Verhalten in vier Bereichen zusammenfassen:

1. Daten: die rechte Seite oder die Randwerte besitzen Sprunge oder stark

anisotropes Verhalten.

2. Gebiet: bei einspringenden Ecken verandert die Losung ihr Verhalten

sehr stark in Richtung der Ecke. Bei einspringenden Kanten (in 3D)

kann sich so ein stark anisotropes Verhalten entwickeln.

3. Operator: der Operator ist anisotrop, z.B. (∇·a∇) mit anisotropem a.

4. Fehlerschatzer: das verwendete Fehlerfunktional erzeugt eine anisotrope

duale Losung.

Bei der Realisierung einer anisotropen Finite-Elemente Methode muß die

Anisotropie in das Gitter einfließen. Es werden Zellen benotigt, die stark in

63

Page 64: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

eine Richtung gestreckt sind. Bei der Umsetzung sind einige Probleme zu

losen:

• Der Fehlerschatzer (2.8) muß modifiziert werden. Ein Problem ergibt

sich erst dann, wenn Interpolationsabschatzungen verwendet werden

sollen. Wird, wie bei (2.12), die patchweise Interpolierte verwendet, so

ist der Fehlerschatzer auch im anisotropen Fall anwendbar.

• Es muß die Moglichkeit zur anisotropen Verfeinerung geschaffen wer-

den. Die Finite-Elemente Bibliothek deal.II [13, 14] leistet dieses nicht.

Es konnen nur Rechteckelemte oder Hexaeder verwendet werden, und

diese nur in je vier (in 2D) und acht (3D) neue Elemente verfeinert

werden. Die numerischen Untersuchungen werden sich deshalb auf Ten-

sorgitter, das sind insbesondere Gitter ohne lokale Verfeinerung, be-

schranken. Zur weiteren Untersuchung – und zur vollen Auflosung von

Anisotropie – ist die Verwendung von Dreiecksgittern unerlaßlich.

• Uber den Wert des Fehlerschatzers und die Fehlerindikatoren hinaus

muß der Fehlerschatzer die”Richtung“ und

”Starke“ der Anisotropie

ermitteln konnen. Hierauf wird gesondert und detailiert eingegangen.

• Die Verwendung von anisotropen Gittern beeinflußt die Kondition der

Systemmatrix negativ. Dieses wirkt sich auf die Losung der Gleichungs-

systeme negativ aus. Durch spezielle Vorkonditionierer und spezielle

Sortierung der Freiheitsgrade kann dieses Problem behandelt werden.

(siehe z.B. [11]).

6.1 Erkennen von Anisotropie

Ein grundsatzliches Problem besteht im Ablesen der Informationen uber die

Anisotropie aus der gerechneten Losung und gegebenenfalls aus weiteren

Hilfsdaten. Beim Losen der partiellen Differentialgleichungen soll die Aniso-

tropie adaptiv erkannt und berucksichtigt werden. Wie der Fehler der Finite-

Elemente Losung, laßt sich auch die Anisotropie auf den Interpolationsfehler

zuruckfuhren.

64

Page 65: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

v

Abbildung 6.1:

6.1.1 Anisotropie im Interpolationsfehler

Als Zugang zu diesem Thema wird ein sehr einfaches Beispiel betrachtet. Eine

Funktion u soll auf einer Linie eindimensional interpoliert werden. Dabei

sei Ih : C2 → P1 die eindimensionale Knoteninterpolation in den Raum

der linearen Funktionen. Gesucht ist die Ausrichtung v der Linie, so daß

der Interpolationsfehler minimal bzw. maximal wird. Die Lange der Linie

sei |v| = 1 und die zweiten Ableitungen der Funktion u seien konstant. In

Abbildung (6.1) ist diese Situation dargestellt. Es ist dann folgendes Problem

zu losen: Zu einer Funktion u ∈ C2(B) mit konstanten zweiten Ableitungen

in B bestimme v ∈ R2 mit

‖u− Ihu‖Γv→ min

Γv =λv ∈ R

2; 0 ≤ λ ≤ 1, |v| = 1

(6.1)

Dann gilt fur die Interpolationsabschatzung

‖u− Ihu‖Γv≤ c ‖∂ttu‖Γv

≈∣∣∣∂ttu (ζ)

∣∣∣= |〈v,Huv〉|

Hu =

(∂xxu ∂xyu

∂xyu ∂yyu

).

Dabei ist Hu die Hessematrix. Die Ableitungswerte ∂ sind geeignete Mit-

telwerte. Als symmetrische Matrix hat Hu zwei reelle Eigenwerte λ1 ≤ λ2;

65

Page 66: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

es existiert somit eine orthogonale Transformationsmatrix T , bestehend aus

den Eigenvektoren v1, v2, so daß die Matrix Hu diagonalisierbar ist:

Hu = T TDT, D = diag(λ1, λ2), T T = (v1, v2) .

Das Minimierungsproblem (6.1) hat dann die einfache Form

min‖x‖=1

|〈x,Dx〉|

und nimmt sein Minimum fur den Einheitsvektor e1. Den geringsten Inter-

polationsfehler erhalt man in Richtung v1, dem zum betragsmaßig kleinsten

Eigenwert gehorenden Eigenvektor. Schreibt man das Problem als Maximie-

rungsproblem, so erhalt man entsprechend v2 als Richtung mit dem großten

Interpolationsfehler.

Dieses einfache Beispiel zeigt, daß die gesuchten Informationen in den

zweiten Ableitungen der Losung zu suchen sind. Die Anisotropie der Funk-

tion u kann an der Hessematrix abgelesen werden. Dabei kennzeichnet das

Verhaltnis der Eigenwerte λ1 : λ2 das Anisotropieverhaltnis und die Eigen-

vektoren die – stets orthogonalen – Richtungen der maximalen und mini-

malen Anisotropie. Grundsatzlich sind zwei Aspekte zu untersuchen: 1. die

”Lage“ der Anisotropie, das ist die optimale Ausrichtung eines Gitters und

2. die”Starke“ der Anisotropie, also die Streckung der Zellen. Da das erste

Problem durch Tensorgitter nicht dargestellt werden kann, wird diese Frage

hier nicht weiter behandelt.

Eine erste Erweiterung des zweiten Aspektes ist das Ermitteln der opti-

malen Hohe und Breite eines Rechtecks zur Minimierung des Interpolations-

fehlers auf einer Zelle. Der Flacheninhalt sei dabei stets konstant A = hx ·hy.

Das zugehorige Minimierungsproblem ist: Zu u ∈ C2(K) suche hx, hy > 0:

‖u− Ihu‖K(hx,hy) → min, hx · hy = A.

Die zweiten Ableitungen seien wieder konstant. Es ergibt sich dann

‖u− Ihu‖K(hx,hy) ≤ (hxhy)12 (h2

x |∂xxu| + h2y |∂yyu|)

=√A(h2

x |∂xxu| + A2h−2x |∂yyu|).

66

Page 67: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Als notwendige Bedingung fur einen Extrempunkt erhalt man

0 = 2hx |∂xxu| − 2A2h−3x |∂yyu|

h4x = A2 |∂yyu|

|∂xxu|.

Das optimale Verhaltnis von Hohe und Breite des Elements ist

hx

hy=

( |∂yyu||∂xxu|

) 12

. (6.2)

FallsK(hx, hy) 6⊂ K, und somit die Regularitatsvoraussetzungen nicht sicher-

gestellt sind, so kann A entsprechend kleiner gewahlt werden. Das optimale

Verhaltnis ist unabhangig von der Zellgroße A.

6.1.2 Anisotrope Interpolationsabschatzungen

Im folgenden sind anisotrope Interpolationsabschatzungen notwendig. Ver-

sucht man, eine Interpolationsabschatzung uber das Bramble-Hilbert Lemma

herzuleiten, so erhalt man bei der H1-Interpolationsabschatzung durch die

Transformation auf ein Referenzelement den Faktor hmax/hmin, den Quoti-

enten aus maximaler und minimaler Zellweite. Der anisotrope Fehlerschatzer

und die Finite-Elemente Methode sollen aber auch stabil sein, wenn dieser

Quotient gegen unendlich strebt. Eine Interpolationsabschatzung ohne die-

sen Faktor laßt sich jedoch zeigen, wenn die Ableitungen ∂x(u − Ihu) und

∂y(u− Ihu) getrennt abgeschatzt werden:

Satz 6.1 (H1-Interpolationsabschatzung) Es seien hx, hy die Zellwei-

ten der Zelle K eines Tensorgitters. Der Knoteninterpolationsoperator Ih

erfullt fur alle u ∈ H2(K) ∩ C(K) die Abschatzung:

‖∇(u− Ihu)‖K ≤ c(h2

x ‖∂x∇u‖2K + h2

y ‖∂y∇u‖2K

)12

Der Beweis wird z.B. in [7] gefuhrt.

67

Page 68: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

6.1.3 Anisotropie in den Fehlerindikatoren

Fur die anisotrope Finite-Elemente Methode mussen Informationen uber die

Anisotropie der primalen und der dualen Losung gemeinsam erfaßt werden.

Eine Moglichkeit ware, wie in (6.2) den Interpolationsfehler fur u und z

gleichzeitig zu minimieren. Als Verfeinerungsindikator wird das Produkt der

lokalen Interpolationsfehler verwendet:

ηK := ‖∇(u− Ihu)‖K ‖∇(z − Ihz)‖K . (6.3)

Die Abschatzung ‖u− uh‖ ≤ ‖u− Ihu‖ ist jedoch nur global auf ganz Ω

gultig. Dieser heuristische Ansatz entspricht auch nicht dem Vorgehen beim

dualen Fehlerschatzer. Hier werden nur lokale Interpolationsfehler betrachtet.

Die Fehlerverbreitung, also insbesondere der Einfluß von Fehleranteilen auf

andere Teile des Gebiets werden nicht berucksichtigt.

Es zeigt sich aber in numerischen Beispielen, daß (6.3) als Verfeinerungs-

indikator sinnvoll einsetzbar ist. Mit der Interpolationsabschatzung (Satz 6.1)

ergibt sich – wieder fur A = hx · hy aus (6.3):

ηK ≤ c(h2x ‖∂x∇u‖2

K + h2y ‖∂y∇u‖2

K)12 (h2

x ‖∂x∇z‖2K + h2

y ‖∂y∇z‖2K)

12

∼ (h4x ‖∂x∇u‖2

K ‖∂x∇z‖2K + A4h−4

x ‖∂y∇u‖2K ‖∂y∇z‖2

K + A2C)12

C := ‖∂x∇u‖2K ‖∂y∇z‖2

K + ‖∂y∇u‖2K ‖∂x∇z‖2

K .

Minimiert man diesen Ausdruck, wieder unter der Bedingung hx ·hy = A, so

erhalt man:

h4x = A2 ‖∂y∇u‖K ‖∂y∇z‖K

‖∂x∇u‖K ‖∂x∇z‖K

.

Fur das optimale Verhaltnis ergibt sich so

hx

hy=

(‖∂y∇u‖K ‖∂y∇z‖K

‖∂x∇u‖K ‖∂x∇z‖K

)12

. (6.4)

Auf diese Art konnen die Anisotropie der Losung und die Anisotropie des

Funktionals zusammen ermittelt werden. Auch Anisotropien, die durch das

Gebiet entstehen (”einspringende Kanten“ in 3D) werden berucksichtigt, da

sich die Anisotropie sowohl auf u als auch auf z auswirkt.

68

Page 69: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Bei diesem Zugang werden nur die Interpolationsfehler minimiert. Bes-

ser ware eine Minimierung der Fehlerindikatoren, die aus dem dualen Feh-

lerschatzer (2.8) hergeleitet werden konnen. Versucht man jedoch die Infor-

mationen direkt aus dem Fehlerschatzer abzulesen, so ergibt sich folgendes

Problem:

ηK = (f, z − zh)K − 12〈[∂nuh] , z − zh〉∂K

≈hxhy

(∣∣∣f(xK)∣∣∣(h2

x

∣∣∣∂xxz(xK)∣∣∣+ h2

y

∣∣∣∂yyz(xK)∣∣∣)

+h2x

∣∣∣∂yyu(xK)∣∣∣∣∣∣∂xxz(xK)

∣∣∣+ h2y

∣∣∣∂xxu(xK)∣∣∣∣∣∣∂yyz(xK)

∣∣∣).

(6.5)

Der erste Teil, der vom Gebietsskalarprodukt kommt, ist unabhangig von

den Ableitungen von u. In der rechten Seite f stecken zwar die zweiten Ab-

leitungen von u, diese sind aber nicht in die beiden Koordinatenrichtungen

getrennt.

Im zweiten Teil treten die Ableitungen von u und von z entgegengesetzt

auf. Ableitungen ∂xx von u werden mit Ableitungen ∂yy von z multipliziert.

Versucht man das optimale Verhaltnis zu bestimmen, so ergibt sich

ηK → min, hx · hy = A

⇒ hx

hy=

( |∂xxu| |∂yyz||∂yyu| |∂xxz|

)12

.(6.6)

Dieses Ergebnis ist entgegengesetzt zu den bisherigen Formeln (6.2) und

(6.4) und kann nicht die optimale Anisotropie beschreiben: angenommen,

die Funktion u sei in x-Richtung ein Polynom vom Grad 1, also ∂xxu = 0.

Die Formel (6.6) wurde vorschlagen, das Gitter in x-Richtung beliebig oft zu

verfeinern - also genau in der falschen Richtung. Es kann im anisotropen Fall

nicht reichen, nur das Skalarprodukt uber den Rand der Zellen

〈[∂nuh] , z − zh〉∂K

zu betrachten. Auch im Gebietsskalarprodukt mussen Informationen liegen.

Wie in Abschnitt 2.2 bei (2.14) kann versucht werden, das Ergebnis zu

verbessern, indem anstelle der zellweise Interpolierenden ihz die spezielle In-

terpolierende iP z auf einem Patch abgezogen wird. Dann ergibt sich:

ηP = (f − fP , z − iP z) − 12

K∈P

〈[∂nuh] , z − iP z〉∂K .

69

Page 70: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

So ist es moglich, die Ableitungen von f in die Koordinatenrichtungen zu

trennen. Aus dem ersten Teil dieser Darstellung des Fehlerschatzers kann

dann ein optimales Verhaltnis entsprechend (6.4) hergeleitet werden, es muß

nur u durch f ersetzt werden und es entstehen erste Ableitungen von f .

Dieses Ergebnis bringt allerdings Probleme mit sich:

• Die Ableitungen von f entsprechen dritten Ableitungen von u. Da f oft

aber nicht einmal als stetige Funktion gegeben ist, sind die Ableitungen

von f nicht auswertbar. Auch die dritten Ableitungen von u konnen

– gerade bei bilinearen Elementen – nicht ausgewertet werden, zumal

deren Existenz uberhaupt nicht sicher ist.

• Durch das Einschieben einer Interpolation bei f wird das Gebietsska-

larprodukt kleiner. Der Fehler wird umso starker durch den zweiten

Term mit den Sprungen uber die Kanten bestimmt. In diesem Term

treten die Ableitungen von u und z weiterhin entgegengesetzt auf.

Obwohl von der Fehleridentitat ausgegangen wurde, laßt sich aus dem Aus-

druck (6.5) nicht das optimale Anisotropieverhaltnis bestimmen. Es hat sich

jedoch schon in Kapitel 2 gezeigt, daß die Fehleridentitat nicht notwendig

gute Fehlerindikatoren liefert. Ist man nur an einer Richtungsentscheidung

interessiert, ob Verfeinerung in x- oder in y-Richtung erfolgen muß, so kann

diese Information aus der Fehleridentitat abgelesen werden. Wird jedoch ein

quantitatives Ergebnis benotigt, so muß die Anisotropie anhand der Interpo-

lationsfehler identifiziert werden. In den weiteren Untersuchungen wird von

einem optimalen Verhaltnis von hx zu hy nach (6.4) ausgegangen und auf

jeder Zelle sei dieses Verhaltnis gegeben durch

αK :=

(‖∂y∇u‖K ‖∂y∇z‖K

‖∂x∇u‖K ‖∂x∇z‖K

) 12

. (6.7)

Spater wird ein globaler Prozeß vorgestellt, um die Anisotropie zu ermitteln.

Dann wird wieder der Fehlerschatzer verwendet werden.

70

Page 71: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

6.2 Erzeugen von optimalen Tensorgittern

Die Moglichkeiten bei der Gestaltung von Tensorgittern sind sehr gering. Es

ist lediglich eine Verteilung von Gitterpunkten auf der x- und auf der y-

Achse zu wahlen. Diese sollen in jedem Schritt alle neu bestimmt werden. Es

reicht nicht, nur neue Linien einzufugen. In jedem Schritt des”remeshings“

– es kann nicht mehr von Verfeinerung gesprochen werden, da ganz neue

Gitter entstehen – werden die Gitterlinien neu verteilt. Es muß jetzt eine

Entscheidung uber die Lage der Gitterlinien und auch uber die Anzahl der

Gitterlinien getroffen werden.

Zum Erzeugen des neuen Gitters stehen als Informationen die Fehlerindi-

katoren ηK und auf jeder Zelle ein optimales Anisotropieverhaltnis αK (6.7)

zur Verfugung.

6.2.1 Lokale Gittergenerierung

Zunachst wird versucht, fur jede Zelle eine optimale Große zu bestimmen, die

sowohl den Wert des Fehlerindikators, als auch die Anisotropie berucksichtigt.

Die so gewonnenen Zellgroßen werden auf Spalten und Zeilen des Gitters

gemittelt und aus diesen Werten wird ein neues Gitter erzeugt.

Es wird wieder versucht, den Fehler auf jeder Zelle zu aquilibrieren, also

auf jeder Zelle den Fehler tol zu erreichen und dabei das optimale Verhaltnis

hx/hy = aK auszunutzen. Gegeben ist eine Zelle K mit Kantenlangen hx und

hy; bekannt sind Approximationen√hxhy

∣∣∣∂xxu∣∣∣ ≈ ‖∂xxu‖K der Normen der

zweiten Ableitungen von u und z. Bestimmt werden sollen neue Kantenlangen

nx, ny, so daß auf den neuen Zellen der Fehler tol bei geringstem Aufwand

erreicht wird. Als Fehlerindikator wird (6.5) verwendet. Mit der Bedingung

nx = αKny und der lokalen Anisotropie (6.7) ergibt sich:

tol = cn2yαK

(∣∣∣∂xxu∣∣∣ +∣∣∣∂xxu

∣∣∣) (

n2yα

2K

∣∣∣∂xxz∣∣∣+ n2

y

∣∣∣∂yyz∣∣∣)

⇔ ny =

(tol

cαK

)14 [(∣∣∣∂xxu

∣∣∣+∣∣∣∂xxu

∣∣∣) (

α2K

∣∣∣∂xxz∣∣∣+∣∣∣∂yyz

∣∣∣)]−1

4,

nx = αKny.

71

Page 72: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Diese optimalen Zellgroßen mussen jetzt auf die Spalten und Zeilen des

Gitters ubertragen werden. Es mussen Funktionen hx(x) und hy(y) erzeugt

werden, welche die Gitterweite angeben. Da es nicht moglich sein wird, die

lokalen Zellgroßen in einem Tensorgitter zu realisieren, mussen Mittelwerte

gebildet werden.

6.2.2 Gittergenerierung

Im nachsten Schritt muß aus den Gitterfunktionen hx(x) und hy(y) ein neues

Gitter generiert werden. Dafur muß die Anzahl der Gitterlinien in beide Ko-

ordinatenrichtungen und die Verteilung der Gitterpunkte bestimmt werden.

Fur die Zahl der Gitterlinien auf einer Koordinatenachse wird das Verhalt-

nis N = 1/h genutzt und man erhalt, ubertragen auf den kontinuierlichen

Fall

Nx =

∫ b

a

hx(x)−1dx

Ny =

∫ b

a

hy(y)−1dy,

wenn Ω = (a, b)2.

(6.8)

Da die Anzahl der Gitterlinien ganzzahlig sein muß, werden die Funktionen

hx(x) und hy(y) mit ⌈Nx⌉/Nx (entsprechend bei Ny) skaliert. Dabei ist

⌈x⌉ := minn∈N,x≤n

n.

Die neuen Gitterpunkte x0, . . . , xNxwerden jetzt gleichmaßig im Sinne

von hx(x)−1 verteilt:

i = 0, . . . , Nx xi :

∫ xi

a

hx(x)−1dx = i,

i = 0, . . . , Ny yi :

∫ yi

a

hy(y)−1dy = i.

(6.9)

6.2.3 Globale Gittergenerierung

Der bisherige Zugang zu optimalen Zellgroßen hx(K) und hy(K) hat den

Nachteil, daß zu diesen neuen Großen kein Tensorgitter paßt. Durch das Bil-

den von Mittelwerten sind die erzeugten Gitter nicht mehr optimal. In diesem

72

Page 73: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Abschnitt wird ein Verfahren entwickelt, um eine optimale Verteilung von

Gitterlinien zu erhalten, die auf Tensorgittern zu realisieren ist. Dabei wer-

den nur Informationen verwendet, die spater auch in einem Gitter dargestellt

werden konnen. In diesem Prozeß werden keine lokalen Zellgroßen bestimmt.

Dieser Zugang halt sich wieder streng an den dualen Fehlerschatzer, also an

die Fehleridentitat. Es muß nicht auf die heuristische Minimierung der lokalen

Interpolationsfehler zuruckgegriffen werden. Das Tensorgitter sei nun durch

die beiden – kontinuierlichen – Funktionen hx(x) und hy(y), welche die Zell-

große entlang der beiden Koordinatenachsen angeben dargestellt. Das Gebiet

Ω sei im folgenden das Rechteck [a, b] × [c, d]. Dann ist:

N = NxNy =

(∫ b

a

hx(x)−1dx

)(∫ d

c

hy(y)−1dy

)(6.10)

die Anzahl der Zellen des Gitters. Als Verfeinerungsindikatoren wird von der

Fehleridentitat (2.8) ausgegangen. Mit Interpolationskonstanten c1, c2 gilt:

η =∑

K∈Th

(f, z − zh)K−12〈[∂nuh] , z − zh〉∂K

≤∑

K∈Th

hx(K)hy(K)(hx(K)2

∣∣∣∂xxz∣∣∣(c1

∣∣∣∂xxu∣∣∣+ (c1 + c2)

∣∣∣∂yyu∣∣∣))

+

(hy(K)2

∣∣∣∂xxz∣∣∣((c1 + c2)

∣∣∣∂xxu∣∣∣+ c1

∣∣∣∂yyu∣∣∣))

.

(6.11)

Die Konstante c1 kommt von der Gebietsinterpolation ‖z − Ihz‖K , c2 ist die

Interpolationskonstanten von den Sprungtermen. hx(K) und hy(K) sind die

Zellgroßen der Zelle K. Dieser Ausdruck wird nun als Integral uber das ganze

Gebiet Ω geschrieben. Die Zellgroßen hx, hy werden jetzt als kontinuierliche

Funktionen geschrieben:

η =

∫ b

a

hx(x)2Φx(x) dx +

∫ d

c

hy(y)2Φy(y) dy ,

Φx(x) =

∫ d

c

∣∣∣∂xxz∣∣∣(c1

∣∣∣∂xxu∣∣∣+ (c1 + c2)

∣∣∣∂yyu∣∣∣)

dy

Φy(y) =

∫ b

a

∣∣∣∂yyz∣∣∣((c1 + c2)

∣∣∣∂xxu∣∣∣+ c1

∣∣∣∂yyu∣∣∣)

dx .

73

Page 74: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Φx und Φy sind vom Gitter unabhangige, numerisch auswertbare Funktionen,

die die Ableitungen der primalen und dualen Losung beschreiben. Diese Dar-

stellung des Fehlerschatzers wird nun mit der Nebenbedingung N ≤ Nmax

minimiert. Das Lagrange-Funktional ist dann:

L(hx, hy, λ) = η(hx, hy) + λ(N(hx, hy) −Nmax).

Minimiert wird wie ublich uber alle”zulassigen“ Variationen. Dabei muß

darauf geachtet werden, daß z.B. die Funktion hx(x) auch nur mit positiven

Funktionen, die in y-Richtung konstant sind, variiert wird. Es gilt∫ b

a

∫ d

c

ϕ(x)f(x, y) dx dy = 0 ∀ϕ ∈ C1, ϕ > 0 ⇔∫ d

c

f(x, y) dy = 0.

Es bleibt ein Linienintegral ubrig. Aus der Bedingung

∂tL(hx(x) + tψx(x), hy(y) + tψy(y), λ+ tµ)

∣∣∣∣t=0

= 0.

ergibt sich dann

2hx(x)Φx(x) − λhx(x)−2Ny = 0,

2hy(y)Φy(y) − λhy(y)−2Nx = 0,

Nmax = NxNy.

Aus den ersten beiden Gleichungen erhalt man

hx(x)3 =

λNy

2Φx(x),

hy(y)3 =

λNx

2Φy(y).

(6.12)

Um hieraus einen Nutzen ziehen zu konnen, muß das optimale Verhaltnis von

Nx zu Ny bekannt sein. Hierzu werden die bisherigen Ergebnisse in die Fehler-

darstellung eingesetzt. Folgender Ausdruck wird unter der Nebenbedingung

NxNy = Nmax und ohne Berucksichtigung des Faktors λ/2 minimiert:

η =N2

3y

∫ b

a

Φx(x)1

3 dx

︸ ︷︷ ︸Ψx

+N2

3x

∫ d

c

Φy(y)1

3 dy

︸ ︷︷ ︸Ψy

=ΨxN2

3maxN

− 2

3x + ΨyN

2

3x .

74

Page 75: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Es ergibt sich

0 = −2

3ΨxN

2

3maxN

− 5

3x +

2

3ΨyN

− 1

3x ,

N4x =

(Ψx

Ψy

)3

N2max.

Auf diese Weise erhalt man Nx und mit Ny = Nmax/Nx auch diesen Wert.

Danach kann mit (6.12) auch hx(x) und hy(y) ausgerechnet werden. Der

Lagrange-Multiplikator λ geht spater als Faktor in die optimalen Zellweiten

ein. Interessant ist zunachst aber nur das Verhaltnis hx : hy. Es kann λ = 1

gesetzt werden. Die Anzahl der Zellen muß stets vorgegeben werden. Hier

bietet es sich an, Nmax – die gewunschte Zahl von Zellen – im nachsten

Gitter langsam zu erhohen.

75

Page 76: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

6.3 Numerische Beispiele

In mehreren Beispielen wird nun das im vorherigen Abschnitt entwickelte

Verfahren zur Gittererzeugung bei anisotropen Tensorgittern getestet. Wie

in den letzten Kapiteln wird wieder stets die Poissongleichung mit homogenen

Dirichletrandwerten gelost. Es werden nur Probleme gewahlt, deren Anisotro-

pien auf einem Tensorgitter darstellbar sind. Die Anisotropie verlauft immer

parallel zu den Koordinatenachsen. Um weitergehende Probleme zu losen,

ware die Verwendung von Dreieicksgittern unerlaßlich. Die rechten Seiten

werden zu zwei vorgegebenen Losungen betrachtet:

u1(x, y) = (1 − x2)(1 − y2) exp

(− 1

x4

),

u2(x, y) = (1 − x2)(1 − y2)(1 − x).

u2 ist im ganzen Gebiet sehr glatt und isotrop. u1 hat in zwei Streifen, parallel

zur y-Achse, große Ableitungen ∂xxu1. Abbildung 6.3 zeigt diese Funktion.

Der Fehler wird in drei Funktionalen ausgewertet:

j1(u) =

∫ 1

−1

u(x, 0) dx ,

j2(u) =

∫ 1

−1

∂yu(x, 0.5) dx ,

j3(u) =

∂Ω

∂nu dx .

Die zugehorigen dualen Losungen sind alle anisotrop. Die Funktionale j1 und

j2 erzeugen duale Losungen z mit großen Ableitungen ∂yyz in Teilen des Ge-

biets, die duale Losung zum Funktional j3 hat große Ableitungen normal zum

Rand des Gebiets. Die Funktionale j2(u), j3(u) liegen nicht in H−1(Ω) und

mussen regularisiert werden. Das Funktional j3 wurde auch in [6] behandelt.

Es wird durch das regularisierte Funktional jε3 ersetzt, mit:

jε3(ϕ) =

1

ε

Ωε

∂nϕ(x) dx ,

Ωε = x ∈ Ω : dist(x, ∂Ω) ≤ ε.

76

Page 77: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Es wird der Mittelwert der Normalableitung uber einen Streifen am Rand

gebildet. Dann gilt

limε→0

jε3(ϕ) = j3(ϕ).

Bei der Losung des dualen Problems wird ε so gewahlt, daß jε(ϕ) − j(ϕ) ≪‖ϕ‖ TOL, wenn TOL die Fehlertoleranz ist. Als duale Losung z fur das nicht-

regularisierte Funktional wurde sich

z =

1 x ∈ Ω

0 x ∈ ∂Ω

ergeben. Da die duale Losung im Innern des Gebiets konstant Eins ist, liefern

die Zellen im Innern auch keinen Anteil zum Fehler. Die Verfeinerung muß

also nur am Rand des Gebiets erfolgen.

Drei Beispiele werden zu folgenden Kombinationen von rechten Seiten

und Fehlerfunktionalen gerechnet:

Losung Funktional

Beispiel 6.1 u1 j1

Beispiel 6.2 u1 j2

Beispiel 6.3 u2 j3

Das Beispiel 6.1 entspricht dabei Beispiel 4.6 mit isotroper, lokaler Git-

terverfeinerung. Zu allen Rechnungen wird in den Tabellen 6.1 bis 6.3 der

Fehler, der Effektivitatsindex und die im Gitter dargestellte Anisotropie an-

gegebenen. Dabei ist A die mittlere Anisotropie uber alle Zellen des Gitters

und Amax die maximale Anisotropie einer Zelle des Gitters:

aK = max

hx(xK)

hy(xK),hy(xK)

hx(xK)

∀K ∈ Th,

A = N

√∏

K∈Th

aK , Amax = maxK∈Th

aK .

77

Page 78: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

0.0001

0.001

0.01

0.1

1

10 100 1000 10000 100000

j(e)

Freiheitsgrade

isotrope Verfeinerunganisotrope Verfeinerung

Abbildung 6.2: Konvergenzverhalten bei anisotroper und isotroper Verfeine-

rung zu Beispiel 6.1.

Beispiel 6.1 Die Losungen des primalen und dualen Problems haben beide

ein stark anisotropes Verhalten. Die Ausrichtung der Anisotropie ist jedoch

entgegengesetzt. Bei u ist |∂xxu| groß, bei z ist |∂yyz| groß. (Siehe auch Ab-

bildung 3.1 zu Beispiel 3.1). In jedem Schritt der Gittersteuerung wird die

Zahl der Zellen um den Faktor 5 erhoht (siehe Abschnitt 6.2.3).

Bei der Rechnung mit anisotroper Verfeinerung auf Tensorgittern wurde

der gleiche Fehler wie bei Rechnung mit isotroper lokaler Gitterverfeinerung

Freiheitsgrade j(e) η/j(e) A Amax

81 0.441 0.69 1 1

315 0.0812 0.92 1.86 4.83

1107 0.00711 0.97 2.60 18.51

3927 0.00089 0.99 3.50 115.97

13755 0.00021 1.00 3.30 221.09

Tabelle 6.1: Freiheitsgrade, Fehler, Effektivitatsindex und Anisotropie bei

der anisotropen Rechnung.

78

Page 79: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Freiheitsgrade j(e) η/j(e) A Amax

81 0.45 1.82 1 1

299 0.0743 2.34 3.28 22.70

1035 0.00259 2.11 3.98 25.15

3735 0.00125 1.73 7.60 163.97

13137 0.000232 2.18 8.17 782.43

46269 1.22 · 10−5 13.72 17.41 20433.6

Tabelle 6.2: Freiheitsgrade, Fehler, Effektivitatsindex und Anisotropie bei

Beispiel 6.2

mit nur 25% der Freiheitsgraden fur TOL = 10−4 erreicht. In Abbildung 6.2

ist das Konvergenzverhalten der Losung dargestellt. Der direkte Vergleich zu

Beispiel 4.6 zeigt, daß die anisotrope Finite-Elemente Methode hier uberlegen

ist. Tabelle 6.1 legt nahe, daß die im Gitter dargestelle Anisotropie gegen

einen festen Wert konvergiert.

Beispiel 6.2 In Abbildung 6.3 sind primale und duale Losung zu diesem

Beispiel dargestellt. Im Gegensatz zu Beispiel 6.1 wird im Fehlerfunktio-

nal die Ableitung ausgewertet. Die duale Losung hat demnach eine starke

Singularitat entlang der Auswertungslinie. In Tabelle 6.2 sind die Zahl der

Freiheitsgrade und der Fehler sowie der Effektivitatsindex (η/j(e)) und die

Anisotropie angegeben. In diesem Beispiel konvergiert die Anisotropie nicht.

Da diese von den zweiten Ableitungen der dualen Losung bestimmt wird, die

hier nicht existieren, kann eine Konvergenz auch nicht erwartet werden.

Auch der Effektivitatsindex konvergiert nicht gegen 1. Die duale Losung

hat entlang einer Linie einen Sprung (Abbildung 6.3). Durch die Regula-

risierung des Funktionals wird dieser Sprung geglattet. Mit der richtigen

Wahl des Regularisierungsparameters ε sollten Probleme vermieden wer-

den. Der schlechte Effektivitatsindex ist auf die Verwendung der biquadra-

tischen, patchweisen Interpolierenden zuruckzufuhren. Die Approximations-

eigenschaften dieser Interpolierenden sind sehr schlecht, wenn der Sprung in

der dualen Losung mitten durch einen Patch verlauft.

79

Page 80: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

primales Problem

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

-0.0050

0.0050.01

0.0150.02

0.0250.03

0.0350.04

0.045

z

duales Problem

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

-1.5

-1

-0.5

0

0.5

1

z

Abbildung 6.3: Primale und duale Losung zu Beispiel 6.2.

80

Page 81: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Freiheitsgrade j(e) η/j(e) A Amax

81 0.12631 1.06 1 1

289 0.02824 1.03 2 4

289 0.00099 0.98 53 292

289 7.77 · 10−5 0.99 380 4287

289 2.02 · 10−5 0.99 1444 16178

289 5.19 · 10−6 1.01 6196 67037

275 3.33 · 10−6 1.00 13077 339212

289 2.29 · 10−6 1.00 14644 165504

289 5.46 · 10−7 1.00 120839 1.57 · 106

Tabelle 6.3: Freiheitsgrade, Fehler, Effektivitatsindex und Anisotropie bei

Beispiel 6.3

Beispiel 6.3 Im dritten Beispiel wird der Fehler in der Normalableitung

uber den ganzen Rand gemessen. Bei den Uberlegungen zur Regularisierung

hat sich herausgestellt, daß Verfeinerung nur am Rand des Gebiets erfolgen

muß. Um dieses numerisch zu uberprufen, wird im Algorithmus zum Er-

zeugen des Gitters (6.2.3) stets versucht, ein Gitter mit etwa 300 Zellen zu

erzeugen. In Tabelle 6.3 werden der Fehler und die Anisotropie angegeben.

Die Zahl der Freiheitsgrade bleibt nahezu konstant. Trotzdem liegt eine hohe

Konvergenzrate (jetzt in Bezug auf die Anisotropie) vor. Diese Ergebnisse

bestatigen die Theorie: bei stark steigender Anisotropie jedoch konstanter

Zahl von Zellen, konvergiert der Fehler gegen Null. Abbildung 6.4 zeigt den

Fehler in Abhangigkeit der mittleren Anisotropie. Es zeigt sich hier die zu er-

wartende Konvergenzordnung 1/hmin, wenn hmin die jeweils kleinere Seite der

Zellen am Rand ist (es gilt etwa A ≈ h−1min). Dieses Beispiel zeigt auch die Sta-

bilitat des Fehlerschatzers gegenuber (extremer) Anisotropie. Der kritische

Punkt ist die Verwendung der biquadratischen Interpolierten. Bei diesem Bei-

spiel ist aber sichergestellt, daß der Sprung in der dualen Losung immer am

Rand eines Patchs liegt. Tabelle 6.3 zeigt, daß der Effektivitatsindex sofort

gegen 1 konvergiert.

81

Page 82: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

1e-07

1e-06

1e-05

0.0001

0.001

0.01

0.1

1

1 10 100 1000 10000 100000

j(e)

Anisotropie

Abbildung 6.4: Fehler in Abhangigkeit der mittleren Anisotropie in Beispiel

6.3. Bei gleichbleibende Zellenzahl konvergiert der Fehler wie 1/A.

6.4 Gitteroptimierung mit lokalen Interpola-

tionsfehlern

Orientiert man sich beim Erkennen der Anisotropie wie bisher streng an

der Fehleridentitat (Abschnitt 6.2.3), so kann die Anisotropie der primalen

Losung nicht exakt erfaßt werden. Angenommen die rechte Seite ist konstant

Null. Dann ist in (6.11) die Interpolationskonstante c1 = 0 zu wahlen und

hx(x), hy(y) sind gegeben durch:

hx(x)3 =

Ny

2Φx

, hy(y)3 =

Nx

2Φy

Φx =

∫ d

c

∣∣∣∂xxz∣∣∣∣∣∣∂yyu

∣∣∣ , Φy =

∫ b

a

∣∣∣∂yyz∣∣∣∣∣∣∂xxu

∣∣∣ .

Große zweiten Ableitungen ∂xxu erzeugen also kleines hy.

In Abschnitt 6.1.3 wurde bei (6.7) eine Moglichkeit vorgestellt, die Ani-

sotropie aus dem Produkt der lokalen Interpolationsfehler, ausgehend von

η =∑

K∈Th

‖∇(u− Ihu)‖K ‖∇(z − Ihz)‖K

82

Page 83: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

zu bestimmen. Die Abschatzung ‖∇(u− uh)‖ ≤ ‖∇(u− Ihu)‖ gilt jedoch

nur auf dem ganzen Gebiet Ω, nicht aber zellweise. Im folgenden wird ver-

sucht werden, den Vorteil dieser Darstellung, also das einfache Erkennen der

Anisotropie mit dem Vorgehen des letzten Abschnitts zu verbinden. Als lo-

kale Fehlerindikatoren werden jetzt

η′K = ‖∇(u− Ihu)‖K ‖∇(z − Ihz)‖K

≤ cihxhy

(hx

∣∣∣∂x∇u∣∣∣+ hy

∣∣∣∂y∇u∣∣∣) (

hx

∣∣∣∂x∇z∣∣∣ + hy

∣∣∣∂y∇z∣∣∣) (6.13)

verwendet. Wie in Abschnitt 6.2.3 wird der Fehlerschatzer als Integral uber

das gesamte Gebiet geschrieben. Gesucht wird ein optimales hx(x) und hy(y).

Als Ergebnis erhalt man entsprechend zu (6.12):

hx(x)3 =

Ny

2Φx(x),

hy(y)3 =

Nx

2Φy(y),

Φx(x) =

∫ d

c

∣∣∣∂x∇u∣∣∣∣∣∣∂x∇z

∣∣∣ dy ,

Φy(y) =

∫ b

a

∣∣∣∂y∇u∣∣∣∣∣∣∂y∇z

∣∣∣ dx .

(6.14)

Bei allen gelosten Differentialgleichungen dieses Kapitels verhalt sich diese

Methode der Gittersteuerung wie die bisher verwendete. Unterschiede werden

deutlich, wenn starke Anisotropie in der primalen Losung vorliegt:

Beispiel 6.4 Gelost wird die Modellgleichung (2.1). Die rechte Seite wird

zu einer vorgegebenen Losung bestimmt:

u(x, y) = (1 − x2)(1 − y2)1

kx2 + 0.1.

Der Parameter k steuert die Starke der Anisotropie. In Abbildung 6.5 sind

Losungen zu zwei Werten von k dargestellt. Das Problem wird fur k =

1, 4, 16, 64 mit zwei Strategien gelost:

Strategie I Die Gittersteuerung basiert auf der Fehleridentitat (6.12), wie

im letzten Abschnitt.

83

Page 84: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Strategie II Gittersteuerung erfolgt mit lokalen Interpolationsfehlern. (6.14)

Als Fehlerfunktional wird der Mittelwert uber das gesamte Gebiet gewahlt:

j(ϕ) =1

|Ω|

Ω

ϕ dx .

Anisotropie entsteht bei diesem Problem nur durch die primale Losung, das

duale Problem entspricht −∆z = 1, z = 0 auf dem Rand, ist also isotrop.

k jI(e) jII(e) jI(e)/jII(e) AI AII

1 1.20 · 10−5 1.32 · 10−5 0.91 1.35 1.71

4 6.44 · 10−5 1.36 · 10−5 4.72 1.82 2.72

16 1.76 · 10−4 1.56 · 10−5 11.30 2.75 4.67

64 4.40 · 10−4 1.47 · 10−5 29.83 4.44 8.35

Tabelle 6.4: Vergleich der Strategien bei Beispiel 6.4.

Mit starker werdender Anisotropie in der primalen Losung wird Strategie

II uberlegen. Abbildung 6.6 zeigt, daß sich der Fehler bei beiden Strategien

asymptotisch gleich verhalt, Strategie II aber eine bessere Fehlerkonstante

erzeugt. In Tabelle 6.4 sind die Fehler jI , jII und die mittlere Anisotropie

AI , AII im Gitter jeweils fur beide Strategien aufgetragen. Zusatzlich ist der

Quotient jI/jII angegeben. Alle Gitter haben etwa 40000 Freiheitsgrade.

Dieser heuristische Zugang verwendet lediglich lokale Interpolationsab-

schatzungen als Fehlerindikatoren. Im Abschnitt 2.3 hat sich bei den Berech-

nungen zu Beispiel 2.3 herausgestellt, daß mit den sehr einfachen Fehlerin-

dikatoren ηK = h3/2K ‖[∂nuh]‖∂K

|∇2hz(xK)| die besten Gitter erzeugt werden

konnten. Selbst ein exakter Fehlerschatzer muß nicht zwangslaufig gute Feh-

lerindikatoren liefern.

84

Page 85: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Loesung fuer k=4

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

0

2

4

6

8

10

12

z

Loesung fuer k=64

-1-0.5

00.5

1x -1

-0.5

0

0.5

1

y

0

2

4

6

8

10

12

z

Abbildung 6.5: Losungen zu Beispiel 6.4 fur k = 4 und k = 64.

1e-05

0.0001

0.001

1000 10000 100000

j(e)

Freiheitsgrade

Strategie IStrategie II

1e-05

0.0001

0.001

0.01

1000 10000 100000

j(e)

Freiheitsgrade

Strategie IStrategie II

1e-05

0.0001

0.001

0.01

1000 10000 100000

j(e)

Freiheitsgrade

Strategie IStrategie II

1e-05

0.0001

0.001

0.01

0.1

1

1000 10000 100000

j(e)

Freiheitsgrade

Strategie IStrategie II

Abbildung 6.6: Freiheitsgrade und Fehler bei Rechnungen zu verschieden

starker Anisotropie (k = 1, 4, 16, 64).

85

Page 86: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Die Fehleridentitat konnte nicht verwendet werden, um das optimale Ani-

sotropieverhaltnis zu bestimmen. Ausgehend von

j(e) =∑

K∈Th

(f, z − Ihz)K − 12〈[∂nuh] , z − Ihz〉∂K

konnte nur die Anisotropie in der dualen Losung identifiziert werden. Im

Fehlerschatzer kann auch eine Galerkinorthogonalitat bezuglich z ausgenutzt

werden. Wenn j die rechte Seite zum dualen Problem −∆z = j ist, gilt

j(e) =∑

K∈Th

(j, u− Ihu)K − 12〈[∂nzh] , u− Ihu〉∂K .

Dabei ist j als diejenige Funktion aufzufassen, so daß fur alle ϕ ∈ H1(Ω)

gilt: j(ϕ) = (j, ϕ). Die Existenz dieser Funktion ist durch den Riesz’schen

Darstellungssatz [4] gesichert. Auf diese Weise kann fur u das optimale Aniso-

tropieverhaltnis bestimmt werden. Versucht man aber, etwa den Mittelwert

beider Fehlerdarstellungen zu minimieren, so bleiben die Sprunge uber die

Normalableitung erhalten. Zur Bestimmung der Anisotropie bleibt nur der

heuristische Zugang uber die Minimierung lokaler Interpolationsfehler.

86

Page 87: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

6.5 Zusammenfassung

In diesem Kapitel wurde nur ein kleiner Teil der Moglichkeiten, die anisotro-

pe Gitter bieten, betrachtet. Auch so zeigt sich aber, daß in vielen Fallen die

Berucksichtigung der Anisotropie in der Finite-Elemente Methode unerlaßlich

scheint. Wird die Anisotropie ausgenutzt, so kann zunachst – bis das Gitter

die Anisotropie richtig darstellt – eine hohere Konvergenzordnung erzielt wer-

den. In Fallen mit extremer, unbeschrankter Anisotropie (z.B. Beispiel 6.3)

kann wahrend der gesamten Losung des Problems eine bessere Konvergenz

erreicht werden. Zu untersuchen bleibt das Erkennen der Lage und der Aus-

richtung der Anisotropie. Wie angesprochen, waren zu einer allgemeineren

Umsetzung von anisotropen Gittern Dreieckselemente notwendig. Anisotro-

pes Verhalten, das diagonal im Gitter oder sogar entlang allgemeiner Kurven

auftritt, laßt sich mit Rechtecksgittern nur unzureichend darstellen. Damit

ist die hier behandelte Problemklasse sehr begrenzt. Die Ergebnisse lassen

sich aber leicht auf den allgemeinen Fall ubertragen.

87

Page 88: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Kapitel 7

Ausblick

Zielstellung dieser Arbeit war eine optimale Gittersteuerung fur die Finite-

Elemente Approximation partieller Differentialgleichungen. Eine Losung auf

einem”optimalen Gitter“ sollte bei moglichst wenigen Zellen einen geringen

Fehler erreichen.

In Kapitel 4 wurde gezeigt, daß die Fehlerindikatoren mit sehr hoher

Genauigkeit vorliegen mussen, um mit ihnen ein”optimales Gitter“ zu er-

zeugen. Dann aber kann sehr schnell ein feines, optimal auf das Problem

abgestimmtes Gitter erzeugt werden. Der in diesem Kapitel vorgestellte Al-

gorithmus kann das Gitter sofort um mehrere Stufen verfeinern, und er be-

rechnet die Fehlerindikatoren adaptiv mit der notwendigen Genauigkeit. Es

ist unter Umstanden erforderlich, das duale Problem genauer zu rechnen als

das primale. Trotz des hoheren Aufwands fur die Berechnung des dualen

Problems und des Fehlerschatzers laßt sich eine Zeitersparnis von bis zu 50%

erzielen.

Die entwickelte Methode kann nicht ohne weiteres auf nichtlineare Pro-

bleme erweitert werden. Gerade bei dieser Problemklasse ist – aufgrund des

weit hoheren Aufwands – eine Optimierung der Gitteradaption notwendig.

Da nichtlineare Probleme in dieser Arbeit nicht behandelt wurden, wurde

auch diese Frage nicht weiter untersucht.

Die Verwendung von anisotropen Gittern in Kapitel 6 zeigt, daß die

Berucksichtigung von Anisotropie in adaptiven Verfahren keinen hohen Auf-

88

Page 89: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

wand, aber eine starke Effizienzsteigerung darstellt. Mit starker werdender

Anisotropie, die durch das Fehlerfunktional erzeugt wird, wachst die Erspar-

nis im Aufwand, wenn die Anisotropie richtig in das Gitter einfließt. Die vor-

gestellte Methode der anisotropen Gitteradaption erzeugt in sehr wenigen

Schritten extrem feine Gitter, die schon bei schwacher Anisotrope effizienter

sind als Gitter mit lokaler Verfeinerung.

Die Untersuchungen der Anisotropie haben sich in dieser Arbeit auf Ten-

sorgitter beschrankt. Die theoretischen Ergebnisse lassen sich sofort auf be-

liebige Gitter ubertragen und mussen noch numerisch uberpruft werden. Das

adaptive Erkennen der”Richtung der Anisotropie“ wurde in dieser Arbeit

kaum betrachtet. Es ware nicht moglich gewesen, samtliche Informationen

uber Anisotropie in den verwendeten Tensorgittern darzustellen. Die Erwei-

terung der Gitteradaption um diesen Aspekt scheint jedoch sinnvoll, da so die

Problemklasse, bei der Anisotropie effizienzsteigernd genutzt werden kann,

weiter vergroßert werden wurde. Hier ware die Verwendung von Dreiecksgit-

tern zwingend notwendig.

Die vorgestellte Fehleridentitat, die im isotropen Fall zu einer Formel

fuhrt, die eine optimale Gitterweitenfunktion angibt, konnte in dieser Ar-

beit nicht vollstandig auf den anisotropen Fall erweitert werden. Zur Feh-

lerschatzung ist der duale Fehlerschatzer auch bei anisotropen Gittern sehr

gut geeignet, die Starke und Richtung der Anisotropie konnte aber nicht

exakt identifiziert werden. Alternativ wurde ein heuristisches Verfahren vor-

gestellt, welches die lokalen Interpolationsfehler der primalen und dualen

Losung minimiert und zu sehr effizienten Gittern fuhrt.

89

Page 90: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

Literaturverzeichnis

[1] M. Braack. An Adaptive Finite Element Method for Reactive Flow

Problems, Dissertation, Heidelberg 1998.

[2] R. Becker, R. Rannacher. A feed-back approach to error control in finite

element methods: Basic analysis and examples, East-West J. Numer.

Math. 4, No.4, 237-264, 1996.

[3] Ch. Grossman, H.-G. Roos. Numerik partieller Differentialgleichungen,

B.G.Teubner Stuttgart 1994.

[4] H.W. Alt. Lineare Funktionalanalysis, Springer-Verlag 1992.

[5] D. Braess. Finite Elemente. Theorie, schnelle Loser und Anwendungen

in der Elastizitatstheorie. 2. Auflage, Springer-Verlag 1997.

[6] R. Rannacher. Adaptive Galerkin Finite Element Methods for Partial

Differential Equations, Preprint SFB 359, 20/1999, Heidelberg, 1999.

[7] R. Becker. Adaptive Finite Element Method for the Incompressi-

ble Navier-Stokes Equations on Time-dependent Domains, Dissertation,

Heidelberg, 1995.

[8] S. A. Mitchel, S. A. Vavasis. Quality Mesh Generation in Higher Di-

mensions, SIAM Journal of Computing, Vol. 29, No. 4, pages 1334-1370,

2000.

[9] F. Hecht. Dokumentation zum Gittergenerator BAMG, http://www-

rocq.inria.fr/gamma/cdrom/www/bamg/eng.htm

90

Page 91: Funktionalorientierte Gitteroptimierung bei der Finite ...richter/pdf-files/diplom.pdf · der Finite-Elemente L¨osung werden Ansatzr ¨aume verwendet, deren Funktio-nen auf den Zellen

[10] T. Apel. Interpolation of non-smooth functions on anisotropic finite

element meshes, Math. Modeling Numer. Anal. 33(1999), 1149-1185

[11] R. Bridson, W. Tang. Ordering, anisotropy, and factored sparse appro-

ximate inverses, SIAM J. Sci. Comput., Vol. 21, No. 3, pages 867-882,

1999.

[12] L. R. Scott, S. Zhang. Finite element interpolation of non-smooth func-

tions satisfying boundary conditions, Math. Comp., 54:483-493, 1990.

[13] W. Bangerth, u.a. Adaptive Finite-Elemente Software-Bibliothek,

http://gaia.iwr.uni-heidelberg.de/˜ deal

[14] W. Bangerth, G. Kanschat. Concepts for Object-Oriented Finite Ele-

ment Software - the deal.II Library, Preprint SFB 359, 17/99, Heidel-

berg, 1999.

91