Вы находитесь на странице: 1из 25

Symulacje komputerowe w fizyce

Dynamika molekularna

Dynamika molekularna zajmuje si badaniem ewolucji czasowej ukadu czstek oddziaujcych


poprzez siy zachowawcze.

Oddziaywanie czstek opisujemy potencjaami dwuczstkowymi lub wieloczstkowymi.

Potencjay dwuczstkowe dla ukadu N czstek


r r r r
U (r1,K, rN ) = u (rij ) , gdzie rij = ri r j
i j , j >i
gdzie u(r) oznacza potencja pary czstek w odlegoci r, np. potencja Lennarda-Jonesa

12 6
u (r ) = 4 , gdzie i s parametrami.
r r
2

12 6
1 u=4[(/r) - (/r) ]
u/

-1
minimum
1/6
w 2
-2
0 1 2 3 4
r/
Potencja Lennarda-Jonesa.
W przypadku metali stosujemy potencjay wieloczstkowe np. potencja Suttona-Chena dla Pt,
Pd

n m
1/ 2
1 a

r r a
U (r1,K, rN ) = c , gdzie , a, n i m s parametrami
i 2 j i rij j i rij

dobieranymi tak, aby zapewni dane waciwoci materiau (stae spryste, energi kohezji,
itd.)

Opis mikroskopowy ukadu. Hamiltonian

pi2

r r
H= + U (r1,K, rN )
i
2m
ukadu N czstek w objtoci V.

Energia cakowita i pd cakowity s zachowane.

Ewolucja ukadu. Rwnania ruchu


Rwnania Newtona (lub rwnania Lagrana, Hamiltona).

d 2 rk
m = Fk , k = 1,2,K, N , = x, y, z
dt 2

gdzie
rk oznacza -t skadow k-tej czstki.

Fk oznacza -t skadow siy wywieranej na k-t czstk.

Jak obliczy si wywieran na czstk przez pozostae czstki?


r r
r r U ( r1 , K , rN )
r r
Fk = kU (r1,K, rN ) Fk =
rk

Dla oddziaywa dwuczstkowych otrzymujemy

( )
du rkj rk r j
Fk = Fkj = drkj rkj
jk j k
Uwaga. Poniewa obliczanie si to wskie gardo DM, warto wykorzysta symetri Fkj=-Fjk
oraz inne optymalizacje w celu zmniejszenia czasu oblicze tych wielkoci
Przykad kodu do obliczenia energii potencjalnej i si w przypadku potencjau u(r) =1/r, dla
ktrego
rk rj
Fk = Fkj =
jk jk rkj3
struct wsp { double x, y,z;};

double oblicz _Ep_F (int n, const wsp r[], wsp f[])


{double ep=0;
for(int i=0;i<n;i++) {f[i].x=0;f[i].y=0;f[i].z=0;}
for(int k=0;k<n;k++)
for(int j=k+1;j<n;j++)
{
double dx=r[k].x-r[j].x;
double dy=r[k].y-r[j].y;
double dz=r[k].z-r[j].z;
double r=sqrt(dx*dx+dy*dy+dz*dz);
ep+=1.0/r;
double r3=r*r*r;
double df=dx/r3;
f[k].x+=df; f[j].x-=df;
df=dy/r3;
f[k].y+=df; f[j].y-=df;
df=dz/r3;
f[k].z+=df; f[j].z-=df;
}
return ep;}
Ergodyczno

Zakadamy, e hipoteza ergodycznoci stosuje si do badanego ukadu. rednie interesujcych


nas wielkoci (np. energii kinetycznej, wiriau, funkcji korelacyjnych) bdziemy oblicza jako
rednie po czasie

( )
t
1
= limt A r N ( ), p N ( ) d
r r
A NVE t
0
W symulacji dynamiki molekularnej nie bdziemy w stanie obliczy tej granicy. Jednak
znajomo trajektorii ukadu w czasie znacznie wikszym ni charakterystyczny czas ukadu
(np. czas relaksacji) pozwoli nam oszacowa rednie po zespole jako rednie po czasie, jaki
upyn w symulacji.

Numeryczne cakowanie rwna ruchu.

Poza prostymi przypadkami (np. mae drgania), rozwizanie rwna ruchu wymaga
zastosowania metod numerycznych.

Dyskretyzacja czasu tn= t0 +n*h , n=0,1,2, h krok czasowy.

