Spadanie złożonych przepływów 3D do dwóch równań
Równania płytkiej wody (zwane również równaniami Saint-Venanta) opisują cienką warstwę płynu, w której wymiar poziomy znacznie przewyższa jej głębokość – rzeka, zalana łąka, tsunami przecinający ocean basen lub duże systemy pogodowe atmosfery. Uśrednianie pogłębienia pełnych, trójwymiarowych równań inkompresyjnych Navier-Stoksa pod założeniem hydrostatycznym redukuje całą strukturę pionową do dwóch zachowanych wielkości na punkt: głębokość h i uśredniony przez głębokość moment p hu.
∂U/∂t + ∂F(U)/∂x = S U = [h, hu]ᵀ, F(U) = [hu, hu² + ½gh²]ᵀ Prędkości fal (wartości własne Jacobiego przepływu): λ = u ± c, c = √(gh) Liczba Froude’a: Fr = |u| / c → Fr1 krytyczny Celeritas c = √(gh) pełni tę samą rolę co prędkość dźwięku w dynamice gazów, a Fr jest bezpośrednim analogiem liczby Froude'a w płytkiej wodzie – dlatego też ta sama maszyna obliczeniowa zbudowana dla aerodynamiki sprężonej przenosi się niemal bez zmian.
∂U/∂t + ∂F(U)/∂x = S U = [h, hu]ᵀ, F(U) = [hu, hu² + ½gh²]ᵀ Wave speeds (eigenvalues of the flux Jacobian): λ = u ± c, c = √(gh) Froude number: Fr = |u| / c → Fr<1 subcritical, Fr>1 supercritical
Przybliżony rozpuszczalnik Riemanna dla Roesa
Schemat skończonych objętości aktualizuje każdą komórkę z przepływów na jej dwóch interfejsach. Obliczanie przepływu na granicy między dwoma różnymi stanami — "problem Riemanna" — ma dokładne rozwiązanie, ale jest ono nieliniowe i iteracyjne. Sztuczka Phila Roesa z 1981 roku polega na jego liniaryzacji: buduje się specjalnie ważony średni stan (û, ĉ) z komórek po lewej i prawej oraz rozwiązuje to wynikający z tego problem liniowy dokładnie.
û = (√h_L·u_L + √h_R·u_R) / (√h_L + √h_R) Przeciętna prędkość Roesa ĉ = √( g·(h_L + h_R)/2 ) Przeciętna prędkość celeracji Roesa F_i+½ = ½(F_L + F_R) − ½ Σ |λ̂ₖ| αₖ rₖ termin |λ̂| reprezentuje dyfuzję numeryczną Ten termin dyfuzyjny to co utrzymuje schemat stabilny w przypadku fali uderzeniowej — rozmywa discontynuitet na kilka komórek zamiast oscylować wokół niego — ale sam jest tylko pierwszego rzędu dokładności. Rekonstrukcja MUSCL (Monotone Upstream-Centred Schemes for Conservation Laws) odzyskuje drugi rząd poprzez interpolację ograniczonego profilu liniowego wewnątrz każdej komórki przed rozwiązaniem Roesa, używając ogranicznika nachylenia — minmod, van Leer lub superbee — który tłumi fałszywe oscylacje, które mogłyby powstać przy naiwnym liniowym wyciąganiu wniosków w pobliżu fali uderzeniowej.
û = (√h_L·u_L + √h_R·u_R) / (√h_L + √h_R) Roe-averaged velocity ĉ = √( g·(h_L + h_R)/2 ) Roe-averaged celerity F_i+½ = ½(F_L + F_R) − ½ Σ |λ̂ₖ| αₖ rₖ the |λ̂| term is numerical diffusion
Warunek CFL: jak daleko można się przędzić jednym krokiem
Ponieważ schemat jest analityczny, krok czasowy nie może przekroczyć najszybszej fali w domenie. Warunek Courant-Friedrichschlewy ogranicza Δt tak, aby informacja nie przemieszczała się więcej niż o jedną komórkę na krok:
Δt ≤ CFL · Δx / max(|u| + c) safe CFL ≈ 0.9 first-order, ≈ 0.5 with MUSCL+RK2
Problem z suchym podłożem
Symulacje powodziowe standardowo muszą uwzględniać suche obszary, gdzie h → 0. Jest to niebezpieczne obliczeniowo: prędkość celerity c = √(gh) zanika, prędkość u = hu/h staje się dzieleniem przez zero, a naiwny solver Roe może generować ujemne głębokości i całkowicie się wyłamać. Rozwiązania praktyczne obejmują próg głębokości, który traktuje komórki o bliskiej wartości zerowej jako solidne ściany, ograniczniki zachowujące dodatniość, które przycinają h ≥ 0 po każdym kroku, oraz – bardziej rygorystyczną opcję – hydrostatyczna rekonstrukcja (Audusse et al., 2004), która rekonstruuje głębokości interfejsu na podstawie nachylenia krawędzi, aby zapewnić, że są one gwarantowane jako nieujemne. Ta sama rekonstrukcja nadaje schematowi właściwość dobrze zbalansowaną: jezioro w spoczynku z nierównym dnem pozostaje dokładnie w spoczynku, zamiast dryfować pod wpływem szumów numerycznych wynikających z niedokładnie skorygowanych członów przepływu i źródłowych.
Jedna równanie, wiele zjawisk
Ten sam system dwóch równań, z różnymi źródłami termów włączonymi, odtwarza szeroki zakres rzeczywistych przepływów. Nagła awaria tamy jest niemal czystym drywem i ciśnieniem, rozpadając się na rozrzedzenie fali uciekającej do góry strumienia i falę szokową uciekającą w dół strumienia – problem Riemanna z podręcznika, który symulacja tego artykułu rozwiązuje bezpośrednio. Turlin pływowy dodaje tarcia dna do tego równowagi. Czwartorzęd morski jest dominowany przez ciśnienie na ogromnych skalach długości, poruszający się z prędkością blisko 200 m/s w głębokich wodach. Dodanie termu Coriolis f = 2Ω sin(φ) opisuje geostroficzne prążkowania oceaniczne i sztormowe podmuchy, gdzie obrót Ziemi zbalansowuje gradient ciśnienia na skalach setek kilometrów lub więcej.
Frequently asked questions
Co to jest liczba Froude i dlaczego ma ona znaczenie dla równań dla wody płytkiej?
Liczba Froude Fr = |u|/c porównuje prędkość przepływu u do prędkości rozchodzenia się fal w wodzie płytkiej c = √(gh). Fr 1 oznacza przepływ supercriticalny (strzelający), w którym nie mogą. Fr = 1 wskazuje na przeskok hydrauliczny, analogiczny do fali uderzeniowej w wodzie płytkiej.
Dlaczego używa się przybliżonego rozwiązania równania Riemanna zamiast rozwiązywania dokładnie problemu Riemanna?
Dokładne rozwiązanie problemu Riemanna dla równań dla wody płytkiej wymaga iteracyjnego, nieliniowego rozwiązania w każdym elemencie interfejsowym, w każdym kroku czasowym. Linearyzacja Roe'go zastępuje to pojedynczym krokiem algebry liniowej przy użyciu specjalnie uśrednionego stanu, który jest szybki, konserwatywny i wystarczająco dokładny do symulacji powodzi i fal morskich.
Dlaczego proste solvery zawodzą na suchym dnie?
Wraz ze zmniejszaniem się głębokości h, prędkość rozchodzenia się fal c = √(gh) również zbliża się do zera, a prędkość u = hu/h staje się dzieleniem przez liczbę niewyobrażalnie małą, co powoduje ogromne lub ujemne wartości głębokości. Naprawy obejmują progi głębokości, które traktują bliskie-suchych komórki jako ściany, ograniczniki zachowujące dodatniość, które przycinają h po każdym kroku oraz hydrostatyczną rekonstrukcję, która gwarantuje nieujemne wartości głębokości dzięki konstrukcji.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację the simulation