Narzuć warunki zgodności dla metody mieszanych elementów skończonych w równaniu Stokesa

13

Załóżmy, że mamy następujące równanie modelu przepływu Stokesa:

{div(νu)+p=fdivu=0
gdzie lepkość ν(x) jest funkcją, dla standardowego mieszanego elementu skończonego powiedzmy, że używamy pary stabilnej: przestrzeń Crouzeixa-Raviarta Vh dla prędkości u i stałej przestrzeni elementarnej Sh dla ciśnienia p mamy następującą postać wariacyjną:

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

i wiemy, że ponieważ mnożnik p Lagrange'a pmożna ustalić do stałej, ostatecznie zmontowana macierz powinna mieć zerową przestrzeń 1 , aby to obejść, możemy wywierać nacisk p na jakiś określony element równy zero, abyśmy nie musieli rozwiązać pojedynczy system.

Oto moje pytanie 1:

  • (Q1) Czy istnieje inny sposób niż wymuszenie p=0 na pewnym elemencie w celu wyeliminowania jądra dla standardowego mieszanego elementu skończonego? lub powiedzmy, że istnieje jakiś solver, który byłby w stanie rozwiązać pojedynczy system, aby uzyskać kompatybilne rozwiązanie? (lub niektóre referencje są mile widziane)

Oraz o kompatybilności, na (1) powinno być i piękny mały trick jest obliczenie być mamy z roztworu system liniowy odjęty przez jego średnią ważoną:

Ων1p=0
p~p
(2)p~=pν|Ω|Ων1p

Ostatnio jednak stabilizowany mieszany element skończony dla równania Stokesa autorstwa Bocheva, Dohrmanna i GunzbergeraP1P0 , w którym dodali ustabilizowany termin do sformułowania wariacyjnego (1): gdzie jest rzutem z częściowej stałej przestrzeni na ciągłą fragmentową , a stałe jądro oryginalnego mieszanego elementu skończonego zniknęło, jednak dziwne rzeczy się zdarzyły (2) już nie działa, stworzyłem problem z testu

L~([u,p],[v,q])=L([u,p],[v,q])Ω(pΠ1p)(qΠ1q)=Ωfvv×qVh×Sh
Π1P0P1problem interfejsu dla równania dyfuzyjnego , oto co otrzymałem dla ciśnienia , prawy to prawdziwe rozwiązanie, a lewy to przybliżenie numeryczne:p

Test Stokesa 1

jednak jeśli jest stałą, problem z testem działa dobrze: νTest Stokesa 2

Chyba dlatego, że narzucam warunek zgodności, ponieważ wiąże się to ze stabilnością inf-sup całego systemu, oto moje drugie pytanie:

  • (Q2): czy istnieje inny sposób niż (2) narzucenie zgodności dla ciśnienia ? lub podczas tworzenia problemu testowego, jakiego rodzaju powinienem użyć?pp
Shuhao Cao
źródło
MathML nie działa?
Shuhao Cao,
Używamy MathJaX na StackExchange, wszystko, co opublikowałeś, pięknie się prezentuje, dzięki za szczegółowe pytanie.
Aron Ahmadia,

Odpowiedzi:

8

Warunek zgodności dotyczy prędkości, a nie ciśnienia. Stwierdza, że ​​jeśli masz tylko warunki brzegowe Dirichleta dla prędkości, to powinny one być zgodne z ograniczeniem wolnym od dywergencji, tj. z granicą domena obliczeniowa (nie komórka).Ωun=0Ω

W tym przypadku nie można odróżnić od pomocą dowolnej stałej, ponieważ nie ma warunku granicznego na aby ustalić stałą. Zatem istnieje nieskończenie wiele rozwiązań dla ciśnienia, a do porównania rozwiązań potrzebna jest konwencja. Matematycy wolą wybrać takie, że (ponieważ mogą się integrować), podczas gdy fizyk wolą (ponieważ mogą mierzyć w punkt). Jeśli jest twoim dyskretnym odpowiednikiem , oznacza to, żep(p+c)cpcp¯=prefp(xref)=prefBppB ma pustą przestrzeń składającą się z wektora tożsamości.

Metody podprzestrzeni Kryłowa mogą rozwiązać układ pojedynczy, usuwając pustą przestrzeń z podprzestrzeni Kryłowa, w której szukają rozwiązania. Nie oznacza to jednak, że otrzymasz rozwiązanie pasujące do danej konwencji, zawsze będziesz musiał sam ustalić stałą wartość na etapie postprocessingu, żaden solver nie może zrobić tego za ciebie.p

Oto kilka propozycji rozwiązania problemu:

  • Równanie (2) wydaje się dziwne. Jeśli jest funkcją jak może znajdować się poza całką?νx
  • Czy twoje pole prędkości spełnia ograniczenie zgodności?
  • Staraj się nie robić nic dla presji, po prostu pozwól solverowi wymyślić , a następnie spójrz na . Czy to jest stałe?pppexact
  • Jeśli nie, czy jesteś pewien, że pusta przestrzeń jest rzeczywiście wektorem tożsamości i niczym więcej? Zarówno na papierze, jak i w kodzie? Problem wydaje się wystarczająco mały, aby obliczyć przestrzeń zerową.B
Chris
źródło
2

Jeśli chodzi o (Q1), możesz wybrać solver dla problemów z punktami siodłowymi, który oblicza rozwiązanie najmniejszych kwadratów dla twojego systemu. Następnie na mnożnik można nałożyć dodatkowy warunek, taki jak ustalenie określonego stopnia swobody, narzucając określoną średnią.

Ogólnie rzecz biorąc, i myślę, że te odpowiedzi (Q1), możesz użyć wiązania liniowego, które może rozróżnić różne stałe.

Ograniczenie to może zostać nałożone na etapie przetwarzania końcowego lub przez odpowiedni wybór przestrzeni próbnej (np. Jeśli pominiesz jeden stopień swobody).

shuhalo
źródło