Programy pomocnicze - Ising

IsingOrd

(C) L.Pytlik, AGH Kraków, luty 2000




INFORMACJE OGÓLNE


Program IsingOrd służy do demonstracji porządkowania układu złożonego z elementów (np. momentów magnetycznych) ułożonych na sieci kwadratowej i oddziaływujących na siebie tak, że energia każdej pary najbliższych sąsiadów zależy od ich wzajemnej orientacji. W tzw. modelu Isinga elementy ułożone na sieci mogą przybierać tylko dwa stany orientacyjne: w górę (+1) lub w dół (-1). W zależności od znaku stałej oddziaływnia (tzw. całki wymiany) energia pary sąsiadów może być mniejsza przy jednakowej orientacji sąsiadów (układ ferromagnetyczny) bądź przy przeciwnej orientacji sąsiadów (układ antyferromagnetyczny). Dodatkowo elementy układu mogą oddziaływać z zewnętrznym polem (np. magnetycznym) powodującym, że jedna z orientacji staje się preferowana (układ ulega magnetyzacji).

Cały układ umieszczony jest w kontakcie z otoczeniem o danej temperaturze i po odpowiednio długim czasie dochodzi do równowagi z tym otoczeniem, podlegając fluktuacjom (zaburzeniom termicznym) charakterystycznym dla tej temperatury. W wysokich temperaturach, kiedy energia fluktuacji (rzędu kT, gdzie k-stała Boltzmana) jest znacznie większa od zmian energii wprowadzanych przez zmiany wzajemnych orientacji (porządkowanie) to cały układ znajduje się w stanie nieuporządkowanym. Jakiekolwiek zaczątki uporządkowania są niszczone przez fluktuacje termiczne. W miarę obniżania się temperatury zmiana energii jaką można uzyskać przez uporządkowanie orientacji w układzie staje się większa od malejącej coraz bardziej energii fluktuacji cieplnych. Przy odpowiednio niskiej temperaturze następuje wzrost uporządkowania w układzie przez pojawianie się obszarów uporządkowania (klasterów, gron), których rozmiar (długość korelacji) rośnie z obniżaniem temperatury, aż w pewnej temperature nazywanej temperaturą uporządkowania (Tc) rozciąga się na cały obszar próbki.

Program realizuje symulację zachowania układu metodą symulacji statystycznej (symulacji Monte-Carlo), klasycznym algorytmem "Metropolis et al.". W trakcie takiej symulacji wybierany jest losowo jeden z elementów układu i badana jest zmiana energii układu przy zmianie orierntacji elementu na przeciwną. Jeżeli energia po reorientacji jest mniejsza to zmiana zostaje zatwierdzona, jezeli energia po reorientacji jest większa to zmiana zostaje zrealizowana z prawdopodobieństwem zależnym od temperatury (energii fluktuacji cieplnych) i proporcjonalnym do exp (-dE/kT), gdzie dE jest zmianą energii a k stałą Boltzmana. Skalę czasową symulacji wyrażamy najczęściej przez tzw. kroki MCS, to znaczy ilość pojedynczych prób Monte Carlo równą ilości elementów w układzie. W trakcie symulacji program co jakiś czas robi próbkę (zdjęcie) stanu układu i uaktualnia wielkości służące później do obliczenia średnich wielkości termodynamicznych np. energii, magnetyzacji itp. W trakcie swojego działania program zapisuje wyniki kolejnych etapów symulacji do zbioru o nazwie "trace.out", umieszczonego w tym samym katalogu co program.


OPIS EKRANU


Całą prawą, górną część ekranu zajmuje obraz samego układu (na sieci kwadratowej) przedstawiony tak, że elementy skierowane w górę (+1) rysowane są (wyjściowo) kolorem czerwonym, zaś elementy skierowane w dół (-1) rysowane są (wyjściowo) kolorem czarnym. W podstawowej wersji programu ten obszar ekranu mieści siatkę 100x100 elementów i dlatego takie jest ograniczenie programu. Istnieje wersja z zagęszczonym rysowaniem siatki pracująca do rozmiaru 200x200 (dostępna u autora). W lewej górnej części ekranu znajduje się histogram średniej wartości magnetyzacji (zawartej w przedziale -1 do +1) budowany od momentu ostatniego wyczyszczenia historii (statystyki) programu. czyszczenie to następuje automatycznie po zmianie parametrów zewnętrznych (temperatura, pole magnetyczne) lub za życzenie użytkownika przez naciśnięcie klawisza "c" w trakcie symulacji. Pod histogramem są wypisane ilości kroków od początku bieżącego etapu symulacji (MCS) oraz ilość próbek stanu układu pobranych do statystyki (ilość punktów w histogramie). Między histogramem a obrazem układu znajduje się linijka w której pokazywana jest analogowo bieżąca wartość średniej magnetyzacji.

