Devlog #57 – Fala 37: Kompresja SVD, Z-pinch & Powierzchnia energii potencjalnej

Fala 37 obejmuje trzy bardzo różne dziedziny, połączone bogatą matematyką: interaktywny kompresor obrazów metodą SVD, który pokazuje dokładnie, jak niewiele wartości osobliwych wystarczy, by rozpoznać portret, kolumnę plazmy Z-pinch, na której w czasie rzeczywistym można obserwować, jak niestabilności MHD niszczą uwięzienie, oraz kultową powierzchnię energii potencjalnej Müllera-Browna, na której cząstka przeskakuje między studniami reagenta i produktu przez dwa stany przejściowe. Wszystkie trzy symulacje trafiają na platformę z pełnym polskim tłumaczeniem już w dniu premiery.

Statystyki wydania

484
Symulacji łącznie
57
Wpisów devlogu
37
Fal wydań
1686
Adresów URL w mapie strony

Nowe symulacje

🔢

Kompresja SVD

SVD metodą iteracji potęgowej zastosowana do sześciu wzorców testowych 64×64 (portret, figura geometryczna, gradient, szachownica, paski, szum). Suwak rzędu (1–64) określa, ile wektorów osobliwych uwzględniono w aproksymacji rzędu-k A ≈ Σ σiuiviT. Poniżej histogram wszystkich 64 wartości osobliwych σ podświetla uwzględnione wektory na fioletowo.

Otwórz kompresję SVD →
🌀

Z-pinch

180 cząstek plazmy uwięzionych w kolumnie przez azymutalne pole magnetyczne prądu osiowego (siła pinch J×B). Wybierz tryb Stabilny, Kiełbasa (m=0) lub Kink (m=1) i obserwuj, jak niestabilność narasta z małego początkowego zaburzenia. Lewy panel to przekrój poprzeczny; prawy panel to profil osiowy pokazujący deformację kolumny.

Otwórz Z-pinch →
⚗️

Powierzchnia energii potencjalnej

Pełnoekranowy kolorowy render powierzchni energii potencjalnej Müllera-Browna z 20 nałożonymi białymi liniami konturowymi. Trzy minima oznaczone R (reagent), P (produkt), I (produkt pośredni) oraz dwa punkty siodłowe TS1, TS2. Cząstka całkowana metodą Eulera z tarciem γ i szumem termicznym kT przetacza się między studniami, zostawiając kropkowany ślad. Kliknij w dowolnym miejscu, aby teleportować cząstkę.

Otwórz PES →

Kompresja SVD — Notatki projektowe

SVD metodą iteracji potęgowej

Zamiast implementować pełny algorytm Goluba-Reinscha (niedopuszczalnie wolny w JavaScript dla N=64), symulator wykorzystuje sekwencyjną iterację potęgową z deflacją. Dla każdej składowej c znajdowany jest dominujący lewy wektor osobliwy macierzy resztowej R = A − Σi<c σiuiviT poprzez 40 iteracji naprzemiennego u = R v / ‖R v‖ i v = RTu / ‖RTu‖, po czym reszta jest deflowana. Wszystkie 64 składowe są obliczane raz przy wczytaniu obrazu; od tej pory aktualizacja suwaka rzędu jest natychmiastowa.

Panel statystyk

Cztery statystyki na żywo śledzą kompromis między jakością a kompresją:

Wzorce testowe

Sześć wbudowanych wzorców testuje SVD przy różnych rzędach wewnętrznych. Szachownica jest zasadniczo sygnałem rzędu 8 (8 częstotliwości przestrzennych), więc rząd=8 daje już niemal idealną rekonstrukcję. Obraz szum ma pełny rząd 64, ponieważ losowe piksele nie mają nadmiarowej struktury — wartości osobliwe zanikają powoli i potrzeba wielu składowych, by znacząco zmniejszyć błąd. Gładkie obrazy, jak gradient, kompresują się wyjątkowo dobrze: rząd=2 często przechwytuje >95% wariancji.

Z-pinch — Notatki projektowe

Model fizyczny

