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.

7.6.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.

7.6.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 finiten 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 (IDV 780).

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.

7.6.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.

7.6.4Aufstellen der Steifigkeitsmatrix

Das Aufsteller der Steifigkeitsmatrix ist ein sehr aufwendiger Vorgang, der üblicherweise durch spezielle Software erledigt wird. Insbesondere müssen die in der schwachen Formulierung der PDE auftretenden Integrale (Bereichsintegrale, Oberflächenintegrale, Kurvenintegrale) über den Teilgebieten TlT_l und deren Randkanten numerisch berechnet werden.

Das konkrete Vorgehen hängt stark von der betrachteten Gleichung und den Anfangs- bzw. Randbedingungen ab. Verzichten an dieser Stelle auf die Details und verweisen auf entsprechende Veranstaltungen im weiteren Studienverlauf.

Im Python-Ökosystem ist FEniCS ein mächtiges und weit verbreitetes Paket für die Umsetzung von FEM. CAM-Software bietet meist auch eine Möglichkeit für die Umsetzung einfacher FEM, z.B. FreeCAD mit dem FEM Workbench.

7.6.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 und ggf. Randkanten.