Poniewa interesuje nas trajektoria ukadu o N~103 -106 czstek w dostatecznie dugim czasie,
aby mc oblicza rednie po czasie, to krok czasowy h nie moe by dowolnie may.
Bdziemy stosowa stabilne i w miar szybkie metody rozwizywania ukadw rwna
rniczkowych. Wane jest to, aby metoda zapewniaa zachowanie cakowitej energii nie tylko
w krtkich okresach czasu, ale przede wszystkim, w dugich przedziaach czasu.

Algorytm Verleta

Z rozwinicia w szereg Taylora r(t+h) oraz r(t-h) wok punktu t otrzymujemy zwizek midzy
pooeniami w kolejnych krokach czasowych

h2
r (t + h) = 2r (t ) r (t h) + F (t ) + O(h 4 )
m
W tym wzorze nie wystpuje prdko v(t), jednak jej warto jest niezbdna m.in. do
wyznaczenia energii kinetycznej (temperatury) ukadu.

r (t + h) r (t h)
v(t ) = + O(h2 )
2h

Wprowadzajc oznaczenia

rin ri (tn ) , Fin Fi (tn ) ,

zapiszemy rwnania ruchu w postaci


rin+1 = 2rin rin1 + h 2 Fin / m i = 1,2,K, N , = x, y, z

Algorytm Verleta nie jest algorytmem samostartujcym. eby go uruchomi musimy zna
pooenia kadej czstki w dwch kolejnych krokach czasowych. Natomiast warunki
pocztkowe s zwykle okrelone przez podanie pocztkowych pooe i prdkoci {r(0), v(0)}.

Dlatego te uzupeniamy ukad rwna iteracyjnych o dodatkowy ukad, do obliczenia ( z


mniejsz dokadnoci) pooe w pierwszym kroku czasowym, korzystajc z rozwinicia w
szereg Taylora.

ri1 = ri0 hvi0 + h 2 Fi0 / 2m

Algorytm

1. Inicjalizacja. Z {ri(0), vi(0)} {ri(0), ri(h)}.


2. Obliczenie si w k-tym kroku czasowym, k=2,3, .
3. Obliczenie pooe w k+1 kroku czasowym.
4. Obliczenie prdkoci w k-tym kroku czasowym.

Warto zwrci uwag na to, e do obliczenia prdkoci, energii kinetycznej w k-tym kroku
czasowym, potrzebujemy pooe z k+1 kroku.
Wersja prdkociowa algorytmu Verleta.

Z przedstawionego wyej algorytmu Verleta mona atwo wyprowadzi wersj prdkociow.


Wersj t mona otrzyma z rozwinicia operatora ewolucji ( operatora Liouvilla) za pomoc
transformacji Trottera.

h2 n
n +1
ri = ri + hv +
n n
i
Fi
2m

vin+1 = vin +
h
(Fin +1 + Fin ) i = 1,2,K, N , = x, y, z
2m

Algorytm Verleta w tej postaci jest algorytmem samostartujcym i bardzo wygodnym w


uyciu. W kadej chwili czasowej znamy pooenia i prdkoci czstek. Mimo i nowe
prdkoci zale od si w dwch kolejnych krokach czasowych, to wystarczy tylko raz oblicza
siy, eby otrzyma nowe pooenia i nowe prdkoci.
Algorytm

1. Inicjalizacja. Zada {ri(0), vi(h)} i obliczy { Fi(0)}.


2. W k+1- szym kroku czasowym obliczy
Nowe pooenia rk+1.
Przyczynki do nowych prdkoci vk+1 pochodzce od vk i Fk.
Nowe siy Fk+1 zalene od nowych pooe rk+1.
Przyczynki do nowych prdkoci vk+1 pochodzce od Fk+1.

Algorytmy Verleta s stabilne, odwracalne w czasie, zachowujce energi cakowit oraz


objto fazow.

Metoda Rungego-Kutty.

Metod Rungego-Kutty stosuje si do rozwizywania ukadu rwna rniczkowych


zwyczajnych pierwszego rzdu

dxi
= g i (t , x1 ,K, x N ) i=1,,N
dt

z warunkami pocztkowym x1 (t = 0 ) = x1 ,K, x N (t = 0) = x N


0 0
Dyskretyzacja czasu tn= t0 +n*h

Oznaczenia xin xi (t n ) .

Zapis wektorowy rwna

r
dx r r
x = ( x1 ,K, x N ) , g = ( g1 ,K, g N )
r r
= g (t , x ) ,
dt

Metoda 4-tego rzdu

