Commit 3f6b3cfb authored by Sander, Oliver's avatar Sander, Oliver
Browse files

Wiederholung Finite Elemente

parent cd417a8e
This diff is collapsed.
File added
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="559.98035"
height="482.72745"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="simple_domain.pdf">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="258.5616"
inkscape:cy="289.84974"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1243"
inkscape:window-height="843"
inkscape:window-x="234"
inkscape:window-y="120"
inkscape:window-maximized="0"
fit-margin-top="50"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="50" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-91.438395,-420.29666)">
<path
id="path3016"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
d="m 200.13077,509.01166 c -100.925801,38.8275 -105.665551,69.54 -107.143089,117.1425 -2.56201,82.555 95.277339,185.94525 172.857459,214.286 80.36875,29.35987 231.29,-3.34763 280,-54.28563 46.625,-48.75787 145.205,-172.61787 77.1425,-250.00037 -79.56875,-90.46375 -323.965,-65.1875 -422.85687,-27.1425 z"
inkscape:connector-curvature="0" />
<path
id="path3024"
style="fill:none;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
d="m 181.55952,514.72541 c 82.85687,-22.8575 131.42812,-41.42875 222.85687,-41.42875 70.98625,0 170.815,7.20625 231.42875,75.715 44.7375,50.565 -44.28625,182.85625 -44.28625,182.85625"
inkscape:connector-curvature="0" />
<path
id="path3026"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
d="m 185.16539,527.79791 -7.21237,-26.14375"
inkscape:connector-curvature="0" />
<path
id="path3028"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
d="m 580.30889,724.29791 22.5,15.14125"
inkscape:connector-curvature="0" />
</g>
</svg>
......@@ -14,6 +14,7 @@
\usepackage{array}
\usepackage{caption}
\usepackage{url}
\usepackage{overpic}
\usepackage{graphicx}
\usepackage{tikz}
......@@ -51,6 +52,7 @@
\renewcommand{\div}{\operatorname{div}}
\newcommand{\tr}{\operatorname{tr}}
\DeclareMathOperator*{\argmin}{arg\,min}
\newcommand{\Gammatight}[1]{{\Gamma\hspace{-0.8mm}_{#1}}} % A \Gamma with a subscript, and extra kerning
% Bold letters
\newcommand{\bn}{\mathbf{n}}
......@@ -121,6 +123,278 @@ To view a copy of this license, visit \url{http://creativecommons.org/licenses/b
\thispagestyle{empty}
\setcounter{page}{0}
\chapter{Finite Elemente Methoden}
In diesem Kapitel geben wir eine kurze Einführung in die Methode der Finiten Elemente.
Damit legen wir die Grundlagen, und motivieren die weiteren Auführungen.
\section{Schwache Formulierung}
\begin{figure}
\begin{center}
\begin{overpic}[width=0.3\textwidth]{gfx/gebiet}
\put(50,82){$\Gamma_D$}
\put(25,2){$\Gamma_N$}
\put(30,40){$\Omega$}
\end{overpic}
\end{center}
\caption{Einfaches Gebiet $\Omega$ mit Dirichletrand $\Gamma_D$ und Neumannrand
$\Gamma_N$.}
\label{fig:gebiet}
\end{figure}
Sei $\Omega \subset \R^d$ ein Gebiet und $f : \Omega \to \R$.
Der Rand $\partial \Omega$ von $\Omega$ sei zerlegt in zwei disjunkte Teile $\Gammatight{D}$ und $\Gammatight{N}$,
und wir bezeichnen die äußere Einheitsnormale mit $\nu$.
Wir betrachten als Beispiel die {\em Poisson-Gleichung}
\begin{equation}
\label{eq:starke_formulierung}
- \Delta u \colonequals - \sum_{i=1}^d \frac{\partial^2 u}{\partial x_i^2} = f
\qquad \text{auf $\Omega$},
\end{equation}
mit den Randbedingungen
\begin{align}
\nonumber
u & = 0 \qquad \text{auf $\Gammatight{D}$}, \\
\label{eq:neumann_randbedingungen}
\frac{\partial u}{\partial \nu} & = g \qquad \text{auf $\Gammatight{N}$}.
\end{align}
Wir bezeichnen mit $H^1(\Omega)$ den Raum aller skalarer $L^2$-Funktionen auf
$\Omega$ mit schwacher Ableitung in $L^2(\Omega)$.
Als Raum von Testfunktionen führen wir
\begin{equation*}
H^1_{\Gammatight{D}} (\Omega)
=
\{ v \in H^1(\Omega) \; | \; v|_{\Gammatight{D}} = 0 \}
\end{equation*}
ein, wobei $v|_{\Gammatight{D}}$ im Sinne des Spursatzes zu verstehen ist.
Zur Abkürzung setzen wir $H \colonequals H^1_{\Gammatight{D}} (\Omega)$.
Multiplikation von \eqref{eq:starke_formulierung} mit einer Testfunktion
$v \in H^1_{\Gammatight{D}} (\Omega)$ und Integration über $\Omega$ ergibt
\begin{equation*}
- \int_\Omega \Delta u \cdot v \, dx = \int_\Omega f v \, dx.
\end{equation*}
Wir wenden darauf die Greensche Formel an, und erhalten
\begin{equation*}
\int_\Omega \nabla u \nabla v \, dx
=
\int_{\partial \Omega} \frac{\partial u}{\partial \nu} v \, ds
+
\int_\Omega f v \, dx.
\end{equation*}
Nach Voraussetzung besteht $\partial \Omega$ aus den zwei Teilen $\Gammatight{D}$ und $\Gammatight{N}$.
Die Testfunktion $v$ wurde so konstruiert, dass $v|_{\Gammatight{D}} = 0$. Mithin bleibt
nur ein Integral über $\Gammatight{N}$ übrig. Dort können wir die Neumannrandbedingungen~\eqref{eq:neumann_randbedingungen}
einsetzen und erhalten
\begin{equation*}
\int_\Omega \nabla u \nabla v \, dx
=
\int_{\Gamma_N} g v \, ds
+
\int_\Omega f v \, dx.
\end{equation*}
Wir schreiben dies als
\begin{equation}
\label{eq:schwache_formulierung}
a(u,v) = l(v)
\end{equation}
mit
\begin{equation*}
a(v,w) = \int_\Omega \nabla v \nabla w \, dx
\quad \text{und} \quad
l(v) = \int_{\Gamma_N} g v \, ds
+
\int_\Omega f v \, dx.
\end{equation*}
Man nennt \eqref{eq:schwache_formulierung} die {\em schwache Formulierung}
(oder {\em Variationsformulierung})
von \eqref{eq:starke_formulierung}.
$a(\cdot, \cdot)$ ist eine symmetrische Bilinearform. Hat $\Gammatight{D}$
positives $d-1$-dimensionales Maß, so ist $a(\cdot,\cdot)$
$H^1_{\Gamma_D}$-elliptisch (siehe z.B.\ \cite{braess:2013}), d.h.\ es existieren $\gamma, \Gamma > 0$
so daß
\begin{equation*}
\gamma \norm{v}^2_H \le a(v,v)
\qquad
\abs{a(v,w)} \le \Gamma \norm{v}_H \norm{w}_H
\qquad
\text{für alle $v,w \in H^1_{\Gamma_D}(\Omega)$}.
\end{equation*}
\begin{theorem}[Lax-Milgram-Lemma \cite{braess:2013}]
Sei $a(\cdot,\cdot)$ $H$-elliptisch (nicht notwendig symmetrisch!).
Dann hat die Variationsgleichung
\begin{equation*}
u \in H
\quad : \quad
a(u,v) = l(v)
\qquad v \in H
\end{equation*}
for jedes $l \in H'$ eine eindeutig bestimmte Lösung.
\end{theorem}
\section{Diskretisierung (Galerkin-Verfahren)}
Sei $V_h$ ein endlichdimensionaler Teilraum von $H^1_{\Gammatight{D}}$ (mit Dimension $n$).
Der Index $h$
bezeichne einen Ordnungsparameter. Die {\em diskrete Variationsformulierung}
lautet
\begin{equation}
\label{eq:diskrete_formulierung}
u_h \in V_h \quad : \quad a(u_h,v_h) = l(v_h)
\qquad \text{für alle $v_h \in V_h$}.
\end{equation}
Anwendung des Lax--Milgram-Lemmas ergibt wieder Existenz und Eindeutigkeit
von Lösungen.
Sei $\{\varphi_i\}, 0 \le i < n$, eine Basis von $V_h$. Dann ist
\eqref{eq:diskrete_formulierung} äquivalent zu
\begin{equation*}
%\label{eq:diskrete_formulierung}
u_h \in V_h \quad : \quad a(u_h, \varphi_i) = l(\varphi_i)
\qquad \text{für alle $0 \le i < n$}.
\end{equation*}
Dies wiederum entspricht dem linearen Gleichungssystem
\begin{equation*}
A\bar{u} = b,
\end{equation*}
wobei
\begin{alignat*}{2}
A &\in \R^{n \times n},
\qquad &A_{ij} & = a(\varphi_i, \varphi_j)
=
\int_\Omega \nabla \varphi_i \nabla \varphi_j \, dx \\
%
b &\in \R^n,
\qquad &
b_i & = l(\varphi_i)
=
\int_{\Gamma_N} g \varphi_i \, ds
+
\int_\Omega f \varphi_i \, dx
\end{alignat*}
und $\bar{u} \in \R^n$ die Koeffizienten von $u_h$ bzgl.\ der Basis $\{\varphi_i\}$ sind.
Die Matrix $A$ nennt man {\em Steifigkeitsmatrix}. Dieser Ausdruck kommt aus den
Anfangstagen der Finiten Elemente in der Ingenieurswelt, wo insbesondere mechanische
Probleme gelöst wurden. Die Matrix $A$ beschreibt dabei die Steifigkeit des simulierten
Objekts, und der Vektor $b$ beschreibt die von außen wirkenden Kräfte. Den Vektor $b$
nennt man deshalb manchmal auch {\em Lastvektor}.
\emph{Beachte:} Ohne weitere Annahmen ist an dieser Stelle davon auszugehen, dass $A$
voll besetzt ist. Das bedeutet, dass fast jeder Eintrag von $A$ von Null verschieden ist,
wobei der Ausdruck \glqq fast jeder\grqq{} hier nicht mathematisch streng gemeint ist.
\section{Finite Elemente}
\label{sec:finite_elemente}
Finite Elemente sind eine bestimmte Möglichkeit, den Teilraum
$V_h$ zu wählen.
Sei $\Omega$ von jetzt ab {\em polygonal berandet}. Wir füllen
$\Omega$ mit einer Triangulierung / einem {\em Gitter}. Ein Beispielgitter für
ein zweidimensionales Gebiet sieht man in Abbildung~\ref{fig:2d-Beispielgitter}.
\begin{figure}
\begin{center}
\includegraphics[width=0.5\textwidth]{dreiecksgitter}
\end{center}
\caption{Ein einfaches zweidimensionales Gitter}
\label{fig:2d-Beispielgitter}
\end{figure}
\begin{definition}
\label{def:triangulierung}
Es sei $\Omega \subset \R^2$ polygonal berandet, und $\Gammatight{D}$ auf dem
Rand aufgelöst. Eine Menge $\mathcal{T}$
von abgeschlossenen Dreiecken $t$ heißt {\em Triangulierung} von $\Omega$, falls gilt
\begin{enumerate}
\item Die Menge der Dreiecke überdeckt den Abschluss des Gebiets
\begin{equation*}
\overline{\Omega} = \bigcup_{t \in \mathcal{T}} t.
\end{equation*}
%
\item Der Schnitt zweier Dreiecke aus $\mathcal T$ ist entweder eine
gemeinsame Kante, ein gemeinsamer Eckpunkt, oder leer.
\end{enumerate}
\end{definition}
Der Diskretisierungsparameter
\begin{equation*}
h = \max_{t \in \mathcal{T}} \operatorname{diam} t,
\end{equation*}
der als Index in $V_h$ auftaucht, beschreibt traditionell die Feinheit des Gitters.
Oft nennt man $h$ auch {\em Gitterweite}.
\begin{definition}
Der Raum
\begin{equation*}
V_h^{(1)}
\colonequals
\{ v \in C(\overline{\Omega})
\; | \;
\text{$v$ ist affin auf $t$ für alle $t \in \mathcal{T}$, und $v|_{\Gamma_D} = 0$} \}
\end{equation*}
heißt Raum der Lagrange-Elemente erster Ordnung
bezüglich der Triangulierung $\mathcal{T}$.
\end{definition}
\begin{figure}
\begin{center}
\includegraphics[width=0.4\textwidth]{generalP1function}
\includegraphics[width=0.4\textwidth]{nodalP1basis}
\end{center}
\caption{Links: eine Finite-Elemente Funktion. Rechts: ein Element der Knotenbasis}
\label{fig:beispiel-fe-funktion}
\end{figure}
Als Basis von $V_h^{(1)}$ wählt man gewöhnlich die {\em Knotenbasis}. Sei $\mathcal V$
die Menge der Knoten des Gitters. Dann ist die Knotenbasis die Menge
der Funktionen $\varphi_i \in V_h^{(1)}$ mit
\begin{equation*}
\varphi_i (v_j) = \delta_{ij}
\qquad
\text{für alle $v_j \in \mathcal{V}$}.
\end{equation*}
Es ist also insbesondere $\dim V_h^{(1)} = \abs{\mathcal V \setminus \mathcal{V}_{\Gamma_D}}$
(Abbildung~\ref{fig:beispiel-fe-funktion}).
{\em Wichtig:} Da die Basisfunktionen $\varphi_i$ einen `lokalen'
Träger haben, so sind die meisten Matrixeinträge
\begin{equation*}
A_{ij} = a(\varphi_i, \varphi_j)
=
\int_\Omega \nabla \varphi_i \nabla \varphi_j \, dx
\end{equation*}
gleich Null! Die Matrix $A$ ist also {\em dünnbesetzt}.
Das ist eine wichtige Eigenschaft, denn müsste man alle Einträge von $A$ in Betracht ziehen,
so wären das \glqq zu viele\grqq{} (nämlich quadratisch viele).
Nur bei einer dünnbesetzten Matrix bleibt der Aufwand handhabbar.
Denn $n$ kann sehr groß werden; aktuell sind Werte im Bereich weniger Millionen auf einem
einzelnen Rechner realistisch. Auf einem großen Parallelrechner können es durchaus einige
Milliarden werden.
\begin{theorem}
Es sei $h$ klein genug, $u \in H^1_0(\Omega) \cap H^{2}(\Omega)$,
$\Omega \in \R^2$. Dann gilt die a priori Abschätzung
\begin{equation*}
\norm{u - u_h}_1 \le C h \abs{u}_{2}
\end{equation*}
mit einer Konstanten $C$.
\end{theorem}
\begin{proof}
\citet{braess:2013}
\end{proof}
\chapter{Mehrgitterverfahren}
\section{Finite-Elemente-Verfahren für elliptische Gleichungen}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment