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, dassu ∈ U.
a ( u , w ) = l ( w ) ∀ w ∈ V.
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 + gv ∈ V.G
a ( v + g, w ) = l ( w )
oder unter Verwendung der Linearität von a ( . , . )
a ( v , w ) = l ( w ) - a ( 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.- a ( 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.
Um Nathans großartige Antwort mit dem Variationsgedanken zusammenzufassen, benötigt man häufig algorithmische Details, wenn man finite Elemente implementiert. Zum Beispiel,
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".
quelle