Magnet jest milionami zgadzających się rzuć monetą
Ferromagnetyk, jak żelazno, mikroskopicznie, to siatka momentów magnetycznych atomowych — spinów — każdy z których chciałby wskazywać taką samą kierunkiem jak sąsiadujące spiny, ponieważ to obniża lokalną energię wymiany. Na wysokich temperaturach, termiczne drętwienie losowo zasymetryzuje spiny szybciej niż ich połączenie może je wyrównać, a materiał nie pokazuje żadnej netto magnetyzacji. Jeśli chłodzi go poniżej krytycznej temperatury, to połączenie wygrywa: sąsiednie spiny zaczynają zgadzać się, obszary wzorcowych spinów rosną, a cała próba może rozwinąć netto moment magnetyczny bez żadnego zewnętrznego pola. To jest samozapoczątkiwany magnetyzacja, a to jest jedna z najprostszych przykładów w fizyce, jak macroscopicza porządkowość wywodzi się z plynnych interakcji.
Hamiltonian
Energia siatki spinów z silacjami ferromagnetycznymi między sąsiadującymi spinami wynosi hamiltonian Heisenberga (lub, dla dyskretnych spinów w górę/w dół, hamiltonian Isinga):
H = -J · Σ⟨i,j⟩ Sᵢ · Sⱼ J = stała silacjowa (J > 0 zachęca do aligmentu równoległego, czyli „ferromagnetycznego”) ⟨i,j⟩ = suma dla każdej pary SĄSIEDNICH w siatce, policzona raz Sᵢ = spin na pozycji i — wektor jednostkowy dla spinów Heisenberga, ±1 dla spinów Isinga Ten hamiltonian jest świadomie prosty: interagują tylko sąsiadujące spiny, a sila silacjowa jest taka sama w całym systemie. Ta prosta forma jest kluczowa — to minimalna model, który reprezentuje prawdziwe przejście fazowe ferromagnetyczne, a także jest rozwiązalny dokładnie w niektórych przypadkach (np. dla 2D modelu Isinga, słynnie, przez Larsa Onsagera w 1944 roku), co sprawia, że służy jako standard do sprawdzenia każdego symulacji i przybliżenia.
H = -J · Σ⟨i,j⟩ Sᵢ · Sⱼ J = exchange coupling constant (J > 0 favours parallel, "ferromagnetic" alignment) ⟨i,j⟩ = sum over each pair of NEAREST NEIGHBOURS on the lattice, counted once Sᵢ = spin at site i — a unit vector for Heisenberg spins, ±1 for Ising spins
Algorytm Metropolisa
Precyzyjne wyliczenie każdego konfiguracji spinu do znalezienia średnich termicznych jest niemożliwe dla dowolnej siatki większej niż kilka miejsc — przestrzeń stanów rośnie eksponencjalnie. Algorytm Metropolisa (1953) zamiast tego tworzy losową turę przez przestrzeń konfiguracyjną, której długość-runną częstotliwość odwiedzania pasuje do rozkładu Boltzmanna, bez kiedykolwiek obliczania funkcji podziału:
powtarzaj dla każdego kroku Monte Carlo: wybierz losowe miejsce i zasugeruj obrót (lub odwrócenie) spinu Sᵢ oblicz ΔE = E_new - E_old (tylko cztery sąsiadujące spiny mają znaczenie — drogie! jeśli ΔE <= 0: przyjmij obrót // zawsze bierzemy poprawienia w przeciwnym razie: przyjmij z prawdopodobieństwem exp(-ΔE / kT) // czasami bierzemy gorsze stan w przeciwnym razie: odrzuć, pozostaw Sᵢ niezmieniony kluczowym szczegółem jest to, że obracania są lokalne: ponieważ tylko cztery (lub sześć w trójwymiarowej sytuacji) najbliższe sąsiadujące więzi zmieniają się, gdy jeden spin obraca się, ΔE jest zawsze małą ilością dodawania niezależnie od wielkości siatki, więc pełny „przegub” po przejściu przez każde miejsce jest drogie. Wykonaj wystarczająco dużo przegubów i zbiór odwiedzonych konfiguracji spełnia równowartość szczegółową — reguła przyjmowania/odrzucającego jest zaprojektowana tak, aby w równowadze przejścia między dowolnymi dwoma stanami miały miejsce zgodnie z rozkładem Boltzmanna na temperaturze T. To jest to, co uzasadnia traktowanie średnich po czasie podczas symulacji jako średnich termicznych.
repeat for each Monte Carlo step:
pick a random site i
propose flipping (or reorienting) spin Sᵢ
compute ΔE = E_new - E_old (only 4 neighbours matter — cheap!)
if ΔE <= 0:
accept the flip // always take improvements
else:
accept with probability exp(-ΔE / kT) // sometimes take worse states
else: reject, keep Sᵢ unchanged
Obserwacja przejścia
Nasłuchaj parametru porządku — średnej magnetyzacji na spin, m = (1/N)·Σ Sᵢ — podczas wolnego opadania temperatury. Powyżej krytycznej temperatury Tc, m oscyluje blisko zera: spiny są w rzeczywistości niemal niezależne po bardzo krótkim zakresie. Poniżej krytycznej temperatury Tc, m ustosunkowuje się do wartości ±1: prawie każdy spin zgadza się ze swoją sąsiednią grupą. Blisko samej krytycznej temperatury siatka pokazuje domeny różnych rozmiarów jednocześnie, oscyluje w sposób niepokojący i długość korelacji (jak daleko wpływ spinu się rozprzestrzeni) rośnie do nieskończoności — cechą charakterystyczną przejścia kontynuacyjnego (drugi stopnia), a także powodem, dla którego zjawiska krytyczne w pobliżu Tc podlegają uniwersalnej skalowalności potęgowej współdzielonej przez różne fizyczne systemy.
Notatki praktyczne dotyczące symulacji
Blisko Tc, algorytm Metropolisa z jednym przesunięciem spinu cierpi na krytyczne opóźnienie: duże domeny zajmują bardzo długie czasy, aby przeprowadzić jedno przesunięcie spinu, co powoduje wolne osiąganie równowagi i dekorelacji dokładnie tam, gdzie najbardziej potrzebne są dobre statystyki. Algorytmy grupowe, takie jak Wolff i Swendsen-Wang, naprawiają to poprzez przeprowadzanie całego zgrupowania korelowanych spinów w jednym ruchu, znacznie zmniejszając czas efektywnego rozpuszczenia się blisko punktu krytycznego. Dla demona interaktywnej powierzchni, działającego w czasie rzeczywistym, standardowy algorytm Metropolisa z jednym przesunięciem spinu jest zwykle wystarczający — wizualne formowanie i rozpuszczanie domen to dokładnie to, co jest zaprojektowane do pokazania, nawet bez przyspieszeń na poziomie grup.
Często zadawane pytania
Dlaczego algorytm Metropolisa czasami akceptuje odwrotnie gorszy przekręt spinu?
Bo symulacja, która tylko zawsze obniża energię, może się zatrzymać w najbliższym minimum lokalnym i nigdy nie próbuje rozszerzyć rzeczywistej rozkładu termalnego. Czasami akceptowanie przekrętu zwiększającego energię, z prawdopodobieństwem exp(-ΔE/kT), jest dokładnie tym co sprawia, że rozkład długoterminowy odwiedzanych stanów pasuje do rozkładu Boltzmanna przy temperaturze T — to są warunki równowagi szczegółowej, które sprawiają, że algorytm Monte Carlo Metropolisa jest statystycznie poprawny, a nie tylko heurystycznym optymalizatorem.
Co naprawdę się dzieje na temperaturze krytycznej?
Poniżej temperatury krytycznej, oscylacje termiczne są zbyt słabe, aby pokonać sprzężenie między sasiednimi spinami, a siatka osiąga stan z nettem magnetyzacją — większość spinów wskazuje w tym samym kierunku. Poniżej niej, agitacja termiczna wygrywa i średnia magnetyzacja spada do zera. Przy dokładnej temperaturze krytycznej współistnieją domeny spinu o każdym możliwym rozmiarze, długość skorelowanej siatki dąży do nieskończoności, a wielkości takie jak magnetyzacja i cecha charakterystyczna podlegają zawsze jednolitym prawom potęgowym.
Nie powinno być żadnej porządku w 2D ferromagnescie Heisenberga na dowolnej niezerowej temperaturze?
Tak, to twierdzenie Mermin-Wagner: spinowe symetrie ciągłe (Heisenberg lub modele XY) w jednym lub dwóch wymiarach nie mogą utrzymać prawdziwego długookresowego porządku dla dowolnej T > 0, ponieważ oscylacje fali spinowej o długich falowych długości zawsze zniszczają go. Jasna przejście ferromagnetyczne widoczne w tej symulacji i w większości demonstracji szkolnych tego typu jest zachowaniem modelu 2D Isinga z dyskretną symetrią, który ma prawdziwe przejście temperaturowe niezerowej temperatury (rozwiązane dokładnie przez Onsagera w 1944 roku).
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz 2D Spin Lattice — Heisenberg Ferromagnet 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ę 2D Spin Lattice — Heisenberg Ferromagnet