Strona główna Chemia FHP Lattice Gas Automaton

💨 FHP Lattice Gas Automaton

Boolean particles on a hexagonal lattice collide and stream under simple conservation rules, coarse-graining into emergent fluid-like flow — Navier-Stokes behavior from pure discrete geometry.

Chemia2DZaawansowany60 FPS
fhp-lattice-gas ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

Podobne symulacje

Jak to działa

Model FHP umieszcza boolowskie „cząstki” w węzłach sieci trójkątnej, gdzie każdy węzeł ma sześciu sąsiadów co 60° (0°, 60°, 120°, 180°, 240°, 300°). Wykluczanie oznacza, że co najwyżej jedna cząstka może poruszać się w każdym z sześciu kierunków w danym węźle. Każdy krok czasowy stosuje jednocześnie wszędzie dwie lokalne operacje: kolizję — tabelę przeglądową przestawiającą zajęte kierunki w węźle przy zachowaniu liczby cząstek i pędu — oraz propagację, która przesuwa każdą cząstkę o jeden krok sieciowy w jej kierunku.

Surowe obsadzenie pojedynczego węzła to po prostu szum — jeden bit na kierunek. Ten symulator dzieli siatkę na małe bloki i uśrednia wektory kierunków zajętych cząstek wewnątrz każdego bloku w każdej klatce, tworząc gładkie pole strzałek, które widać: ten krok uśredniania (coarse-graining) to dokładnie sposób, w jaki hydrodynamika kontinuum wyłania się z dyskretnego, odwracalnego zestawu reguł mikroskopowych. Malowalny obszar stały odbija napływające cząstki (odbicie wsteczne), co wystarcza, by wygenerować punkty stagnacji, oddzielone warstwy ścinające i, przy wysokich prędkościach wlotowych, wiry odrywające się za przeszkodą.

Kierunki: θ_i = i·60°, i = 0..5
Kolizja dwuciałowa: {i, i+3} → {i+1, i+4} lub {i-1, i+2} (losowa, zachowująca pęd)
Kolizja trzyciałowa: {0,2,4} ↔ {1,3,5} (obrót o 60°)
Prędkość uśredniona: u(blok) = (1/N)·Σ po zajętych kierunkach z (cos θ_i, sin θ_i)

Najczęściej zadawane pytania

Czym jest automat gazu sieciowego i czym FHP różni się od prawdziwej dynamiki molekularnej?

Automat gazu sieciowego (LGA) zastępuje ciągłe pozycje i prędkości cząstek boolowskimi liczbami obsadzenia na ustalonej sieci: każdy węzeł może pomieścić co najwyżej jedną cząstkę na dozwolony kierunek. W przeciwieństwie do dynamiki molekularnej, która całkuje rzeczywiste siły i trajektorie, LGA ewoluuje przez dwa dyskretne kroki lokalne — kolizję i propagację — stosowane jednocześnie do każdego węzła. Jest dramatycznie tańszy obliczeniowo, a mimo to, co niezwykłe, wciąż odtwarza równania Naviera-Stokesa w granicy makroskopowej.

Dlaczego FHP wymagał sieci heksagonalnej z 6 kierunkami zamiast kwadratowej?

Wcześniejszy gaz sieciowy na siatce kwadratowej (HPP) zachowuje masę i pęd, ale ma tylko 4-krotną symetrię obrotową, co przecieka do równań makroskopowych jako niefizyczna zależność ciśnienia i lepkości od kierunku. Sieć heksagonalna ma 6-krotną symetrię — minimum potrzebne, by tensor lepkości czwartego rzędu stał się izotropowy. Frisch, Hasslacher i Pomeau pokazali w 1986 roku, że ta pojedyncza zmiana geometryczna odtwarza poprawne, niezależne od kierunku zachowanie Naviera-Stokesa.

Co dokładnie robią kroki kolizji i propagacji?

Propagacja (streaming) przesuwa każdą cząstkę o jeden krok sieciowy w kierunku jej ruchu. Kolizja to czysto lokalny lookup: dwie cząstki zderzające się czołowo (180° od siebie) rozpraszają się na jedną z dwóch prostopadłych par kierunków, wybraną losowo; trzy cząstki oddalone o 120° obracają się razem o 60°; każda inna konfiguracja przechodzi bez zmian. Obie reguły jedynie przemianowują, które kierunki są zajęte w węźle, więc całkowita liczba cząstek i pęd nigdy się tam nie zmieniają.

Dlaczego te reguły kolizji zachowują masę i pęd?

Zachowanie masy jest automatyczne, ponieważ kolizje nigdy nie tworzą ani nie niszczą zajętych kierunków, tylko je przypisują na nowo. Zachowanie pędu wynika z symetrii: para czołowa ma zerowy pęd netto, a obie prostopadłe pary wyjściowe też mają zerowy pęd netto, więc zamiana jest neutralna pędowo; obrót trzech cząstek mapuje jedną symetryczną trójkę o zerowym pędzie na inną.

