Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Finite-Elemente-Verfahren (kurz: FEM für finite elemente methods) basieren auf der schwachen Formulierung von PDE. Hauptmerkmal ist, dass für die Diskretisierung Basisfunktionen vk:BRv_k:B\to\bbR mit sehr kleinem Träger

suppvk:={xB:  vk(x)0}\supp v_k:=\{x\in B:\;v_k(x)\neq 0\}

verwendet werden. Dadurch entsteht ein lineares Gleichungssystem mit dünn besetzter Systemmatrix, welches effizient gelöst werden kann. Für die Diskretisierung werden keine regelmäßigen Gitter von Stützstellen benötigt, sodass auch PDE auf komplexen Gebieten BB mittels FEM gelöst werden können.

11.1Ausgangspunkt

Gegeben sei die schwache Formulierung einer PDE in der Form

a(u,v)=b(v)fu¨r alle vV,a(u,v)=b(v)\quad\text{für alle }v\in V,

wobei aa, bb, VV gegeben sind und uu gesucht ist (vgl. Abstrakte Form schwacher Formulierungen).

Weiter sei VnVV_n\subseteq V ein endlichdimensionaler Teilraum von VV und {v1,,vn}\{v_1,\ldots,v_n\} sei eine Basis in VnV_n, d.h. jede Funktion in VnV_n kann als Linearkombination der Funktionen v1,,vnv_1,\ldots,v_n dargestellt werden. Durch Einschränkung der schwachen Formulierung auf VnV_n erhalten wir das diskretisierte Problem

Au=bA\,\underline{u}=\underline{b}

mit der rechten Seite

b:=[b(v1)b(vn)]\underline{b}:={\begin{bmatrix}b(v_1)\\\vdots\\b(v_n)\end{bmatrix}}

und der Systemmatrix (hier auch Steifigkeitsmatrix genannt)

A:=[a(v1,v1)a(vn,v1)a(v1,vn)a(vn,vn)]A:={\begin{bmatrix} a(v_1,v_1)&\cdots&a(v_n,v_1)\\ \vdots&&\vdots\\ a(v_1,v_n)&\cdots&a(v_n,v_n)\\ \end{bmatrix}}

(vgl. Diskretisierung der abstrakten Formulierung). Aus dem Vektor uRn\underline{u}\in\bbR^n erhalten wir mittels

u:=u1v1++unvnu:=\underline{u}_1\,v_1+\cdots+\underline{u}_n\,v_n

die gesuchte Lösung der (schwachen Formulierung der) PDE.

Einziger noch zu klärender Punkt ist die konkrete Wahl der Basisfunktionen vkv_k.

11.2Wahl der Basis

Die Wahl der Basis {v1,,vn}\{v_1,\ldots,v_n\} erfolgt in zwei Schritten:

  1. Zerlegung des Gebiets BB in disjunkte gleichartige Teilmengen T1,,TNBT_1,\ldots,T_N\subseteq B (die sogenannten finite Elemente). Dabei ist mit “gleichartig” gemeint, dass zum Beispiel alle Teilmengen Dreiecke sind oder alle sind Vierecke oder alle sind Tetraeder (für BR3B\subseteq\bbR^3) usw.

  2. Wahl der vkv_k so, dass die Träger suppvk\supp v_k jeweils der Vereinigung von nur wenigen Teilgebieten TlT_l entsprechen.

Die Zerlegung in Teilgebiete erfolgt stets so, dass sich nur Ecken mit Ecken berühren, nie Ecken mit Kanten oder Flächen. Die Ecken werden auch Knoten genannt und im Folgenden mit P1,,PmP_1,\ldots,P_m bezeichnet.

Sind die TlT_l Dreiecke, so werden die vkv_k gern als stückweise lineare Funktionen gewählt: Zu jedem Knoten PkP_k wird genau eine Basisfunktion gewählt. Diese ist 1 an dem Knoten und Null an allen anderen Knoten (IDVID 1120).

Analog kann bei Tetraedern in R3\bbR^3 vorgegangen werden. Neben stückweise linearen sind auch stückweise quadratische usw. Basisfunktionen üblich. Da Funktionen höherer Ordnung mehr Freiheitsgrade besitzen, werden je nach Bedarf zusätzliche Knoten auf den Berührungskanten oder -flächen der Teilgebiete TlT_l eingefügt.

11.3Gebietszerlegung

Die konkrete Wahl der Zerlegung in Teilgebiete unterliegt diversen Einflussfaktoren:

Die Vernetzung (d.h. die Wahl der Zerlegung) kann manuell oder durch Algorithmen erfolgen. Ein verbreiteter Algorithmus ist die Delaunay-Triangulation.