r n +1 r n 1 r n
( )
rn rn rn
x = x + k1 + 2k 2 + 2k 3 + k 4 + O(h 5 )
6
gdzie
rn r r
k1 = hg (t n , x n ) ,
rn r rn rn
k2 = hg (t n + h / 2, x + k1 / 2) ,
rn r rn rn
k3 = hg (t n + h / 2, x + k 2 / 2) ,
rn r rn rn
k4 = hg (t n + h, x + k 3 ).
Zastosowanie RK4 do rwna ruchu. Przeksztacamy rwnania drugiego rzdu w rwnania
pierwszego rzdu

r&ia = via , v&ia = Fia / m, i = 1,K, N , = x, y, z

W ten sposb otrzymujemy ukad 6N rwna rniczkowych. Warto zauway, e metoda


RK4 wymaga czterokrotnego obliczania si w jednym kroku czasowym.

Metoda predictor corrector

Metoda ta skada si z dwch rodzajw rwna:


wstpnych (predictor)
korygujcych (corrector)

Omwimy tutaj wielowartociow metod predictor-corrector pitego rzdu, ktra jest


przeznaczona do rozwizywania rwna ruchu. W poniszych rozwaaniach ograniczymy si
do przypadku jednej zmiennej (uoglnienie tej metody jest bardzo proste)

m&x& = F , gdzie F=-dU/dx

Rwnania wstpne otrzymujemy z rozwinicia w szereg Taylora pooenia x i jego


pochodnych. W metodzie 5-go rzdu uwzgldniamy cztery kolejne pochodne.
Wprowadmy nastpujce oznaczenie
hk d k x
xk
k! dt k

Rozwijajc w szereg Taylora wielkoci xk(t+h) wok t dla k=0,,4 i pozostawiajc wyrazy do
rzdu h4, otrzymamy ukad 5 rwna wstpnych

x0(t+h)=x0+x1+x2+x3+x4

x1(t+h)=x1+2x2+3x3+4x4

x2(t+h)=x2+3x3+6x4

x3(t+h)=x3+4x4

x4(t+h)=x4

Rwnania korygujce otrzymujemy w nastpujcy sposb. Znajc wstpne pooenie x0 w


czasie t+h obliczamy si, ktra oglnie zaley od pooe czstek
F (t + h) = U {x0 (t + h)}
Std otrzymujemy przyspieszenie w chwili t+h

a(t+h)=F(t+h)/m
a tym samym now warto wielkoci x2

h2
x (t + h) = a (t + h)
c
2
2
ktr uznajemy za poprawn. Tym samym skorygowalimy x2 z rwna wstpnych o warto

x2 = x2c (t + h) x2 (t + h)

T poprawk uywamy w metodzie predictor-corrector do skorygowania pozostaych


wielkoci. Rwnania skorygowane przyjmuj nastpujc posta

xkc (t + h) = xk (t + h) + ck x2 dla k=0,,4

Wspczynniki ck s wybrane tak, aby metoda ta bya stabilna

19 3 1 1
c0 = , c1 = , c2 = 1, c3 = , c 4 =
120 4 2 12

Metoda PC5 nie jest samostartujca. Zalet jej jest to, e w jednym kroku czasowym siy s
tylko raz obliczane.
Porwnanie 3 metod.

Zastosowalimy algorytm prdkociowy Verleta, metod Rungego-Kutty - rk4 oraz metod


predictor-corrector PC5 do rozwizania rwna opisujcych ruch planety wok Soca.
Cakujc rwnania ruchu planety za pomoc kadej z tych metod dla rnych krokw
czasowych h badamy precyzj rozwizania po czasie t=2 .Na poniszym wykresie wida, e
metoda Verleta jest o dwa rzdy metod mniej dokadn od pozostaych. Dziesiciokrotne
zmniejszenie kroku czasowego w algorytmie Verleta powoduje zwikszenie dokadnoci tylko
o dwie cyfry dziesitne.
1E-1
1E-2
Verlet
1E-3
1E-4
|y(2,h)-y_prec(2)|

1E-5
1E-6
1E-7
1E-8 PC5

1E-9
1E-10
1E-11
1E-12 RK4
1E-13
1E-5 1E-4 1E-3 1E-2 1E-1 1E+0
h
Porwnanie dokadnoci cakowania trzema metodami po upywie czasu t=2. Wynik otrzymany
za pomoc PC5 w czasie t=2 z h=1e-4 jest traktowany jako punkt odniesienia.