Jak uśrednianie (coarse-graining) zamienia dyskretne wartości boolowskie w gładkie pole przepływu?

Obsadzenie pojedynczego węzła to zasadniczo szum. Uśrednianie po bloku wielu węzłów, sumowanie każdego zajętego kierunku jako wektora jednostkowego i dzielenie przez liczbę węzłów, daje lokalną średnią prędkość, która zmienia się gładko w przestrzeni i czasie — dokładnie procedura, jaką mechanika statystyczna wykorzystuje, by przejść od stanów mikroskopowych do pól makroskopowych.

Jak FHP modeluje przepływ wokół przeszkody i odrywanie wirów?

Obszar stały wykorzystuje granice odbijające wstecznie: każda cząstka wchodząca do węzła stałego ma odwrócony kierunek, więc wynurza się tą samą drogą, którą przybyła. Cząstki gromadzą się przed przeszkodą i rozrzedzają za nią; w uśrednionym polu prędkości daje to punkt stagnacji z przodu, oddzielone warstwy ścinające oraz, przy wyższych prędkościach wlotowych, naprzemienne wiry odrywające się z tyłu — sieciowy odpowiednik alei wirowej von Kármána.

Kto wynalazł model FHP i dlaczego ma znaczenie historyczne?

Model nosi imiona Uriela Frischa, Brosla Hasslachera i Yves'a Pomeau, którzy opublikowali go w 1986 roku, po tym jak wcześniejszy poprzednik na siatce kwadratowej (HPP) okazał się zawodzić w izotropowej hydrodynamice. FHP był pierwszym automatem komórkowym, o którym udowodniono, że odtwarza równania Naviera-Stokesa, i bezpośrednio zainspirował metodę Boltzmanna sieciowego, obecnie standardowe narzędzie w obliczeniowej mechanice płynów.

Jakie są główne ograniczenia modelu gazu sieciowego FHP?

Każdy węzeł mieści zaledwie garstkę boolowskich cząstek, więc pojedyncze przebiegi są niezwykle zaszumione; odzyskanie czystego pola prędkości wymaga uśredniania po wielu węzłach lub przebiegach. Model jest ograniczony do niskich liczb Macha, ma lepkość efektywną zależną od prędkości, a dyskretne wykluczanie ogranicza osiągalną gęstość. Te problemy zmotywowały metody Boltzmanna sieciowego, które w dużej mierze zastąpiły FHP w praktycznym CFD.

Co oznacza zasada wykluczania na sieci FHP?

Wykluczanie oznacza, że każdy węzeł może pomieścić co najwyżej jedną cząstkę na kierunek, maksymalnie sześć w sumie, wszystkie poruszające się z tą samą prędkością jednostkową. To uproszczenie modelowe, a nie fizyczny wymóg prawdziwych gazów — utrzymuje stan każdego węzła jako małą liczbę boolowską i sprawia, że automat jest dokładnie odwracalny i łatwy do aktualizacji równolegle.

Co dzieje się z cząstkami na krawędziach symulowanej sieci?

Górna i dolna krawędź zawijają się okresowo, unikając sztucznych ścian, które zakłócałyby przepływ. Lewa krawędź działa jak wlot, gdzie nowe cząstki są nieustannie wstrzykiwane w kierunkach do przodu z szybkością ustaloną suwakiem gęstości, a prawa krawędź to otwarty wylot — cząstki, które ją mijają, po prostu opuszczają domenę, naśladując tunel aerodynamiczny ze stałym przepływem.

O tej symulacji

Ten symulator uruchamia prawdziwy automat gazu sieciowego FHP: każdy węzeł na heksagonalnej siatce mieści do sześciu boolowskich cząstek, po jednej na kierunek co 60°, które zderzają się zgodnie ze ścisłymi regułami zachowującymi masę i pęd, a następnie przepływają do sąsiadów. Obsadzenie pojedynczego węzła to szum, ale uśrednianie wektorów kierunków po małych blokach w każdej klatce ujawnia gładkie pole prędkości oparte na strzałkach — widok tunelu aerodynamicznego pokazujący, jak przepływ podobny do Naviera-Stokesa może wyłonić się z niczego innego niż dyskretna, odwracalna geometria. Namaluj przeszkodę, podnieś gęstość wlotową i obserwuj punkty stagnacji, warstwy ścinające i odrywające się wiry pojawiające się w uśrednionym polu.

🔬 Co pokazuje

Heksagonalny automat gazu sieciowego przepływający w prawo od wlotu tunelu aerodynamicznego, uśredniony w pole strzałek dla widoczności powstającego wzoru przepływu zamiast surowego szumu cząstek. Malowalny obszar stały odbija cząstki poprzez odbicie wsteczne, tworząc smugi za przeszkodą i odrywające się wiry.