Gebietszerlegungen können besser oder schlechter für FEM geeignet sein als andere. Insbesondere sollte die Form der Teilmengen hinreichend einheitlich sein. Diese Forderung kann wie folgt präzisiert werden:

Neben Algorithmen zur Erzeugung von Vernetzungen existieren auch Algorithmen zur Verbesserung von Netzen im Sinne der Isotropie (Netzglättung).

Auch können gegebene Netze weiter verfeinert werden durch weiteres Unterteilen der vorhandenen Teilgebiete (Netzverfeinerung). Insbesondere die adaptive Netzverfeinerung ist praktisch von Bedeutung: In Regionen, in denen eine vorherige Netzverfeinerung zu einer deutlichen Änderung der Lösung geführt hat, wird weiter verfeinert. In Regionen ohne nennenswerte Änderung ist keine weitere Verfeinerung nötig. Durch dieses Vorgehen können Rechenzeit und Speicherplatz gespart werden bei gleichzeitig kleinem Diskretisierungsfehler.

11.4Aufstellen der Steifigkeitsmatrix

Ausgehend von einer gegebenen Zerlegung des Gebiets BB in Teilgebiete T1,,TNT_1,\ldots,T_N soll die Steifigkeitsmatrix AA berechnet werden. Wir demonstrieren das Vorgehen anhand einer Dreiecksvernetzung im R2\bbR^2 und stückweise linearen Basisfunktionen. Für andere Vernetzungen und Basisfunktionen ist das Vorgehen völlig analog.

11.4.1Globale und lokale Knotennummerierung

Die Eckpunkte der Dreiecke seien P1,,PmP_1,\ldots,P_m (Knoten). Punkte, an denen zwei oder mehr Dreiecke sich berühren, werden nur einfach gezählt. Die Nummerierung der Knoten mit 1,,m1,\ldots,m wird als globale Nummerierung bezeichnet.

Zu jedem Dreieck TlT_l werden die drei Eckpunkte zusätzlich noch mit P1l,P2l,P3lP^l_1,P^l_2,P^l_3 bezeichnet. Dies ist die lokale Knotennummerierung.

Im Speicher werden einerseits die Koordinaten der Knoten P1,,PmP_1,\ldots,P_m zusammen mit der jeweiligen globalen Knotenummer abgelegt; andererseits die Elementzusammenhangstabelle, welche für jedes Teilgebiet TlT_l (Zeilen) folgende Werte (Spalten) enthält:

Durch Knotenkoordinaten und Elementzusammenhangstabelle ist die Vernetzung vollständig beschrieben (IDVID 1130).

11.4.2Referenzelemente

Für die Berechnung von a(vk,vl)a(v_k,v_l) müssen Integrale über den Teilgebieten TlT_l berechnet werden. Um dies effizient durchführen zu können, werden die auftretenden Integrale so transformiert, dass der Integrationsbereich immer gleich ausssieht (Referenzdreieck oder allgemeiner: Referenzelement).

Als Referenzdreieck wird üblicherweise das Dreieck mit den Eckpunkten (0,0)(0,0), (1,0)(1,0), (0,1)(0,1) verwendet. Liegt dieses in einem ξ1\xi_1-ξ2\xi_2-Koordinatensystem, ist die Transformation auf das Teilgebiet TlT_l gegeben durch

[x1x2]=P1l+ξ1(P2lP1l)+ξ2(P3lP1l).{\begin{bmatrix}x_1\\x_2\end{bmatrix}}=P^l_1+\xi_1\,(P^l_2-P^l_1)+\xi_2\,(P^l_3-P^l_1).

11.4.3Formfunktionen über dem Referenzelement

Jede Basisfunktion vkv_k soll an genau einem Knoten den Wert 1 annehmen, an allen anderen den Wert 0. Auf einem einzelnen Teilgebiet TlT_l betrachtet sollen die Basisfunktionen linear verlaufen. Für dreieckige Teilgebiete gibt es somit nur vier mögliche Funktionsverläufe:

Auf dem Referenzdreieck setzen wir:

11.4.4Basisfunktionen

Für jeden Knoten PkP_k sei IkI_k die Indexmenge, die gerade die am Knoten anliegenden Teilgebiete beschreibt. Die Basisfunktion vkv_k ist dann gegeben durch