Lewy dolny obszar zawiera wypisane wartości pewnych parametrów symulacji oraz parametrów zewnętrznych. Są to:

Pierwsze dwa z tych parametrów mogą być zmieniane po zakończeniu kolejnego etapu symulacji, dwa pozostałe również w trakcie danego etapu symulacji (klawiszami t,T oraz h,H). Ta ostatnia możliwość została wprowadzona dla demonstracji efektów chłodzenia i ogrzewania oraz magnesowania układu.



Zrzut ekranu programu IsingOrd


Prawa dolna część ekranu zawiera bieżącą pomoc (jakie klawisze odpowiadają jakim komendom) oraz komunikaty. Ta część ekranu wygląda inaczej w trakcie liczenia kolejnego etapu symulacji a inaczej przed rozpoczęciem, bądź po zakończeniu bloku. W trakcie liczenia dostępne są komendy:

Przed rozpoczęciem bądź po zakończeniu liczenia danego etapu w tej części ekranu pokazuje się tzw. Menu, czyli zestaw komend pozwalających wykonanie pewnych dodatkowych obliczeń stanu układu oraz prezentację ich wyników. W Menu znajdują się następujące komendy:

Po wybraniu komend 1,2,3 lub 4 wyświetlony zostaje inny ekran, prezentujący wyniki obliczeń, zaś w prawej dolnej części ekranu pojawiają się podpowiedzi do komend lokalnych w danym ekranie. Służą one do zmiany skali wykresu, jego przesuwania oraz powrotu do ekranu z Menu głównym


OPIS PARAMETRÓW


Początkowe wartości parametrów symulacji wczytywane są przez program ze zbioru o nazwie "is_demo.inp", który musi się znajdować w tym samym katalogu co program główny. Zbiór ten jest zbiorem tekstowym i kolejnych liniach tekstu zawiera następujące parametry (oddzielone od siebie przecinkami):

Pierwsza linia:

Obie te dane mają ograniczenia do wartości N<=100 (N<=200 dla specjalnej wersji programu)

Druga linia:

Trzecia linia:

Wartość ta jest używana w trakcie losowania początkowej konfiguracji układu, która może być niemamagnesowana bądź zawierać namagnesowanie początkowe

Czwarta linia:

Wartości te w zasadzie nie mają istotnego znaczenia w przypadku gdy użytkownik sam steruje działaniem programu, gdyż wtedy można jest ostawić z Menu. Są one jednak istotne gdy program wykonuje pewien cykl obliczeń automatycznie, gdyż wtedy są one przyjmowane dla pierwszego etapu symulacji.

Piąta linia:

W pierwszych dwóch zmiennych przyjmowany jest tzw. krok MCS (Monte Carlo steps per spin), który odpowiada ilości prób Monte Carlo równej ilości elementów w układzie.

Szósta linia zawiera tekstową zmienną kontrolną, która określa czy po wczytaniu danych początkowych program ma wykonywać cykle obliczeń w trybie automatycznym (wartość "AUT") czy też użytkownik sam będzie ręcznie sterował wykonywaniem kolejnych etapów symulacji (wartość "MAN")

Dalsze linie są obojętne w trybie "MAN" natomiast w trybie "AUT" wczytywane są z nich parametry kolejno wykonywanych etapów symulacji:

Przy pracy w trybie "AUT" linie te muszą się kończyć linią następującej treści:
"-1.0,-1.0,1,1"
która powoduje zakończenie działanie programu.


Wszelkie uwagi nt. działania programu, ewentualnych błędów itp. należy zgłaszać pod adresem:

L.Pytlik, AGH, ul. Reymonta 19, pok.306, tel.wewn. 41-59
e-mail: pytlik@novell.ftj.agh.edu.pl




Tutaj można sobie pobrać:


Aktualizacja: 08 października, 2000