🎮 Jak korzystać

Wybierz rozmiar siatki, wybierz z listy rozwijanej koło, płaską płytkę lub brak przeszkody, albo kliknij i przeciągnij bezpośrednio na płótnie, by namalować własne komórki stałe (prawy klik, by wymazać). Podnieś suwak gęstości wlotowej, by wstrzyknąć więcej cząstek z lewej krawędzi, i użyj suwaka prędkości, by wykonać więcej kroków automatu na wyrenderowaną klatkę.

💡 Czy wiesz, że...?

FHP był pierwszym automatem komórkowym, dla którego matematycznie udowodniono odtwarzanie nieściśliwych równań Naviera-Stokesa w granicy kontinuum — czysto dyskretny, boolowski zestaw reguł dający tę samą fizykę na dużą skalę, co równania różniczkowe używane przez inżynierów do projektowania skrzydeł samolotów.

Najczęściej zadawane pytania

Dlaczego widzę strzałki zamiast pojedynczych kropek cząstek?

Surowe obsadzenie cząstek jest boolowskie i niezwykle zaszumione na skali pojedynczego węzła. Symulator sumuje wektory kierunków zajętych cząstek w każdym małym bloku i dzieli przez rozmiar bloku w każdej klatce, co jest dokładnie krokiem uśredniania, który odzyskuje gładkie makroskopowe pole prędkości z mikroskopowej dyskretności — rysowanie surowych kropek wyglądałoby po prostu jak szum.

Co oznacza statystyka „Re (jednostki sieciowe)”?

To uproszczony, bezwymiarowy wskaźnik zbudowany z szybkości wstrzykiwania na wlocie i rozmiaru przeszkody w komórkach sieciowych, zastępujący prawdziwą liczbę Reynoldsa (która zależy od lepkości fizycznej, a nie tylko szybkości wstrzykiwania). Niskie wartości odpowiadają gładkiemu, laminarnie wyglądającemu uśrednionemu przepływowi; wysokie wartości odpowiadają widocznemu odrywaniu wirów za przeszkodą — tej samej jakościowej tendencji, jaką dają prawdziwe liczby Reynoldsa.

Dlaczego przepływ czasem wygląda inaczej za każdym razem, gdy resetuję symulację?

Reguła kolizji dwuciałowej losowo rozprasza czołowe pary cząstek na jeden z dwóch prostopadłych wyników, a wstrzykiwanie na wlocie jest również losowe. Ta wbudowana losowość jest zamierzona — naśladuje chaos molekularny i oznacza, że powtarzane przebiegi przy identycznych ustawieniach wciąż dają nieco inne, ale statystycznie podobne wzory przepływu.

Dlaczego góra i dół siatki się zawijają?

Okresowe zawinięcie pionowych krawędzi unika wprowadzania sztucznych ścian stałych, które odbijałyby cząstki i zniekształcały pole przepływu blisko góry i dołu widocznej domeny. Skutecznie symuluje to nieskończenie wysoki tunel aerodynamiczny, więc jedynymi granicami mającymi fizyczne znaczenie są wlot, wylot i namalowana przeszkoda.

Czy mogę namalować więcej niż jedną przeszkodę?

Tak. Malowanie myszą dodaje komórki stałe na wierzchu dowolnego kształtu wybranego z listy rozwijanej, więc można rozszerzyć koło, dodać dodatkowe blokady lub zbudować niestandardową geometrię całkowicie ręcznie. Kliknięcie prawym przyciskiem i przeciąganie wymazuje komórki stałe z powrotem do otwartych węzłów niosących cząstki.

Czy to ten sam algorytm, który jest używany w prawdziwym inżynierskim oprogramowaniu CFD?

Nie bezpośrednio — produkcyjne CFD używa głównie metody Boltzmanna sieciowego, którą FHP bezpośrednio zainspirował, lub solwerów Naviera-Stokesa dla kontinuum. Sam FHP jest dziś używany głównie do nauczania i eksploracji koncepcyjnych pytań w mechanice statystycznej, ponieważ pokazuje, że hydrodynamika może wyłonić się z w pełni dyskretnej, dokładnie odwracalnej reguły mikroskopowej.

⚙ Pod maską

Boolowskie cząstki na sieci heksagonalnej zderzają się i przepływają zgodnie z prostymi regułami zachowania, uśredniając się w wyłaniający się przepływ podobny do cieczy — zachowanie Naviera-Stokesa z czystej dyskretnej geometrii.

FHP ModelLattice GasCellular AutomatonFluid DynamicsCanvas 2D

2D · HTML5 Canvas 2D · cel 60 FPS · działa w całości po stronie klienta, bez instalacji

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)