Badanie stabilnoci tych metod przeprowadzilimy cakujc rwnania z h=0.01 a upyn czas
t=105. Energia cakowita powinna by zachowana. Jednak, wyniki otrzymane za pomoc RK4 i
PC5 pokazuj, e energia wolno, aczkolwiek systematycznie, maleje z czasem.
-0.6713

h=0.01

-0.6714
AV
E

-0.6715

pc5
rk4
-0.6716
0 40000 80000
t
Energia cakowita planety jako funkcja czasu otrzymana trzema metodami z krokiem
czasowym h=0.01.

W przypadku algorytmu Verlerta energia jest obliczona z mniejsz dokadnoci (czerwony pas
na wykresie), ale jej zachowanie jest stabilne. Nie wida dryfu energii.
Przewaga algorytmu Verleta wynika z faktu, e algorytm ten jest odwracalny w czasie i
zachowuje objto w przestrzeni fazowej. Dwa pozostae algorytmy nie maj tych
waciwoci. Mimo, i metody Rungego-Kutty i predictor- corrector s dokadniejsze (w
niezbyt dugich czasach) w porwnaniu z algorytmem Verleta, to nie stosujemy ich w
problemach z zachowan energia cakowit, czyli w dynamice molekularnej w zespole
mikrokanonicznym. Metody te mog by uywane w zespole kanonicznym (Hoover stosowa
metod Rungego-Kutty) do rozwizania rwna Nosego-Hoovera, gdzie bezporednie
zastosowanie algorytmu Verleta jest niemoliwe.

Symulacje metod dynamiki molekularnej

Rwnowaga dynamika molekularna skada si z 3 etapw.

1. Inicjalizacja. Wybr pooe i prdkoci pocztkowych oraz ustawienie wartoci


wszelkim zmiennym dodatkowym.
2. Doprowadzenie ukadu do stanu rwnowagi.
3. Pomiary interesujcych nas wielkoci.
Warunki brzegowe

W dynamice molekularnej, zwykle umieszcza si ustalon liczb czstek N w pudle o


rozmiarze liniowym L i objtoci V=L3. Taki ukad charakteryzowany jest gstoci liczby
czstek
N
=
V
Zmian gstoci realizuje si poprzez zmian objtoci, czyli zmian rozmiaru liniowego
puda przy N=const
1

N 3
L= .

eby bada wasnoci objtociowe gazw, cieczy i cia staych powinno si wyeliminowa
nadmierny wpyw powierzchni w ukadach o maej liczbie czstek. Np. w rzeczywistym
krysztale uamek czstek powierzchniowych jest rzedu N-1/3 10-8, podczas gdy w typowym dla
symulacji ukadzie (N103) wielko ta jest bliska . W tym celu wprowadza si periodyczne
warunki brzegowe polegajce na okresowym powieleniu puda z czstkami wzdu kadej osi
ukadu wsprzdnych.
Przy takich warunkach brzegowych energia potencjalna ukadu wyraa si nastpujco

r r 1 r r r
U ( r1 ,K, rN ) = u ( rij + n L ) , gdzie n = (n x , n y , n z ) , n=0,1,2,,
2 i j i nr
r
a sumowanie po n oznacza sumowanie po obrazach j-tej czstki.
Konwencja najbliszego obrazu.

W przypadku oddziaywa krtkozasigowych (u(r) zanika szybciej ni r-3) wprowadza si


skoczony zasig potencjau rc
u (r ) r rc
uc (r ) =
0 r > rc
Mona atwo pokaza, e dla rc<L/2 istnieje co najwyej jeden obraz czstki j w zasigu
oddziaywania. W ten sposb znacznie poprawia si efektywno oblicze. Jednak obcicie
potencjau wpywa na wyniki symulacji. Np. poprawka do energii potencjalnej wynosi


U c = 2N r 2 (r )u (r )dr .
rc
Poniewa dla duych odlegoci r gsto jest staa (r)=, to ta poprawka bdzie skoczona
dla u(r) zanikajcego szybciej ni r-3. Std te wynika, e nie mona wprowadza obcicia
potencjau dla oddziaywa kulombowskich, czy dipolowych. W przypadku oddziaywania
Lennarda-Jonesa, w wielu symulacjach przyjmowano obcicie rc=2.5, dla ktrego poprawka
do energii potencjalnej stanowi okoo 10%.

W praktyce nie szuka si najbliszego obrazu danej czstki, a znajduje si odlego do tego
obrazu poprzez proste operacje na skadowych wektora rij. Np. dla czstek, ktrych skadowe
pooe przyjmuj wartoci z przedziau [0,L), skadowe rnicy pooe midzy i-t czstk a
najbliszym obrazem j-tej czstki otrzymamy za pomoc instrukcji warunkowej
rij= ri - rj
if (rij <-Lp) rij +=L
else if (rij >Lp) rij -=L

