Wie kann man inhomogene Dirichlet-Randbedingungen mit FEM richtig anwenden?

9

Im Allgemeinen werden Dirichlet-Randbedingungen für FEM für inhomogene Randbedingungen nicht genau erfüllt. Die FEM-Codes, die ich gesehen habe, legen die Freiheitsgrade für die Interpolation der Dirichlet-Randbedingung fest, aber ich habe keine mathematische Rechtfertigung dafür gefunden. Es scheint mir, dass das Festlegen wesentlicher Randbedingungen wahrscheinlich einige Funktionen des Fehlers minimieren sollte (z. B. über den Teil der Grenze minimieren , auf den das Dirichlet BC angewendet wird), obwohl dies rechenintensiver wäre.||u- -uh||

Gibt es eine Rechtfertigung dafür, das BC so einzustellen, und wenn ja, welche Norm wäre das?

andybauer
quelle

Antworten:

7

Es gibt eine mathematische Rechtfertigung dafür, Dirichlet-Grenzfreiheitsgrade auf einen Wert zu setzen. Sie sollten jedoch Ihre Variationsform entsprechend anpassen. Wenn Sie ein allgemeines Problem betrachten, sagen Sie:

Finde so, dassuU.

ein(u,w)=l(w)  wV.

wo

U.={u::u2<,u=G auf ΓD.}}

V.={u::u2<,u=0 auf ΓD.}}

Stattdessen können wir schreiben, wobei v V und g die Dirichlet-Bedingung ist. Dann wird die Variationsformu=v+GvV.G

ein(v+G,w)=l(w)

oder unter Verwendung der Linearität von ein(.,.)

ein(v,w)=l(w)- -ein(G,w)

In einem Finite-Elemente-Code können Sie Ihre Elementsteifigkeitsmatrix so bilden, als gäbe es keine Randbedingungen. Dann nehmen Sie die Spalte der lokalen Matrix, die der Dirichlet-Randbedingung entspricht, skalieren sie mit dem Koeffizienten, den Sie erzwingen möchten, und subtrahieren sie von der rechten Seite. Dies ist die diskrete Form dessen, was ich oben geschrieben habe . Dann setzen Sie diese Spalte und die entsprechende Dirichlet-Zeile auf Null und setzen eine 1 in die Diagonale und den Koeffizienten, den Sie erzwingen möchten. Dadurch wird die Gleichung vom System entkoppelt und der Wert festgelegt, den Sie erzwingen möchten.- -ein(G,w)

Ich empfehle die Finite-Elemente-Methode: Lineare statische und dynamische Finite-Elemente-Analyse von Tom Hughes. Er hat eine erweiterte Diskussion zu diesem Thema ab Seite 8.

Nathan Collier
quelle
GG(x)=x2u=v+GhGhU.
G(x)=x2G(x)L.2
Danke - ich denke, was ich in meiner schlecht formulierten Frage erreichen wollte, war, ob wir (1) oder (2) tun sollten. (1) scheint so zu sein, wie ich es in den von mir betrachteten FEM-Codes gesehen habe, aber (2) scheint zu einer besseren Annäherung zu führen.
Andybauer
0

Um Nathans großartige Antwort mit dem Variationsgedanken zusammenzufassen, benötigt man häufig algorithmische Details, wenn man finite Elemente implementiert. Zum Beispiel,

Algorithmus 1

Eine ausführlichere Erklärung zu diesem Thema habe ich auch in meinen persönlichen Notizen . Weitere Informationen finden Sie im Kapitel "Eingeschränkte lineare Systeme".

Osolmaz
quelle