Jakie są możliwe metody rozwiązywania ściśliwych równań Eulera

13

Chciałbym napisać własny solver dla ściśliwych równań Eulera i, co najważniejsze, chcę, aby działał solidnie we wszystkich sytuacjach. Chciałbym, aby była oparta na FE (DG jest w porządku). Jakie są możliwe metody?

Zdaję sobie sprawę z tego, że wykonuję DG na zamówienie 0 (woluminy skończone) i to powinno działać bardzo solidnie. Wdrożyłem podstawowy solver FVM i działa świetnie, ale konwergencja jest dość wolna. Jest to jednak zdecydowanie jedna opcja.

Wdrożyłem solver FE (działa na dowolnej siatce i dowolnej kolejności wielomianowej na dowolnym elemencie) dla zlinearyzowanych równań Eulera, ale dostaję fałszywe oscylacje (i ostatecznie wybuchają, więc nie mogę go użyć, więc rozwiąż mój problem) i Czytałem w literaturze, że trzeba to ustabilizować. Jeśli wdrożę stabilizację, czy działałoby to dobrze w przypadku wszystkich problemów (= warunki brzegowe i geometrie)? Jaki będzie wskaźnik konwergencji?

Poza tym, czy istnieje jakaś inna solidna metodologia równań Eulera (tj. DG wyższego rzędu z pewną stabilizacją)?

Wiem, że wiele osób próbowało wielu różnych rzeczy w swoich kodach badań, ale interesuje mnie solidna metoda, która działa dla wszystkich geometrii i warunków brzegowych (edycja: w 2D i 3D).

Ondřej Čertík
źródło

Odpowiedzi:

11

Główną trudnością numeryczną w rozwiązaniu nieliniowego układu hiperbolicznych PDE pierwszego rzędu, takich jak równania Eulera (dla ściśliwego, niewidzialnego przepływu), jest to, że nieciągłości (fale uderzeniowe) pojawiają się w roztworze po skończonym czasie, nawet jeśli początkowe dane są gładkie. Aby sobie z tym poradzić, większość współczesnych kodów używa obu

  • Nachylenie (lub strumienia ) ograniczniki , które zapewniają sposób obliczania pochodnych dokładnie w pobliżu, bez wprowadzania nieciągłości zakłócające drgania; i
  • Przybliżone solwery Riemanna , które lokalnie (na każdej krawędzi / powierzchni siatki) rozwiązują problem wartości początkowej z częściowo stałymi danymi początkowymi i pojedynczą nieciągłością.

Istnieją dyskretyzacje różnic skończonych (FD), objętości skończonych (FV) i elementów skończonych (FE), które zawierają ograniczniki i solwery Riemanna, a wszystko to może być wykonane z dużą dokładnością, przynajmniej z dala od wstrząsów. Dlatego nie ma sensu kategorycznie mówić, że metody FE są zbieżne szybciej niż metody FV - będą one porównywalne, jeśli zastosowane zostaną porównywalne dyskretyzacje zamówień.

Spośród metod FE najbardziej odpowiednie są tutaj metody nieciągłe Galerkina , ponieważ rozwiązanie będzie w rzeczywistości nieciągłe. Jeśli chcesz wdrożyć własne, proponuję przeczytać ten artykuł przeglądowy i zdobyć kopię tekstu Hesthaven & Warburton, aby zrozumieć podstawy. Następnie jest wiele artykułów na temat DG dotyczących przepływu ściśliwego .

Jeśli chcesz użyć kodu innej osoby, a ponieważ wiem, że używasz języka Python, możesz spojrzeć na kod żywopłotu Andreasa Kloecknera , który ma interfejs Pythona i może działać na procesorach graficznych. Prawdopodobnie istnieją inne dobre kody DG i wiele dobrych kodów FV (takich jak Clawpack , który ma również interfejs Python ).

Istnieją również nowsze metody wyższego rzędu, takie jak różnica widmowa. Aby zapoznać się z najnowszą perspektywą, zobacz Cheng & Shu 2009, Schematy wysokiego rzędu dla CFD: A Review lub Ekaterinaris 2005, Dokładne, niskie numeryczne metody dyfuzji dla aerodynamiki .

David Ketcheson
źródło
Dzięki David, szczególnie za wszystkie wskaźniki do dokumentów. FV to po prostu DG zerowego rzędu, prawda? A może FV wyższego rzędu w jakiś sposób różni się od DG tego samego rzędu? Chcę sam coś wdrożyć, aby w pełni zrozumieć, co się dzieje. Kod zabezpieczający wygląda świetnie.
Ondřej Čertík,
1
FE i FV są często równoważne w programach pierwszego rzędu. Schematy wyższego rzędu są na ogół różne i żaden z nich nie jest podzbiorem drugiego.
David Ketcheson,
1
Możesz do pewnego stopnia zjednoczyć się z „DG ds. Odbudowy”. FV zwykle wykorzystuje cząstkowe stałe funkcje testowe i rekonstruuje przy użyciu sąsiadów w celu podniesienia porządku. DG zwykle używa pasującej przestrzeni testowej (Galerkin) i podnosi porządek wewnętrzny. Zauważ, że DG nadal potrzebuje ograniczników do silnych wstrząsów, a zatem nie jest to już metoda Galerkina. Rekonstrukcja DG pozwala wykonywać zarówno: podnieść porządek wewnętrzny i zrekonstruować za pomocą sąsiadów, dlatego konwencjonalne FV i DG ograniczają przypadki.
Jed Brown,
Jeśli modeluję układ fizyczny, który moim zdaniem z powodów empirycznych nie wyświetla fal uderzeniowych, to jaka jest dobra metoda?
sigfpe,
@ Sigfpe najlepiej byłoby wysłać nowe pytanie, zawierające więcej informacji.
David Ketcheson