Metoda Metropolisa
Z = e E P = 1 Z e E Kanoniczna suma stanów Prawdopodobieństwo wystąpienia mikrostanu U E = P E =Z 1 E e E Wartość średnia energii
Średnia wartość A = d r N A r N exp[ U r N ] d r N exp[ U r N ] U r N = 1 kt Energia oddziaływań Odwrotność temperatury r i r N ={r 1, r 2,..., r N } r i = x, y, z
Prawdopodobieństwo mikrostanu Z d r N exp [ U r N ] Z suma stanów P r N = exp[ U rn ] Z
Załóżmy, że potrafimy generować punkty zgodnie z rozkładem prawdopodobieństwa P(r N ). Wtedy liczba punktów p i generowanych na jednostkę objętości wokół punktu r N jest równa MP(r N ), gdzie M jest całkowitą ilością wygenerowanych punktów. M A 1 M i=1 p i A r N
Rozważmy jak generować punkty w przestrzeni konfiguracyjnej z względnym prawdopodobieństwem proporcjonalnym do czynnika Boltzmanna. Przygotowujemy układ w konfiguracji r N, która oznaczamy jako o (old), która ma nieznikający czynnik Boltzmanna. Exp[- U(o)] Następnie generujemy próbną konfigurację r' N, która oznaczamy jako n (new), przez dodanie małego losowego przesunięcia do konfiguracji o. Czynnik Boltzmanna dla tej nowej próbnej konfiguracji wynosi Exp[- U(n)] Teraz musimy zdecydować czy zaakceptować nową konfigurację czy nie. Jest wiele reguł mówiących jak podjąć taką decyzję aby spełniony był wiąz aby średnio prawdopodobieństwo znalezienia układu w konfiguracji n było proporcjonalne do P(n). Wyprowadźmy schemat Metropolisa do otrzymania prawdopodobieństwa przejścia z konfiguracji o do n o n
o n musi spełniać pewien oczywisty warunek: jeśli dojdzie się do i równowagowego, ten rozkładu nie zostanie on już zniszczony. W równowadze średnia liczba zaakceptowanych próbnych ruchów, których wynikiem jest opuszczenie stanu o musi być równa liczbie zaakceptowanych ruchów próbnych z wszystkich innych stanów n do stanu o. Można narzucić jeszcze silniejszy warunek; mianowicie w równowadze średnia liczba zaakceptowanych ruchów jest ze stanu o do jakiegokolwiek innego stanu n jest dokładnie skasowana przez liczbę ruchów odwrotnych. Ten warunek równowagi szczegółowej implikuje P o o n =P n n o
Macierz przejścia składa się z dwu członów. Pierwszy określa prawdopodobieństwo prawdopodobieństwo przeprowadzenia ruchu próbnego od stanu o do stanu n. o n Następny człon określa sposób w jaki akceptuj się bądź odrzuca nową konfigurację. Prawdopodobieństwo zaakceptowania ruchu próbnego ze stanu o do stanu n oznaczane jest przez. acc o n Stąd otrzymujemy o n = o n acc o n
W oryginalnym schemacie Metropolisa jest symetryczną macierzą o n = n o Dla symetrycznego warunek równowagi szczegółowej wygląda następująco: P o acc o n =P n acc n o Stąd otrzymujemy acc o n acc n o = P n =exp{ [U n U o ]} P o
Warunki Metropolisa Oczywiście prawdopodobieństwo akceptacji nowej konfiguracji nie może przekraczać 1 acc o n =P n / P o acc o n =1 P n P o P n P o Możliwy jest też inny wybór acc, ale oryginalny wybór Metropolisa et al. wydaje się dawać bardziej efektywne próbkowanie przestrzeni konfiguracyjnej od większości innych strategi, które zostały zaproponowane.
Podsumowanie W schemacie Metropolisa prawdopodobieństwo przejścia od stanu o do stanu n dane jest przez o n = o n o n = o n P n /P o P n P o P n P o o o =1 n o o n Nadal pozostaje zdefiniowanie macierzy, ale wiemy, że macierz musi być symetryczna
Należy jeszcze zdefiniować jak zdecydować czy próbny ruch ma być zaakceptowany czy odrzucony. Załóżmy, że wygenerowaliśmy próbny ruch ze stanu o do stan n z U(n) > U(o). Ten ruch próbny powinien być zaakceptowany z prawdopodobieństwem acc o n =exp { [U n U o ]} 0 Aby zdecydować czy zaakceptować czy odrzucić ten ruch próbny, generuje się liczbę losową z rozkładu jednorodnego w przedziale [0,1]. Oznaczmy tę liczbę przez. Prawdopodobieństwo tego, żeliczba losowa jest mniejsza od acc(o -> n) jest równe acc(o -> n). Dlatego akceptujemy ruch próbny jeśli < acc(o -> n) a odrzucamy w przeciwnym razie. Ta reguła gwarantuje, że prawdopodobieństwo akceptacji ruchu próbnego z konfiguracji o do n jest rzeczywiście równe acc(o - > n). Bardzo ważna jest jakość generatora liczb losowych, aby generowane liczby losowe były rzeczywiście jednorodnie rozłożone w przedziale [0,1]. W przeciwnym wypadku próbkowanie Monte Carlo będzie wypaczone.
Procedura Monte Carlo Stwarzamy konfigurację początkową Wprowadzamy zaburzenie tej konfiguracji Sprawdzamy czy można zaakceptować nową konfigurację zgodnie z odpowiednim prawdopodobieństwem Jeśli nowa konfiguracja nie jest zaakceptowana wtedy stara konfiguracja jest liczona jako nowa Wprowadzamy zaburzenie nowej konfiguracji
Układ w kontakcie z termostatem T Otoczenie N,V Układ T temperatura N liczba cząsteczek V - objętość Współrzędne cząsteczek x(i),y(i)
1 2 3 4 5 6 E 1 E 2 =E 3 = E 4 E 5 E 6 E = 1 6 6 i=1 E i
Wybór cząsteczki do przesunięcia N ilość cząsteczek Losujemy indeks cząsteczki, która będzie przesuwana i i=[ N ] 1 Podłoga (część całkowita, cecha, entier) liczby rzeczywistej x, oznaczana, [x], Ent(x) lub E(x) to największa liczba całkowita nie większa od x. Symbolicznie: x =max {k, k Z: k x }
Wybór cząsteczki do przesunięcia i = IDINT( DBLE( N ) * RAN(dummy)) + 1 FORTRAN Funkcja INT(A) jeśli A < 1 wtedy INT(A) = 0 w przeciwnym razie INT(A) jest liczbą całkowitą, której wartość jest największą liczbą całkowitą, która nie przekracza wartości A i której znak jest taki sam jak znak A Podstawiamy współrzędne wylosowanej cząsteczki x old =x i y old = y i
Przesunięcie y x new =x old 2 1 1 d max y new = y old 2 2 1 d max y new y old x x old xnew x old, y old x new, y new
Przesunięcie 2d max P x new =x old 2 1 d max ξ - zmienna losowa d max maksymalne przesunięcie Wydajność symulacji zależy od wartości d max. Wartość d max jest dobierana eksperymentalnie. 0 1
Wartość maksymalnego przesunięcie d max dobiera się metodą prób i błędów, tak aby prawdopodobieństwo akceptacji nowych konfiguracji wynosiło 50%
Periodyczne warunki brzegowe Układ Repliki Układ jest otoczony przez repliki tego układu Aby badać fazy objętościowe układ jest otoczony swoimi replikami, dzięki czemu można założyć, że układ składający się z N cząsteczek jest otoczony przez nieskończoną liczbę cząsteczek.
Jeśli cząsteczka opuściła granice pudła symulacyjnego stosujemy periodyczne warunki brzegowe. IF (x new.lt. 0.0) THEN x new = x new + L ELSEIF( x new.gt.l) THEN x new = x new - L ENDIF FORTRAN IF (y new.lt. 0.0) THEN y new = y new + L ELSEIF( y new.gt. L) THEN y new = y new - L ENDIF L długość boku pudła symulacyjnego (x new,y new ) współrzędne przesuniętego punktu
Sprawdzamy czy cząsteczka pokrywa się z innymi DO j = 1, i-1 xd = x new - x(j) yd = y new - y(j) INCLUDE 'MI.inc' IF ( r 2.LT. 2 ) GO TO 8870 ENDDO DO j = i+1, N xd = x new - x(j) yd = y new - y(j) INCLUDE 'MI.inc' IF ( r 2.LT. 2 ) GO TO 8870 ENDDO IF ( xd.gt. L/2.) THEN xd = xd - L ELSEIF ( xd.lt. - L/2. ) THEN xd = xd + L ENDIF IF ( yd.gt. L/2. ) THEN yd = yd - L ELSEIF ( yd.lt. -L/2. ) THEN yd = yd + L ENDIF r 2 MI.inc = xd*xd + yd*yd Minimum image convention
1. Przesuwamy cząsteczkę 2. Stosujemy periodyczne warunki brzegowe 3. Sprawdzamy czy cząsteczka nie pokrywa się z innymi cząsteczkami Cząsteczka po przesunięciu pokrywa się z inną cząsteczką w pudle symulacyjnym
1. Przesuwamy cząsteczkę 2. Stosujemy periodyczne warunki brzegowe 3. Sprawdzamy czy cząsteczka nie pokrywa się z innymi cząsteczkami Cząsteczka po przesunięciu nie pokrywa się z żadną cząsteczką w pudle symulacyjnym, ale...
... ale pokrywa się z obrazem jednej z cząsteczek.
Minimalny obraz Centrum pudła symulacyjnego ustawia się w miejscu, w którym znajduje się wybrana cząsteczka. Oblicza się oddziaływania wybranej cząsteczki z cząsteczkami znajdującymi się w pudle symulacyjnym oraz w obrazach pudła symulacyjnego.
Potencjał twardych kul U r ={ 0, r, r Twarde dyski (kule) r odległość między kulami U - energia
Potencjał Lenard-Jonesa Energia u r 12 =4 [ r 12 12 r 12 6] ε σ Odległość
Schemat Metropolisa acc o n =min {1,e U new U old } Płyn Lenard-Jonesa acc o n ={ 1, 0, Płyn twardych kul U old energia przed zaburzeniem układu U new energia po zaburzeniu układu β odwrotność temperatury