gdzie Lp=L/2.

Uwaga. Obcicie potencjau generuje w rc niecigo, ktra jest rdem dodatkowej


impulsowej siy zmieniajcej cinienie w ukadzie. W celu wyeliminowania tego efektu
wprowadza si przesunicie obcitego potencjau.

u ( r ) u c (r ) r rc
u p (r ) =
0 r > rc

W przypadku oddziaywa dugozasigowych (np. elektrostatycznych) naley uwzgldni


wkady do energii i si od wszystkich obrazw danej czstki. Realizuje si to specjalnymi
metodami numerycznymi np. sumowaniem Ewalda.

Periodyczne warunki brzegowe nie s pozbawione wad, np. ograniczaj fluktuacje dugofalowe
do dugoci L.

Inne warunki brzegowe. Prniowe (swobodne) warunki brzegowe stosuje si np. w przypadku
klastrw atomw, w ktrych niewielka liczba oddziaujcych atomw umieszczona jest w
prni. W przypadku symulacji ukadw z powierzchni stosuje si mieszane warunki
brzegowe, np. periodyczne warunki brzegowe w paszczynie x,y oraz prniowe warunki
wzdu osi z.

Warunki pocztkowe

Pooenia pocztkowe zwykle zadaje si na regularnej sieci, co zapobiega generowaniu


olbrzymich si.

Przykad sie regularna centrowana powierzchniowo (FCC).

Wybieramy liczb czstek w postaci N=4k3, gdzie k oznacza liczb komrek przypadajcych na
wymiar liniowy. Wprowadzamy sta sieci a=L/k. Zadajemy 4 pooenia w wyjciowej
komrce

b1=(0,0,0), b2=a/2(1,1,0), b3= a/2 (1,01) , b4=a/2(0,1,1).

Wsprzdne czstek otrzymamy przesuwajc wektory bi o wektory sieciowe a(kx, ky, kz), gdzie
k=0,1,,k-1.

Moemy wprowadzi losowe zaburzenie pooe pocztkowych, mae w porwnaniu ze sta


sieci a.
Prdkoci pocztkowe.

Rozkad Maxwella-Boltzmanna

1
m 2 mvi2
f (vi ) = exp

2k BT 2k BT

Stosujc metod Boxa-Millera moemy wygenerowa skadow prdkoci za pomoc pary


liczb losowych i1, i2 o rozkadzie jednostajnym na [0,1)

k BT
vi = 2 ln i1 cos(2 i 2 )
m

Taki wybr prdkoci nie zapewni zerowania cakowitego pdu ukadu. Mona to atwo
osign przesuwajc prdkoci o redni prdko

vi
1
= via va ,
via va =
N i

Warto podkreli, e wybr warunkw pocztkowych nie ma wikszego znaczenia w


rwnowagowej dynamice molekularnej, poza okreleniem cakowitej energii ukadu. Interesuje
nas stan rwnowagi, dla ktrego nie znamy warunkw pocztkowych. Pierwszym etapem
symulacji bdzie, zatem doprowadzenie ukadu do stanu rwnowagi.

Osiganie rwnowagi.

Podczas cakowania rwna ruchu obserwujemy zachowanie si w czasie energii kinetycznej,


energii potencjalnej oraz innych wielkoci chwilowych. Celem jest okrelenie czasu osignicia
rwnowagi tR, kiedy wszystkie te wielkoci bd fluktuowa wok rwnowagowych wartoci.

Na poniszym wykresie wida, e w pocztkowym czasie obnianiu energii potencjalnej


towarzyszy wzrost energii kinetycznej przy zachowanej energii cakowitej. Po czasie wikszym
od 200 -300 obserwujemy oscylacje tych wielkoci wok wartoci rwnowagowych. Innymi
sowy ukad osign stan rwnowagi. Widzimy rwnie, e ukad zapomina o warunkach
pocztkowych. Tylko cakowita energia ma warto okrelon w chwili t=0.
1.0

Ekin

0.0

Energia na czstk
h=0.01
-1.0

-2.0 Etot

U
-3.0
0 100 200 300 400 500
czas
Zaleno energii kinetycznej, potencjalnej i cakowitej od czasu w dwuwymiarowym ukadzie
z oddziaywaniem Lennarda-Jonesa.

Вам также может понравиться