W rzeczywistym Z-pinchu osiowa gęstość prądu Jz generuje azymutalne pole magnetyczne Bθ = μ0I / (2πr). Powstająca skierowana do wewnątrz siła Lorentza F = J × B ściska plazmę radialnie. Równowagę opisuje relacja Bennetta: I2 = 8πNkT (w jednostkach Gaussa), dająca promień równowagowy Req ∝ √T / I. Wyższy prąd lub niższa temperatura dają ciaśniejszy pinch.

Tryby niestabilności

Symulowane są dwa klasyczne tryby niestabilności MHD:

Tempo wzrostu zależy od prądu i temperatury poprzez γ ∝ I / (√T · Req), więc plazma o wysokim prądzie i niskiej temperaturze jest znacznie bardziej niestabilna.

Parametr plazmy β

Parametr plazmy β = 2μ0nkT/B2 to stosunek ciśnienia termicznego do magnetycznego. Plazma o wysokim β jest termicznie dominująca i opiera się kompresji; plazma o niskim β jest zdominowana magnetycznie. Symulator raportuje β na żywo, dzięki czemu łatwo zobaczyć, jak zmiana I i T przenosi cię przez tę granicę.

Powierzchnia energii potencjalnej — Notatki projektowe

Potencjał Müllera-Browna

Potencjał Müllera-Browna (1979) to standardowa referencyjna PES w chemii obliczeniowej. Jest to suma czterech członów gaussowskich:

z parametrami (A, a, b, c, x0, y0) = (−200, −1, 0, −10, 1, 0), (−100, −1, 0, −10, 0, 0.5), (−170, −6.5, 11, −6.5, −0.5, 1.5), (15, 0.7, 0.6, 0.7, −1, 1). Daje to trzy lokalne minima (R, I, P) oraz dwa punkty siodłowe pierwszego rzędu (TS1 między R i P, TS2 między P i I).

Dynamika cząstki

Cząstka podlega równaniu Langevina: m&ddot;x = −∇V − γ˙x + √(2kBT) · ξ(t) gdzie ξ jest gaussowskim szumem białym. Przy zerowej temperaturze i wysokim tarciu trajektoria podąża wewnętrzną współrzędną reakcji (IRC) — ścieżką najbardziej stromego spadku od punktu siodłowego do sąsiednich minimów. Przy skończonej temperaturze cząstka może przekraczać bariery z tempem ∝ exp(−Ea/kT) (Arrhenius), co czyni spontaniczne przeskoki między studniami widocznymi dla wysokich wartości temperatury.

Renderowanie

Mapa kolorów PES i linie konturowe są rasteryzowane raz na pozaekranowym płótnie przy wczytaniu strony (i za każdym razem, gdy zmienia się skala bariery). Ekstrakcja 20-poziomowych konturów wykorzystuje uproszczone poziome skanowanie metodą marching squares: dla każdego wiersza oznaczane są krawędzie poziome, w których potencjał przecina docelową izolinię, i są one renderowane jako półprzezroczyste białe linie. Główna pętla renderowania rysuje wtedy tylko pozaekranową bitmapę, znaczniki punktów specjalnych, ślad cząstki (kreskowany bursztynowy) oraz samą cząstkę — utrzymując płynną animację 60 kl./s.

Uwagi techniczne

Wszystkie trzy symulacje to samodzielne jednostronicowe pliki HTML5/CSS/JS bez żadnych zależności poza wspólnymi komponentami nawigacji/stopki obecnymi już na platformie. Obliczenie SVD wykonywane jest synchronicznie przy wczytaniu strony dla obrazu 64×64 (64 kroki deflacji, każdy z 40 iteracjami potęgowymi) w mniej niż 200 ms na współczesnym laptopie. Pozaekranowy render PES przy typowych rozmiarach viewportu kończy się w mniej niż 100 ms. Z-pinch aktualizuje 3 kroki fizyki na klatkę animacji, zapewniając płynnie wyglądającą dynamikę 60 kl./s bez przeciążania głównego wątku.

Tagi

Algebra liniowa SVD Kompresja obrazów Fizyka plazmy Z-pinch Niestabilności MHD Chemia fizyczna Powierzchnia energii potencjalnej Dynamika reakcji Stan przejściowy Fala 37