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.