Legen Sie die Kompatibilitätsbedingungen für die Methode mit gemischten finiten Elementen in der Stokes-Gleichung fest

13

Angenommen, wir haben folgende Stokes- :

Wenn

{-dichv(νu)+p=fdichvu=0
die Viskosität ν(x) eine Funktion ist, verwenden wir für das standardmäßige gemischte finite Element das stabile Paar: Crouzeix-Raviart-Raum Vh für die Geschwindigkeit u und den elementweise konstanten Raum Sh für den Druck p haben wir folgende Variationsform:

L([u,p],[v,q])=Ωνu:vΩqdivuΩpdivv=Ωfvv×qVh×Sh

und wir wissen, dass, da der Lagrange-Multiplikator p bis zu einer Konstanten bestimmt werden kann, die endgültig zusammengesetzte Matrix den Nullraum 1 haben sollte , um dies zu umgehen, wir den Druck p auf ein bestimmtes Element auf Null erzwingen könnten , so dass wir nicht müssen ein singuläres System lösen.

Also hier ist meine Frage 1:

  • (Q1) Gibt es eine andere Möglichkeit, als p=0 auf einem Element zu erzwingen , um den Kernel für gemischte Standard-Finite-Elemente zu entfernen? oder sagen wir, irgendein Löser da draußen, der in der Lage ist, das singuläre System zu lösen, um eine kompatible Lösung zu erhalten? (oder einige Referenzen sind willkommen)

Und was die Kompatibilität angeht, sollte es für (1)

Ων-1p=0
und der nette kleine Trick ist, p~ zu berechnen , das p wir aus der Lösung von erhalten haben das lineare System subtrahiert durch seinen gewichteten Durchschnitt:
(2)p~=p-ν|Ω|Ων-1p

Kürzlich habe ich jedoch ein stabilisiertes P1-P0 Finite-Elemente - Gemisch für die Stokes-Gleichung von Bochev, Dohrmann und Gunzberger implementiert , in dem der Variationsformulierung (1) ein stabilisierter Term hinzugefügt wurde:

L~([u,p],[v,q])=L([u,p],[v,q])Ω(pΠ1p)(qΠ1q)=Ωfvv×qVh×Sh
wobei Π1 die Projektion vom stückweise konstanten Raum P0 zum stetigen stückweise P1 ist und der konstante Kern des ursprünglichen gemischten finiten Elements weg ist, aber seltsame Dinge geschehen sind, (2) nicht funktioniert nicht mehr, ich prägte das Testproblem ausein Grenzflächenproblem für die Diffusionsgleichung , dies ist das, was ich für den Druck p , die rechte ist die wahre Lösung und die linke ist die numerische Approximation:

Stokes-Test 1

Wenn jedoch ν eine Konstante ist, funktioniert das Testproblem einwandfrei: Stokes-Test 2

Ich vermute, es liegt an der Art und Weise, wie ich die Kompatibilitätsbedingung auferlege, da sie mit der Inf-sup-Stabilität des gesamten Systems zusammenhängt. Hier ist meine zweite Frage:

  • (Q2): Gibt es eine andere Möglichkeit als (2), die Kompatibilität für den Druck p aufzuerlegen p? oder welche Art von p sollte ich verwenden, während ich das Testproblem präge ?
Shuhao Cao
quelle
MathML funktioniert nicht?
Shuhao Cao
Wir verwenden MathJaX auf StackExchange. Alles, was Sie gepostet haben, wird hervorragend angezeigt, danke für die detaillierte Frage.
Aron Ahmadia

Antworten:

8

Die Kompatibilitätsbedingung betrifft die Geschwindigkeit, nicht den Druck. Wenn Sie nur Dirichlet-Randbedingungen für die Geschwindigkeit haben, sollten diese mit der divergenzfreien Bedingung kompatibel sein, dh mit der Grenze von Computerdomäne (nicht die Zelle).& OHgr;Ωun=0Ω

In diesem Fall kann nicht von mit einer beliebigen Konstante unterschieden werden, da Sie keine Randbedingung für , um die Konstante festzulegen. Somit gibt es unendlich viele Lösungen für den Druck und um Lösungen zu vergleichen, ist eine Konvention erforderlich. Mathematiker bevorzugen so zu wählen , dass (weil sie integrieren können), während Physiker bevorzugen (weil sie in a messen können) Punkt). Wenn Ihr diskretes Äquivalent von , impliziert dies, dass( p + c ) c p c ¯ p = P r e f p ( x r e f ) = p r e f B p p Bp(p+c)cpcp¯=prefp(xref)=prefBppB hat einen Nullraum, der aus dem Identitätsvektor besteht.

Krylov-Subraummethoden können ein singuläres System lösen, indem sie den Nullraum aus dem Krylov-Subraum entfernen, in dem sie nach der Lösung suchen. Dies bedeutet jedoch nicht, dass Sie die Lösung , die einer bestimmten Konvention entspricht. Sie müssen die Konstante immer selbst in einem Nachbearbeitungsschritt ermitteln. Kein Löser kann dies für Sie tun.p

Hier sind einige Vorschläge, um Ihr Problem anzugehen:

  • Gleichung (2) scheint seltsam. Wenn eine Funktion von wie kann sie außerhalb des Integrals liegen?xνx
  • Erfüllt Ihr Geschwindigkeitsfeld die Kompatibilitätsbeschränkung?
  • Versuchen Sie, nichts für den Druck zu tun, lassen Sie den Löser einfach frei, um ein , und schauen Sie dann auf . Ist es eine Konstante?p - p e x a c tpp-pexeinct
  • Wenn nicht, sind Sie sicher, dass der Nullraum von tatsächlich der Identitätsvektor ist und nicht mehr? Sowohl auf Papier als auch im Code? Das Problem scheint klein genug zu sein, um den Nullraum tatsächlich zu berechnen.B
chris
quelle
2

Für (Q1) können Sie einen Löser für Sattelpunktprobleme wählen, der eine Lösung der kleinsten Quadrate für Ihr System berechnet. Dann kann dem Multiplikator eine zusätzliche Bedingung auferlegt werden, wie das Einstellen eines bestimmten Freiheitsgrades, das Auferlegen eines bestimmten Durchschnitts.

Im Allgemeinen, und ich denke, dies beantwortet (Q1), können Sie eine lineare Einschränkung verwenden, die verschiedene Konstanten unterscheiden kann.

Diese Einschränkung kann in einem Nachbearbeitungsschritt oder durch eine geeignete Auswahl des Testbereichs auferlegt werden (z. B. wenn Sie einen Freiheitsgrad auslassen).

shuhalo
quelle