💧 Symulacja cieczy w czasie rzeczywistym — solver Naviera-Stokesa
Interaktywna symulacja cieczy 2D według metody Josa Stama
O symulacji cieczy w czasie rzeczywistym
Ta symulacja rozwiązuje nieściśliwe równania Naviera-Stokesa na siatce 100×100, modelując ruch cieczy 2D oraz sposób, w jaki rozprzestrzenia się niesiony w niej barwnik. Wykorzystuje bezwarunkowo stabilny schemat Josa Stama: w każdej klatce dodawane są siły, prędkość i gęstość są dyfundowane przy pomocy niejawnego solvera Gaussa-Seidla, wielkości są adwekowane przez śledzenie charakterystyk wstecz w czasie (metoda semi-Lagrange'a), a następnie pole prędkości jest rzutowane w celu usunięcia dywergencji (∇·u = 0).
Przeciągnij po płótnie, aby wstrzyknąć prędkość i barwnik. Suwak Lepkość ustala, jak silnie wygładza się pęd, Dyfuzja kontroluje rozprzestrzenianie się barwnika, a Zanikanie zmniejsza gęstość w każdej klatce, więc smugi z czasem znikają. Przyciski Gęstość, Prędkość i Oba przełączają mapę kolorów, a presety Wir, Ścinanie i Strumień zasiewają klasyczne wzorce przepływu. Takie solwery napędzają efekty dymu, wody i ognia w grach, filmach i efektach specjalnych.
Najczęściej zadawane pytania
Co właściwie pokazuje ta symulacja?
Pokazuje ona nieściśliwą ciecz 2D w ruchu, wizualizowaną jako kolorowe pole barwnika (gęstość), pole prędkości kolorowane według kierunku lub oba połączone. Przeciągając po płótnie, dodajesz pęd i barwnik, a solwer adwekuje i dyfunduje je klatka po klatce, dzięki czemu widać rozwijające się wiry, strumienie i warstwy ścinające.
Jaka metoda jest używana do rozwiązywania równań cieczy?
Implementuje metodę "Stable Fluids" Josa Stama. Każdy krok czasowy dzieli się na etapy: dodanie siły, dyfuzja, adwekcja i projekcja. Dyfuzja i rozwiązanie ciśnienia wykorzystują około 20 iteracji liniowego solwera Gaussa-Seidla, a adwekcja wykorzystuje śledzenie wsteczne metodą semi-Lagrange'a, co czyni metodę bezwarunkowo stabilną dla dowolnego kroku czasowego.
Co robi etap projekcji?
Projekcja wymusza nieściśliwość (∇·u = 0), obliczając pole ciśnienia, którego gradient jest odejmowany od prędkości. Jest to dekompozycja Helmholtza-Hodge'a: usuwa ona dywergentną część przepływu, dzięki czemu ciecz zachowuje masę, nie ściskając się ani nie rozszerzając.
Co kontroluje suwak Lepkość?
Lepkość ustala, jak szybko wygładzają się różnice prędkości, modelując wewnętrzne tarcie cieczy (składnik ν∇²u). Suwak jest skalowany logarytmicznie od około 1e-6 do 1e-2; niskie wartości dają cienki, turbulentny, wirowy przepływ, a wysokie wartości dają gęsty, syropowaty ruch, który szybko wygasa.
Jaka jest różnica między Lepkością a Dyfuzją?
Lepkość działa na pole prędkości, wygładzając pęd tak, by sąsiadujące obszary na siebie oddziaływały. Dyfuzja działa na pole barwnika (gęstości), rozprzestrzeniając widoczny kolor niezależnie od przepływu. Można mieć ciecz o niskiej lepkości i szybkim ruchu, która wciąż ma silnie dyfundujący, rozmyty barwnik, lub odwrotnie.
Co robi suwak Zanikanie?
Zanikanie mnoży pole gęstości przez współczynnik (0,80–1,00) w każdej klatce, więc barwnik stopniowo znika zamiast gromadzić się w nieskończoność. Przy 0,99 smugi utrzymują się i narastają; niższe wartości sprawiają, że wstrzyknięty barwnik szybko znika, co jest przydatne do obserwacji bieżącej prędkości, a nie pełnej historii.
Co robią presety Wir, Ścinanie i Strumień?
Wir zasiewa obracające się pole prędkości w centralnym kręgu, tworząc wirujący prąd. Ścinanie ustawia przeciwne prędkości poziome w górnej i dolnej połowie, zasiewając warstwę ścinającą w stylu Kelvina-Helmholtza. Strumień wstrzykuje prędkość skierowaną w górę i barwnik wzdłuż dołu, tworząc wznoszący się strumień cieczy bez wyporności.
Czy to jest fizycznie dokładne?
To wierny jakościowo solwer dla nieściśliwych równań Naviera-Stokesa, ale nie jest ilościowo precyzyjny. Adwekcja semi-Lagrange'a dodaje dyfuzję numeryczną, która tłumi drobne szczegóły, siatka ma tylko 100×100, a nie ma wyporności ani grawitacji, więc priorytetem jest wizualna stabilność i szybkość, a nie dokładność inżynierska.
Co oznaczają wyświetlane statystyki?
Maksymalna prędkość to największa wartość prędkości znaleziona gdziekolwiek na siatce, w jednostkach komórek na sekundę. Całkowita gęstość to zsumowana ilość barwnika we wszystkich komórkach, która maleje wraz z tłumieniem przez współczynnik Zanikania. Rozmiar siatki pokazuje rozdzielczość symulacji — tutaj 100×100 komórek wewnętrznych plus jednokomórkowy pierścień brzegowy.
Gdzie w prawdziwym świecie stosuje się takie solwery?
Solwery typu stable-fluids są podstawą efektów dymu, ognia, wody i chmur w czasie rzeczywistym w grach wideo i efektach specjalnych filmów, gdzie liczy się szybkość i stabilność bardziej niż dokładna fizyka. Te same równania Naviera-Stokesa, rozwiązywane metodami o wyższej dokładności, napędzają inżynierską obliczeniową mechanikę płynów w aerodynamice, meteorologii i przepływach rurowych.