vk(x)={φi(k,l)(x),fu¨xTl,  lIk,0,sonst,v_k(x)=\begin{cases} \varphi_{i(k,l)}(x),&\text{für }x\in T_l,\;l\in I_k,\\ 0,&\text{sonst}, \end{cases}

wobei i(k,l){1,2,3}i(k,l)\in\{1,2,3\} gerade so gewählt wird, dass Pi(k,l)l=PkP^l_{i(k,l)}=P_k gilt.

Sind die Funktionen in VV auf einem Teil des Randes Null (z.B. als Folge von Dirichlet-Randbedingungen in der PDE), so werden für die entsprechenden Randknoten keine Basisfunktionen benötigt!

11.4.5Bereichsintegrale

Zu einem Knoten PkP_k einer Dreieckszerlegung enthalte JkJ_k alle Indizes von benachbarten Knoten. Ist die Bilinearform aa durch ein Integral über das Gebiet BB gegeben, so gilt a(vk,vl)=0a(v_k,v_l)=0, falls lJkl\notin J_k. Jede Zeile und jede Spalte der Steifigkeitsmatrix hat also höchstens so viele Nicht-Null-Einträge wie die beiden relevanten Knoten Nachbarn haben (Zeile ll hat Jk|J_k| Einträge, Spalte kk hat Jl|J_l| Einträge. Insbesondere ist die Steifigkeitsmatrix dünn besetzt, was FEM für dreidimensionale Gebiete oder sehr feine Netze überhaupt erst möglich macht.

Die Berechnung der Bereichsintegrale über BB erfolgt praktisch immer numerisch, auch wenn manuelles Rechnen möglich wäre. Dazu werden die Integrale über den Teilgebieten TlT_l zunächst auf das Referenzdreieck transformiert. Anschließend erfolgt die numerische Integration mittels Standardverfahren.

Sei

Φl(ξ1,ξ2):=P1l+ξ1(P2lP1l)+ξ2(P3lP1l)\Phi_l(\xi_1,\xi_2):=P^l_1+\xi_1\,(P^l_2-P^l_1)+\xi_2\,(P^l_3-P^l_1)

die Abbildung von TlT_l auf das Referenzdreieck. Dann gilt

Tlhdb=0101ξ1h(Φl(ξ1,ξ2))detJΦl(ξ1,ξ2)dξ2dξ1\int_{T_l}h\diff b=\int_0^1\int_0^{1-\xi_1} h\bigl(\Phi_l(\xi_1,\xi_2)\bigr)\,|\det J_{\Phi_l}(\xi_1,\xi_2)|\diff\xi_2\diff\xi_1

mit der zu integrierenden Funktion hh, wobei

detJΦk(ξ1,ξ2)=[P2lP1l]1[P3lP1l]2[P2lP1l]2[P3lP1l]1\det J_{\Phi_k}(\xi_1,\xi_2)=[P^l_2-P^l_1]_1\,[P^l_3-P^l_1]_2-[P^l_2-P^l_1]_2\,[P^l_3-P^l_1]_1

(IDVID 1140).

11.4.6Randbedingungen

Eventuell vorhandene Dirichlet-Randbedingungen sind bereits in den Funktionenraum VV bzw. dessen endlichdimensionale Entsprechung VnV_n integriert und wurden bei der Wahl der Basisfunktionen v1,,vnv_1,\ldots,v_n berücksichtigt (keine Basisfunktionen an Randknoten im Bereich von Dirichlet-Randbedingungen).

Randteile, auf denen Neumann-Randbedingungen gegeben sind, führen üblicherweise zu Kurvenintegralen (2D-Gebiet) oder Oberflächenintegralen (3D-Gebiet) in der schwachen Formulierung der PDE. Diese können völlig analog zu den Bereichsintegralen numerisch berechnet werden. Führen dies hier nur für 2D-Gebiete näher aus.

Sei Γ2B\Gamma_2\subseteq\partial B der Teil des Randes, auf dem ein Kurvenintegral

Γ2hds\int_{\Gamma_2}h\diff s

mit einer Funktion h:BRh:B\to\bbR zu berechnen ist. Das Integral kann in eine Summe von Integralen über die einzelnen Randkanten der Gebietszerlegung geschrieben werden. Ist KK eine solche Randkante mit den Endknoten PlP_l und PkP_k, so überführt man das Integral

Khds\int_K h\diff s

in das Integral

01h(Pl+t(PkPl))[PkPl]12+[PkPl]22dt\int_0^1 h\bigl(P_l+t\,(P_k-P_l)\bigr)\,\sqrt{[P_k-P_l]_1^2+[P_k-P_l]_2^2}\diff t

auf der Referenzkante [0,1][0,1] (IDVID 1150).

Ist der Integrand hh als Linearkombination der Basisfunktionen v1,,vnv_1,\ldots,v_n gegeben, so haben nur die beiden zu den Endknoten gehörenden Basisfunktionen vlv_l und vkv_k Einfluss auf das Integral.

11.5Aufstellen der rechten Seite

Das Aufstellen der rechten Seite b\underline{b} im zu lösenden Gleichungssystem erfolgt analog zur Systemmatrix durch numerische Berechnung der in der Linearform bb enthaltenen Integrale über jedem Teilgebiet TlT_l.