Jako zadanie na studiach wykonałem symulację 1d. Stwierdzenie problemu polegało na rozwiązaniu problemu rurki uderzeniowej 1d dotyczącej sprężalnego gazu idealnego jako płynu roboczego. W przypadku tego problemu rozwiązałem układ równań Eulersa za pomocą solwera Riemanna Roe. Chcę wiedzieć, aby rozwiązać równania Eulera w 2 lub 3 wymiarach, od czego zacząć? Jaki jest problem z testem, powinienem najpierw rozważyć? (Proszę nie sugerować komercyjnych rozwiązań. Chcę napisać własny kod). Potrzebuję tylko pomocy w napisaniu własnego kodu.
Jakie są dobre zasoby, które wprowadzają problem 2d w najbardziej praktyczny sposób?
fluid-dynamics
Subodh
źródło
źródło
Odpowiedzi:
Jak sugeruje David Ketcheson, książka LeVeque jest doskonałym źródłem; jednak naturalnie koncentruje się na metodach rozwiązywania Riemanna stosowanych w CLAWPACK. Alternatywą dla tych metod są nieoscylacyjne schematy centralne (np. Kurganova i Tadmora ), które są łatwe do wdrożenia i naturalnie rozszerzają się na 2-D lub 3-D (zamiast stosowania podziału wymiarowego). Na stronie http://www.cscamm.umd.edu/centpack/ znajduje się kod open source i duży zasób dokumentów .
Papieru przez Liska i Wendroff (SIAM Journal Scientific Computing 25 (3), 2003, 995-1017) porównuje różne schematy (zarówno Riemanna problemów i centralny) do równania Eulera w 1-D i 2-D i ma liczba problemów testowych, które mogą być przydatne.
źródło
Tak, problem 2D mniej więcej staje się rozwiązaniem problemu 1D w kierunku X, a następnie problemu 1D w kierunku Y. Struktury danych są nieco bardziej skomplikowane, macierz Roe musi zostać dostosowana do projekcji charakterystycznej w drugim kierunku, a także warunek CFL musi zostać zmodyfikowany.
Clawpack, a w szczególności przykłady 2D Clawpack (http://depts.washington.edu/clawpack/users-4.6/claw/doc/gallery/gallery_2d.html) mogą być przydatne, jeśli chcesz zajrzeć do kodu innej osoby .
źródło