S-114250 Laskennallisen tieteen erikoiskurssi Antti Kuronen Teknillinen korkeakoulu Laskennallisen tekniikan laboratorio PL 9400 02015 TKK tammikuu 1999
i Esittely iii Materiaalia iii Esitiedot ja edellytykset iv Yleistä 1 Fysiikan tietokonesimulaatioista 1 Deterministiset ja stokastiset simulaatiomenetelmät 2 Monte Carlo -menetelmän historiasta 5 Esimerkkejä sovellutuksista 6 Statistista fysiikkaa 10 Faasiavaruus 10 Ensemblet 12 Makroskooppisten suureiden laskeminen 17 Todennäköisyyslaskentaa 20 Yleistä 20 Tärkeimmät todennäköisyysjakaumat 23 Ajasta riippuvat ilmiöt 25 Metropoliksen Monte Carlo 35 Monte Carlo -integrointi 35 Metropolis-algoritmi 38 Metropolis-algoritmin parannuksia 49 Monte Carlo -simulaatiot eri ensembleissä 57 Yleistä 57 Mikrokanoninen ensemble 57 Vakiopaine-ensemble 58 Suurkanoninen ensemble 63 Simulaatio-ohjelma käytännössä 71 Reunaehdot 71 Potentiaalienergian laskeminen 74 Pitkän kantaman potentiaalit 78 Alkuehdot 83 Tulosten analysoinnista 85 Satunnaisluvuista 91 Tasaisesti jakautuneiden satunnaislukujen generointi 91 Erilaiset sartunnaislukujakaumat 100 Atomien välisistä vuorovaikutuspotentiaaleista 105 Yleistä 105 Idealisoidut potentiaalit 106 Redusoidut yksiköt 109 Realistiset potentiaalit 110 Tasapainosimulaatioiden sovellutuksia 115 Tilanyhtälö ja faasitasapaino 115 Faasitasapainon simulointi 121 Ajasta riippuvien ilmiöiden simulointi 128 Yleistä 128 Säteilyn kulkeutumisen simulointi 129 Varaustenkuljettajien kulkeutuminen puolijohdemateriaaleissa 143
ii Kineettinen Monte Carlo 144 Yleistä 144 Pinnan kasvu ja pintadiffuusio 149 Van der Waalsin tilanyhtälö 167
iii Esittely Kurssi S-114250 Laskennallisen tieteen erikoiskurssi kuuluu laskennallisen tekniikan pää/sivuaineen vaihtoehtoisiin opintoihin Kurssin laajuus on 4opintoviikkoa ja suoritus koostuu harjoituksista (osuus loppuarvosanassa 40%) ja lopputyöstä (60%) Kevätlukukaudella 1999 luennoitsijana toimii tutkija Antti Kuronen Laskennallisen tekniikan laboratorio puh 451 4846 e-mail AnttiKuronen@hutfi Lukujärjestys on seuraavanlainen: luennot: harjoitukset: ma klo 12-14 sali H402 to klo 9-10 sali F301 ma klo 12-14 sali H402 Päämääränä on perehdyttää opiskelija stokastisiin ja jonkin verran myös deterministisiin simulointimenetelmiin ja niiden soveltamiseen fysikaalisten ilmiöiden tutkimisessa Materiaalia Tärkein materiaali on kurssin luentomoniste, jotka on käsissäsi Muuta materiaalia ja viitteitä löydät kurssin kotisivulta http://wwwlcehutfi/teaching/s-114250 Kotisivulla on mm kurssin ilmoitustaulu Kirjoista voisi mainita seuraavat: 1 M P Allen, D J Tildesley: Computer Simulation of Liquids Varsin kattava ja usein viitattu teos, joka käsittelee molekyylisysteemien
siumlointia Monte Carlo - ja molekyylidynamiikkamenetelmillä (Viittauksissa nimellä Allen-Tildesley) 2 DWHeermann: Computer Simulation Methods in Theoretical Physics Kirja käsittelee sekä deterministisiä (molekyylidynamiikka) että stokastisia (Monte Carlo, Langevin) simulointimenetelmiä (Viittauksissa nimellä Heermann) 3 KBinder, DWHeermann: Monte Carlo Simulation in Statistical Physics: An Introduction Kirjassa käydään läpi Monte Carlo -menetelmän teoreettisia perusteita statistisen fysiikan sovellutusten kannalta (Viittauksissa nimellä Binder-Heermann) 4 DFrenkel, BSmit: Understanding Molecular Simulation: From Algorithms to Applications Kirja rajoittuu -kuten nimikin kertoo- molekyylisysteemien simulointiin Sekä molekyylidynamiikka että Monte Carlo -menetelmät käydään läpi Kirjaan liittyy esimerkkiohjelmia, jotka voi hakea kirjan kotisivulta osoitteesta http://ct-cr6chemuvanl/ frenkel_smit (Viittauksissa nimellä Frenkel-Smit) 5 AKersch, WJ Mokoroff: Transport Simulation in Microelectronics Kirja käsittelee Monte Carlo -menetelmän käyttöä mikroelektroniikan materiaalien prosessoinnin ja komponenttien varauksenkuljetuksen mallintamisessa (Viittauksissa nimellä Kersch-Mokoroff) iv Esitiedot ja edellytykset Statistisen fysiikan perusteet Jonkin ohjelmointikielen hallinta (C tai Fortran) - Kurssin laskuharjoituksissa ja varsinkin lopputyössä laaditaan ohjelmia, joten ohjelmointitaito on välttämätön Tietokoneen käyttömahdollisuus
1 1 Yleistä 11 Fysiikan tietokonesimulaatioista Simulaatioiden (tai laskennallisten menetelmien) asemaa fysiikassa voi parhaiten havainnollistaa seuraavalla kuvalla LUONTO MALLI MITTAUKSET SIMULAATIOT TEORIA KOETULOKSET EKSAKTEJA TULOKSIA MALLISTA TEOREETTISIA ENNUSTUKSIA VERTAILU VERTAILU MALLIN TESTAUS TEORIAN TESTAUS Kuva 11: Tietokonesimulaatioiden asema fysiikassa Simulaatioilla voidaan testata sekä teorioita että malleja Ne kaventavat kuilua teorian ja mittausten välillä Toisaalta tämä menetelmä on algoritminen lähestymistapa: lopputlokseen ei ole oikotietä Äärellisen laskentakapasiteetin vuoksi tutkittavan systeemin koko ja myös ilmiön mallintamisen aikaskaala ovat rajoitettuja Tämän vuoksi ns äärelliseen koon vaikutusten (finite size effects) osuutta simulaatiotuloksiin tulisi aina tutkia Lisäksi simulaatioiden statistisesta luonteesta johtuen tuloksissa on statistista epämääräisyyttä Simulaation suoritus voidaan jakaa eri vaiheisiin kuvan 12 mukaan
2 Malli voi olla hyvinkin ilmeinen (esim kiinteä aineatomit, jotka vuorovaikuttavat potentiaalin välityksellä) tai sitten ei Otetaan esimerkiksi ns Isingin malli Siinä systeemi koostuu spineistä S i, joilla voi olla arvot ± 1 Systeemin energia on Fysikaalinen ilmiö E J S i S j i, j, (11) Malli missä summa käy yli lähinaapuriparien Numeerinen algoritmi j i Simulointiohjelma Tietokonemittaus Kuva 13: Isingin malli Isingin mallilla voidaan jossain määrin kuvata ferromagneettisia aineita, mihin malli alunperin kehitettiinkin Mutta se soveltuu moneen muuhunkin ilmiöön Esimerkiksi kaksikomponenttista metalliseosta voidaan kuvata tällä mallilla A Kuva 12: Simulaation suorituksen vaiheet A B Numeerisen algoritmin avulla pystytään laskemaan mallin antamia tuloksia Se voi olla esim algoritmi, jolla kuljetetaan systeemiä ajassa eteenpäin ( liikeyhtälöt ) tai jolla käydään läpi systeemin faasiavaruutta Simulaatioissa ja kokeellisissa mittauksissa on samankaltaisia piirteitä (raakadatan käsittely, statistiset virheet tuloksissa,), joten usein simulaatioita kutsutaan tietokonemittauksiksi (computer experiments) A A B A A Kuva 14: Kaksikomponenttisen metalliseoksen Isingin malli, B 12 Deterministiset ja stokastiset simulaatiomenetelmät Simulaatiomenetelmät voidaan tietyllä tasolla jakaa deterministisiin ja stokastisiin Esimerkiksi laskettaessa monen vapausasteen systeemin tasapaino-ominaisuuksia jako on selkeä Olkoon systeemin Hamiltonin funktio (eli kokonaisenergia) H, ja tilan määrää vektori x
3 x ( x 1, x 2,, x n ), (12) missä n on vapausasteiden lukumäärä Monesti systeemi koostuu N :stä atomista tai molekyylistä, jolloin n 6N ja x ( r 1, r 2,, r N, p 1, p 2,, p N ) (13) Usein haluamme laskea tietyn suureen A odotusarvon A Z 1 A( x)f( H( x) ) dx Ω, (14) Z Ω f( H( x) ) dx (15) missä Ω on systeemin faasiavaruus ja f( H( x) ) on todennäköisyystiheysfunktio Tämä on ns ensemblekeskiarvo, jota ei suoraan voi laskea simuloimalla, koska koko faasiavaruutta ei voida käydä läpi On tyydyttävä enemmän tai vähemmän edustavaan otokseen Deterministinen tapa antaa systeemin oman dynamiikan (liikeyhtälöt) kuljettaa tilavektoria halki faasiavaruuden Ensemblekeskiarvo korvataan aikakeskiarvolla A t x t A t t 1 A( x() τ ) dτ 0 (16) Ergodisuus takaa, että A A Käytännössä on tyydyttävä siihen, että A A t Tätä menetelmää kutsutaan molekyylidynamiikaksi (MD) x ( m) Stokastisessa menetelmässä systeemin tiloja generoidaan satunnaisesti Markovin prosessilla Useimmiten ollaan kiinnostuneita vain x :n konfiguraatio-osasta eli koordinaateista r i Liikemäärä voidaan integroida erikseen Suureen A odotusarvo on nyt M A M 1 A( x ( m) ) k 1 (17) Tämä menetelmä on Monte Carlo -simulaatio (MC) Ongelmana on kehittää tehokas algoritmi, jolla käydään läpi faasiavaruuden niitä osia, jotka ovat merkittäviä suureen A laskemisen kannalta Yksi algoritmi on kanonisen ensemblen yhteydessä käytettävä Metropolisalgoritmi: 1 generoi uusi tila: x ( m) x ( m + 1) 2 laske energiaero E H( x ( m + 1) ) H( x ( m) ) 3 jos E < 0, hyväksy uusi tila todennäköisyydellä 1, muuten hyväksy se todennäköisyydellä exp( E kt)
4 Voidaan osoittaa (ja myöhemmin kurssilla osoitetaan), että algoritmi generoi tiloja, jotka noudattavat kanonista jakaumaa exp( H( x) kt) MD-menetelmän etuna on, että sillä voidaan tutkia ajasta riippuvia ilmiöitä; Metropolis- MC:llä taas ei Sen avulla toisaalta voidaan tutkia systeemeitä, joilla ei varsinaista sisäistä dynamiikkaa ole ollenkaan Esimerkkinä olkoon Ising-malli: H Ising J S i S j B S ; S (18) i i ± 1 i, j Lisäksi MC-menetelmän avulla voidaan systeemiin tuoda esimerkiksi kemiallisia vapausasteita: algoritmi voi muuttaa atomin tai molekyylin lajia Huomaa, että ylläolevassa esimerkissä ei itse systeemissä (tai sen mallissa) ollut mitään stokastista, satunnaista Integroitaessa faasiavaruuden yli MC-menetelmässä vain käytettiin satunnaisotantaa Itse systeemissä voi olla satunnaiselementtejä i Esimerkiksi gammasäteilyn etenemisessä väliaineessa vuorovaikutusten välimatka on satunnainen suure, joka noudattaa tiettyä todennäköisyysjakaumaa Satunnaisuus voi johtua myös puutteellisesta mallista: jotkut vapausasteet otetaan huomioon stokastisina elementteinä Esimerkkinä Brownin liike, jossa väliaineen vaikutus otetaan huomioon Langevinin liikeyhtälöllä dv m dt γv + R() t, (19) missä γ on kitkavakio ja Rt () ajasta riippuva satunnaisvoima, jonka statistisista ominaisuuksista tiedämme jotain Langevinin liikeyhtälöitä voidaan käyttää kuvaamaan systeemiä ympäröivää lämpökylpyä (kanoninen ensemble) Termiä Monte Carlo käytetään varsin erilaisisten stokastisten simulaatiomenetelmien yhteydessä Karkeasti ottaen voisi sanoa, että Monte Carlo -menetelmiä ovat simulaatiot, joissa käytetään paljon satunnaislukuja
5 13 Monte Carlo -menetelmän historiasta Italialainen matemaatikko Lazzerini arvioi piin likiarvoa heittämällä 3407 kertaa neulan tasavälisten suorien päälle (Buffonin neula) Likiarvoksi tuli 31415929 eli 7 numeron tarkkuudella oikea (sattumalta?) d P hit 2l ------ πd W S Gossett ( Student ) arvioi -jakaumansa korrelaatiokertoimia otantakokeella Lordi Kelvinin assistentti generoi 5000 satunnaista rataa tutkiessaan hiukkasen ja kaarevan välisiä törmäyksiä l Kuva 15: Buffonin neula Varsinainen Metropolis-MC kehitettiin Los Alamosissa 50-luvulla Ensimmäinen julkaisu lienee N Metropolis, A W Rosenbluth, M N Rosenbluth, A H Teller, E Teller, Equation of State Calculations by Fast Computing Machines, J Chem Phys, 21 (1953) 1087 Julkaisussa tutkittiin kaksiulotteisten kovien kiekkojen tilanyhtälöä Kuva 16: Ensimmäinen MC-julkaisu
6 14 Esimerkkejä sovellutuksista Tasapainoilmiöiden simulaatioista otetaan esimerkiksi Lennard-Jones-systeemin (LJ-systeemin) tilanyhtälö LJ-systeemi koostuu atomeista, jotka vuorovaikuttavat LJ-potentiaalin välityksellä V LJ ( r ij ) 4ε σ ---- 12 ---- σ 6 r ij r ij (110) Oheisessa kuvassa on esitetty eri simulaatiomenetelmillä lasketut tilanyhtälöt ρ( P) [F F Abraham Adv Phys 35 (1986) 1] Paineen ja tiheyden yksikköinä on käytetty LJ-systeemin redusoituja yksiköitä Kuvasta näkyvät selvästi eri olomuodot sekä kiteen ylkuumeneminen ja nesteen alijäähtyminen Faasitransitiosta olkoon esimerkkinä kaasun kondensoituminen ja sen klusterimalli [F F Abraham, J Vac Sci Technol B 2 (1984) 534] Kuva 17: Lennard-Jones -systeemin tilanyhtälö MCMonte Carlo, SD,CD,LVdynaamisia menetelmiä Kuva 18: Argonkaasun kondensoituminen
Esimerkkinä kuljetusilmiöstä on gamma- ja elektronisäteilyn eteneminen väliaineessa Analyyttisten ratkaisutapojen ongelmana on mm sekundäärihiukkasten synty: elektronigammakaskadi Ilmiön MC-simuloinnin periaate on seuraava: heijastuminen absorptio 7 läpäisy Seurataan hiukkasta väliaineessa vuorovaikutuksesta toiseen Kuva 19: Sätelilyn eteneminen väliaineessa Vuorovaikutusten välimatkan todennäköisyysjakauma on P() s e s λ λ, missä hiukkasen keskimääräinen vapaa matka λ 1 σ ja on vuorovaikutuksen vaikutusala eli todennäköisyys σ Simuloinnissa generoidaan välimatkoja s ja jokaisen vuorovaikutuksen kohdalla arvotaan vuorovaikutusmekanismi (ks oheinen kuva) Hiukkasen uusi suunta ja energia saadaan ko vuorovaikutuksen differentiaalivaikutusalasta Myös mahdollisen sekundäärihiukkasen tiedot otetaan muistiin Kuvassa 111 on esitetty muutamia MC-menetelmällä simuloituja elektronien ja niiden synnyttämien fotonien ratoja 1 γ 1 γ 2 e - γ γ 1 γ 2 Ze e + e - e - e - γ Ze e -/+ γ 1 e + e - γ 2 e - Kuva 110: Gamma- ja elektronisäteilyn vuorovaikutusmekanismit 1 Elektronin energia lienee muutama sata kev
8 05 cm Kuva 111: Energeettisten (muutama sata kev) elektronien eteneminen vedessä Monte Carlo - simulaatiolla laskettuna Erilaisia kuljetus- ja kasvuilmiöitä voidaan mallintaa kineettisellä Monte Carlolla (KMC) Tärkeitä sovellutuksia ovat mm diffuusio kiinteässä aineessa, kiteen kasvu, säteilyvaurioiden kulkeutuminen KMC perustuu siihen, että kuvaamme systeemiä sellaisella tasolla, että voimme erottaa tietyn joukon diskreettejä tapahtumia E { e 1, e 2,, e N }, joissa systeemi siirtyy tilasta toiseen Lisäksi aikaskaala on sellainen, että mitkään tapahtumat eivät tapahdu samanaikaisesti Otetaan esimerkiksi kiteen kasvu kaasufaasista Tapahtumia ovat: adsorptio, desorptio ja atomin hypyt pinnalla erilaisissa geometrioissa adsorptio desorptio diffuusio diffuusio diffuusio
9 Kuva 112: Kiteen kasvatuksessa havaittavat tapahtumat Algoritmi tämän toteuttamiseksi voisi olla seuraavanlainen: i Generoi tasaisesti jakautunut satunnaisluku ξ [ 0, QC ( k )) ii Valitse tätä vastaava tapahtuma: valitse ensimmäinen indeksi s, jolle pätee s a 1 R a ( C k ) ξ iii Etene uuteen konfiguraatioon toteuttamalla tapahtuma C k + 1 s iv Päivitä niitä todennäköisyyksiä R a, jotka ovat muuttuneet tapahtuman s seurauksena Päivitä Q ja muut tarvittavat tietorakenteet Tässä C k on systeemin tila simulointiaskeleella k, QC ( k ) on kokonaistodennäköisyys aikayksikköä kohti, että systeemi siirtyy johonkin toiseen tilaan ja R a ( C k ) tapahtuman a todennäköisyys aikayksikköä kohti systeemin tilassa C k Lisäksi Monte Carlo -menetelmiä voidaan käyttää kvanttimekaanisten systeemien tutkimiseen (kvantti-monte Carlo, quantum Monte Carlo QMC)
10 2 Statistista fysiikkaa 21 Faasiavaruus Kertaamme seuraavassa lyhyesti kurssilla tarvittavia statistisen fysiikan käsitteitä Pitäydymme klassisessa statistisessa fysiikassa Statistisessa fysiikassa on viimekädessä kyse siitä, miten aineen mikroskooppisesta kuvauksesta saadaan makroskooppisia (termodynaamisia, mitattavia suureita): { qp, } (tai{ r, p} ) makroskooppiset suureet, missä q { q i } ovat systeemin koordinaatit ja p { p i } liikemäärät Systeemiä kuvaa Hamiltonin funktio (eli kokonaisenergia) H( qp, ) Atomisysteemeille Hamiltonin funktio on useimmiten muotoa H( qp, ) H( rp, ) N i 1 p i 2 -------- + 2m i V ( q) (21) Systeemin dynamiikkaa (aikakehitystä) kuvaavat Hamiltonin liikeyhtälöt 1 q k H( qp, ) p k (22) ṗ k H( qp, ) q k (23) Yksinkertaisissa tapauksissa Hamiltonin yhtälöistä saadaan Newtonin liikeyhtälöt dr i dt v i dm (, i v i ) ------------------ F( r (24) dt ij ) i j Jos meillä on N hiukkasta, koko systeemin tilaa voidaan kuvata pisteellä Γ 6N-ulotteisessa faasiavaruudessa Pisteen kulun määräävät liikeyhtälöt Olemme luonnollisesti kiinnostuneita jonkin suureen A A( Γ) arvosta Kokeellisesti pääsemme käsiksi keskiarvoon: A obs 1 A t A( Γ() t ) t lim ------- A( Γ() t ) dt t obs t obs t obs 0 (25) 1 Kuten olemme jo todenneet, aina ei mallissa ole liikeyhtälöitä
11 Simulaatioissa tulisi pystyä laskemaan mikroskooppisesta mallista lähtien Statistisessa fysiikassa käytetään Gibbsin ensemblejä kuvaamaan systeemin todennäköisyyttä olla tietyssä faasiavaruuden pisteessä Tällä tavalla pystytään helpommin laskemaan erilaisia asioita verrattuna siihen, että integroisimme liikeyhtälöitä Olkoon meillä suuri määrä (ensemble) samanlaisia systeemejä (mutta erilaisissa mikroskooppissa tiloissa) Todennäköisyystiheys ρ ens ( Γ)dΓ on verrannollinen faasiavaruuden alkiossa dγ olevien systeemien lukumäärään Tiheys ρ ens on erilainen erilaisille ulkoisille olosuhteille Koska piste Γ on yhtä kuin systeemi, ρ ens ( Γ) riippuu ajasta ρ ens Tiheydelle pätevät säilymislait i ρ käyttäytyy kuten kokoonpuristumaton neste dρ ii Systeemejä ei häviä eikä synny: ens 0 dt ρ iii Tasapainossa ens 0 t A obs Näistä voidaan johtaa tiheydelle liikeyhtälö ρens ( Γ, t) ilρ t ens ( Γ, t), (26) missä Liouvillen operaattori L on il i r i ri + i p i pi (27) Statistisessa fysiikassa aikakeskiarvo siis korvataan ensemblekeskiarvolla A obs A ens A( Γ)ρ ens ( Γ) Γ (28) Eräs tärkeä ja kiistanalainenkin asia on ergodisuus Jos systeemi on ergodinen, tietystä alkutilasta lähdettäessä käydään läpi (liikeyhtälöiden mukaan) kaikki faasiavaruuden pisteet, joissa on nollasta poikkeava ρ ens Todennäköisyystiheydestä käytetään myös normittamatonta muotoa ρ ens ( Γ) w ens ( Γ) ------------------ ; Q ens w ens ( Γ) (29) Q ens Γ
12 w ens ( Γ)A( Γ) Γ A ens -------------------------------------- w ens ( Γ) Γ (210) Tuo normitustekijä eli partitiofunktio Q ens riippuu systeemin makroskooppisista ominaisuuksista Yhteys termodynamiikkaan saadaan määrittelemällä Ψ ens lnq ens termodynaaminen potentiaali (211) Simuloinnin 1 tarkoitus on yleensä käydä läpi faasiavaruutta mahdollisimman tehokkaasti keskiarvojen laskemista varten A obs Kuten aikaisemmin mainittiin tähän tehtävään on kaksi lähestymistapaa i molekyylidynamiikka: A t ii Monte Carlo: A ens (importance sampling) Tärkeimmät ensemblet eli ulkoiset olosuhteen statistisessa fysiikassa ovat i mikrokanoninen: hiukkaslukumäärä, tilavuus ja sisäinen energia vakioita (NVE) ii kanoninen (NVT): kuten edellä, mutta energian sijasta lämpötila vakio iii isoterminen-isobaarinen (NPT): kuten edellä, mutta tilavuuden sijasta paine vakio iv suurkanoninen (µvt): kuten kanoninen ensemble, mutta hiukkaslukumäärän sijasta kemiallinen potentiaali vakio (Huom: Seuraavassa symbolilla V merkitään systeemin tilavuutta ja symbolilla U systeemin hiukkasten välistä vuorovaikutuspotentiaalia) 22 Ensemblet Miten saadaan nuo tiheysfunktiot erilaisille ulkoisille olosuhteille? 2 Gibbsin entropia määritellään ρ ens S k B ρ ens ( Γ) ln( C N ρ ens ( Γ) ) dγ, (212) missä on Boltzmannin vakio k B Mikrokanonisessa ensemblessä systeemin hiukkaslukumäärä, tilavuus ja kokonaisenergia ovat 1 Tarkemmin: tasapainosimulaation 2 Katso esimerkiksi L E Reichl, A Modern Course in Statistical Physics
vakioita (NVE-ensemble) Tasapainotilassa entropia on maksimissaan ja tiheysfunktion on oltava normitettu: 13 ρ ( NVE Γ ) dγ 1 H( Γ) E (213) Käytetään Lagrangen kerrointa etsittäessä tiheysfunktiota: α 0 δ ( α 0 ρ NVE ( Γ) k B ρ NVE ( Γ) ln( C N ρ NVE ( Γ) ) ) dγ 0 (214) H( Γ) E Tästä edelleen ( α 0 k B ln[ C N ρ NVE ( Γ) ] k )δ ρ ( Γ) dγ B 0 NVE H( Γ) E, (215) ja koska variaatio δρ NVE ( Γ) on mielivaltainen, on integrandin hävittävä: α 0 k B ln[ C N ρ NVE ( Γ) ] 0 k B (216) Saamme siis ρ NVE ( Γ) KH, ( Γ) E 0, muulloin (217) Normitusehdon huomioonottaen saadaan lopulta ρ NVE ( Γ) 1 Ω ---------------------------, ( E, V, N) H ( Γ ) E 0, muulloin (218) Kanonisen ensemblen tapauksessa energian sijasta lämpötila on vakio Mukaan tulee siten lisäehto, että sisäisen energian keskiarvo pysyy vakiona: E H( Γ)ρ NVT ( Γ) dγ (219) Variaatioyhtälö tulee nyt muotoon (uusi Lagrangen kerroin ): α E δ [ ( α 0 ρ NVE ( Γ) + α E H( Γ)ρ NVT ( Γ) k B ρ NVE ( Γ) ln[ C N ρ NVE ( Γ) ]) dγ] 0, (220)
14 josta edelleen Samaan tapaan saadaan muiden ensembleiden tiheydet Metropoliksen MC-algoritmi kehitettiin alunperin kanonista ensembleä varten, mutta on helposti yleistettävissä muihinkin ensembα 0 + α E H( Γ) k B ln[ C N ρ NVT ( Γ) ] k B 0 (221) ja ρ NVT ( Γ) 1 ------- exp C N α 0 ----- 1 + ------ H( Γ) k B α E k B (222) Normalisaatiosta seuraa α 0 Q NVT exp 1 ----- k B 1 ------- exp C N α E ------ H( Γ) dγ k B (223) Seuraavaksi määritämme kertoimen α E Kertomalla yhtälö (221) ρ NVT :llä ja integroimalla saadaan ( ) ρ NVT ( Γ) dγ + α E H( Γ)ρ NVT ( Γ) dγ ρ NVT ( Γ) ln[ C N ρ NVT ( Γ) ] dγ 0 α 0 k B k B, (224) jonka voimme kirjoittaa muotoon ln + α E E + S 0 k B Q NVT (225) Helmholtzin vapaa energia määritellään joten voimme tehdä seuraavat identifikaatiot missä partitiofunktio on nyt ja tiheysfunktio A U + ST 0, (226) 1 α E ---, A k, (227) T B TlnQ NVT 1 Q NVT ------- e βh( Γ) d Γ ( β ( k B T ) 1 ) (228) C N ρ NVT ( Γ) 1 --------------------- C N e βh Γ Q NVT ( ) (229)
15 leihin Listataan lopuksi vielä eri ensembleiden tiheysfunktiot ja termodynaamiset potentiaalit 1 Mikrokanoninen ensemble: NVE vakioita (eristetty) ρ NVE ( Γ) δ( H( Γ) E) (230) Q NVE δ( H( Γ) E) Γ 1 ------- C N dr dpδ( H( r,p) E) (231) Termodynaaminen potentiaali on nyt entropia: S ----- lnq k NVE B (232) Kanoninen ensemble : NVT vakioita (suljettu) ρ NVT ( Γ) exp( H( Γ) k B T ) (233) Q NVT exp( H( Γ) k B T ) Γ 1 ------- C N r d dpexp( H( r,p) k B T ) (234) Termodynaaminen potentiaali on Helmholtzin vapaa energia: A --------- lnq k B T NVT (235) Isoterminen-isobaarinen ensemble: NPT vakioita ρ NPT ( Γ) exp( ( H( Γ) + PV) k B T ) (236) Q NPT Γ exp( ( H( Γ) + PV) k B T ) 1 ------- 1 C N ----- drdpexp( ( H( r,p) + PV) k V B T ) 0 (237) Termodynaaminen potentiaali on Gibbsin vapaa energia: G --------- lnq k B T NPT (238) 1 Vakio C N h 3N erilaisille hiukkasille ja N!h 3N identtisille
16 Suurkanoninen ensemble: µvt vakioita ρ µvt ( Γ) exp( ( H( Γ) + µn ) k B T ) (239) Q µvt N Γ, N exp( ( H( Γ) + µn ) k B T ) 1 ------- exp( µ N k B T ) C N drdpexp( H( r,p) k B T ) (240) Termodynaaminen potentiaali on suuri potentiaali: Ω --------- lnq k B T µvt (241) Jos systeemin Hamiltonin funk tio voidaan jakaa koordinaateista ja liikemääristä riippuviin osiin H( r,p) K( p) + U( r), (242) voimme integroida pois liikemääräosuuden: 1 Q NVT ------- d pexp( K( p) k B T ) d rexp( U( r) k B T ) C N (243) Q NVT id ex Q NVT Q NVT, (244) Tässä ideaalikaasuosuus on id Q NVT V N h 2 1 2 ---------------- ; (245) N!Λ 3N Λ -------------------- 2πmk B T ja hiukkasten vuorovaikutuksesta aiheutuva osuus on ex Q NVT d rexp( U( r) k B T ) V N (246) ex Q NVT Metropolis-MC:llä lasketaan vain koordinaateista riippuva osa (konfiguraatio-osa)
17 23 Makroskooppisten suureiden laskeminen Simulaatiossa on tarkoituksena siis laskea makroskooppisia (termodynaamisia) suureita systeemin mikroskooppisten ominaisuuksien avulla Seuraavassa on lyhyesti esitetty tärkeimpien suureiden laskeminen lähinnä atomeista koostuville systeemeille Systeemin sisäinen energia on sen kokonaisenergian keskiarvo E H K + U p i 2 --------- + U( q) 2m i i (247) Lämpötila taas on kineettisen energian keskiarvo T 2 K ------------- 3Nk B N p i 2 1 ------------- 3Nk B --------- 2m i i 1 (248) Systeemin paine P taas saadaan ns viriaalin avulla PV Nk B T + W, (249) missä viriaali W on N W 1 3 -- r i f i i 1, (250) ja on hiukkaseen i kohdistuva voima f i Ylläolevat yhtälöt voidaan johtaa ns yleistetystä ekvipartitioteoreemasta 1 H H p k k, (251) p B T q k k k q B T k Kuten myöhemmin tulemme huomaamaan, ei tasapainoilmiöiden Monte Carlo -simulaatioissa ole ollenkaan mukana hiukkasten liikemääriä, joten lämpötilaa ei voi laskea Toisaalta, jos tutkimme ensembleä, jossa lämpötila on vakio, on se ennalta annettu parametri; siis simulaation syöttötieto Erilaiset vastefunktiot kertovat, miten systeemi reagoi tietyn tilamuuttujan muutokseen Tärkein näistä lienee vakiotilavuuslämpökapasiteetti C V Sehän määritellään sisäisen energian lämpötiladerivaattana 1 Ks Allen-Tildesley kappale 24
18 C V ( T ) E T V (252) Simulaatioilla :n laskemisen voisi toteuttaa tekemällä useita ajoja eri lämpötiloilla ja integroimalla yhtälö (252) Toisaalta kanonisessa ensemblessä fluktuaatioilla ja vastefunktioilla on yhteys 1, josta voimme lämpökapasiteetin laskea missä C V δh 2 k B T 2 C V, (253) δh 2 H 2 H 2 (254) Tämän fluktuaatio-vastefunktio -yhteyden avulla voidaan monia muitakin vastefunktioita laskea; esimerkiksi lämpölaajenemiskerroin, isoterminen puristuvuus jne Termodynaamisten potentiaalien (eli vapaiden energioiden) laskemista tarvitaan monessa yhteydessä Esimerkiksi kiinteän aineen sulamispisteen saa selville, jos pystyy laskemaan kiteisen ja nestemäisen rakenteen Helmholtzin vapaat energiat Potentiaalien laskeminen ei ole kuitenkaan kovin helppoa Esimerkiksi Helmholtzin vapaan energian potentiaalienergiasta riippuva osa 2 voidaan lausua muodossa A ex exp --------- k B T 1 ------------- exp( U k B T ) Qex NVT (255) Toisaalta kanonisessa ensemblessä todennäköisimmät tilat ovat sellaisia, joille on suuri, joten suora keskiarvon lakeminen on tehotonta exp( U k B T ) Käyttökelpoinen tapa laskea energiaeroja on integrointi reversiibeliä reittiä pitkin Esimerkiksi A --- T 2 A --- T 1 T 2 E ----- dt T 1 T 2 (256) tai A --- T 2 A --- T 1 V 2 P --- T d V V 1 (257) Toinen tapa on lähteä idealisoidusta mallista, jonka vapaa energia pystytään laskemaan eksaktisti Olkoon systeemin potentiaalienergia riippuvainen parametrista λ : U U( r, λ) Tällöin saamme seuraavan yhteyden 1 AT, kappale 25 2 A A id + A ex, ks kaavat (235) ja (245)
19 A λ k B T [ ln rexp( U( r,λ) k λ d B T )] U d r exp( U k λ B T ) ---------------------------------------------------- d rexp( U k B T ) U λ (258) Vapaan energian absoluuttiarvo on laskettavissa, jos λ :n avulla voimme kuvata systeemiä, jonka A on laskettavissa (ideaalikaasu, harmoninen kide): A( λ) A( λ 0 ) λ U dλ λ (259) λ 0 Otetaan esimerkiksi harmoninen kide (Einsteinin malli) U( r, λ) U 0 ( r) + λ ( r i r i0 ) 2 N i 1 (260) Kun λ 0, systeemi on alkuperäinen, ja kun λ kasvaa lähestyy systeemi harmonista kidettä Vapaa energia saadaan integraalina A( λ 0) A( λ) λ 0 U dλ' λ (261) Helmholtzin vapaa energia suurella λ :n arvolla voidaan laskea tarkasti A( λ 0) 3Nhω -------------- 3Nk 2 B T 1 e hω k BT ln( ) + O( 1 λ) (262)
20 3 Todennäköisyyslaskentaa 31 Yleistä Seuraavassa käydään läpi kurssiin liittyvää todennäköisyyslaskentaa Todennäköisyyden avulla voimme kuvata enemmän tai vähemmän kvantitatiivisesti jonkin tapahtuman tai kokeen odotettavissa olevaa tulosta Jos tapahtuman A todennäköisyys on P( A), voimme odottaa, että N :n identtisen kokeen tuloksena saamme NP( A) kappaletta tapahtumia A Rajalla N, tapahtumien A osuus lähestyy arvoa P( A) Kokeen otosavaruus (sample space) S on kokeen mahdollisten tulosten joukko Siis jokainen kokeen tulos vastaa yhtä tai useampaa joukon alkiota (otosavaruuden pistettä) Koe tai tapahtuma on S :n osajoukko Todennäköisyys, että saadaan joko tulos A tai B on P( A B) P( A) + PB ( ) P( A B), (31) missä P( A B) on todennäköisyys, että saadaan sekä A että B Jos tapahtumat A 1, A 2,, A m ovat toisensa poissulkevia ja lisäksi A i :t jakavat S :n osiin: A 1 A 2 A m S, (32) niin pätee P( A 1 ) + P( A 2 ) + + P( A m ) 1 Tapahtumat A ja B ovat riippumattomia, jos P( A B) P( A)PB ( ) (33) Ehdollinen todennäköisyys on todennäköisyys, että tapahtuma A toteutuu ehdolla, että myös tapahtuma B toteutuu Se määritellään P( BA) P( A B) ----------------------- PB ( ) (34) Koska P( A B) PB ( A) pätee myös P( A)P( A B) PB ( )PBA ( ) (35) Jos A ja B ovat riippumattomia
21 PBA ( ) P( A) (36) Suure, jonka arvon määrää edelläesitellyn kokeen tulos on satunnaismuuttuja tai stokastinen muuttuja Otosavaruuden S satunnaismuuttuja X on funktio, joka kuvaa S :n alkiot reaalilukujoukolle Jokaisessa kokeessa muuttuja X voi saada jonkin arvon joukosta { } Pari esimerkkiä X :stä: a) kruunujen lukumäärä kolmen kolikon heiton jälkeen b) noppien silmälukujen maksimi, neljän nopan heiton jälkeen Olkoon X stokastinen muuttuja avaruudessa S Olkoot sallitut arvot X( S) { x 1, x 2, } Voimme tehdä X( S) :stä otosavaruuden antamalla jokaiselle x i :lle todennäköisyyden Nämä todennäköisyydet f( x i ) määrittelevät S :n todennäköisyysjakauman ja niille pätee x i f( x i ) 0 (37) f ( x ) i 1 i (38) Usein meillä on tietoa vain jakauman f momenteista: X n x n i f x i i ( ) (39) Ensimmäinen momentti X on keskiarvo ja jakauman standardipoikkema on σ X ( X 2 X 2 ) 12 / (310) Stokastinen muuttuja X voi tietysti saada myös jatkuvia arvoja Esimerkiksi reaalilukuakselin väli a X b voi vastata yhtä tapahtumaa Todennäköisyysjakauma on sellainen paloittain jatkuva funktio, että tapahtuman a X b todennäköisyys on P( a X b) f X ( x) dx Lisäksi jakaumafunktio toteuttaa ehdot b a (311) f( x) ja f X ( x) 0 (312) a b Kuva 31: Todennäköisyysjakauma x f ( X x ) d x 1 (313)
22 Vastaavasti momentit määritellään x n f X ( x) dx X n (314) Jos tunnemme f X :n kaikki momentit, tunnemme jakauman täysin Tämä voidaan osoittaa ns karakteristisen funktion φ X ( k) avulla: φ X ( k) e ikx e ikx f X ( x) dx n 0 ( ik) n X n ------------------------ n! (315) Todennäköisyystiheys on karakteristisen funktion Fourier-muunnos: f X ( x) 1 ----- e 2π ikx φ X ( k) dk (316) Vastaavasti jakauman momentit saadaan karakteristisen funktion derivaattoina: X n 1 i --- n n d φx dk n ( k) k 0 (317) Stokastisia muuttujia voi olla useampiakin Olkoon meillä muuttujat X( S) { x 1, x 2, } ja Y( S) { y 1, y 2, } Näiden tulojoukko X( S) Y( S) {( x 1, y 1 ), ( x 1, y 2 ),, ( x i, y j ), } muodostaa nyt otosavaruuden, kun määrittelemme parin { x i, y j } todennäköisyydeksi PX ( x i, Y y j ) f( x i, y j ) (318) Muuttujien kovarianssi määritellään cov( X, Y) ( x X )( y Y )f( x, y) dxdy xyf ( x, y) dxdy X Y XY X Y (319) ja korrelaatio cor( X, Y) cov( X, Y) ---------------------- σ X σ Y (320) Korrelaatiolla on seuraavat ominaisuudet (i) cor( X, Y) cor( Y, X), (ii) 1 cor( X, Y) 1,
23 (iii) cor( X, X) 1, cor( X, X) 1, (iv) cor( ax + b, cy + d) cor( X, Y), jos ac, 0 (321) Jos muuttujat X ja Y ovat riippumattomia pätevät seuraavat relaatiot (i ) f( x, y) f X ( x)f Y ( y), (ii ) XY X Y, (iii ) ( X + Y) X + Y X 2 X + Y 2 Y, (iv ) cov( X, Y) 0 (322) 32 Tärkeimmät todennäköisyysjakaumat Usein meillä on kyseessä tilanne, jossa on suuri määrä N kokeita, joilla jokaisella on kaksi mahdollista tulosta ( +1 ja 1 ) Esimerkiksi hiukkanen joko siroaa tietyllä matkalla tai sitten ei Olkoot todennäköisyydet tuloksille p ja q Selvästikin p + q 1 Todennäköisyys, että N :n kokeen tuloksena on n 1 kertaa +1 ja n 2 kertaa 1 on P N ( n 1 ) N! -------------- p n 1 q n 2 n 1!n 2! (323) Tämä on ns binomijakauma Sen keskiarvo ja standardipoikkeama ovat n 1 pn, σ2 N Npq (324) Binomijakaumasta saadaan rajalla N ja pn (siis p ei ole kovin pieni) Gaussin jakauma P N ( n 1 ) 1 ----------------- exp 2π σ N 1 -- 2 ( n 1 n 1 ) 2 ----------------------------- σ N 2, (325) missä σ N Npq (326) Gaussin jakauman määräävät kaksi ensimmäistä momenttia n 1 ja σ N Taasen rajalla N ja p 0 siten, että Np a «N (missä a on äärellinen vakio) binomijakaumaa voidaan approksimoida Poissonin jakaumalla
24 P N ( n 1 ) a n 1 e a -------------- n 1! (327) Poissonin jakauman määrää ensimmäinen momentti n 1 a (328) Esimerkkinä binomijakauman käytöstä olkoon yksiulotteinen satunnaiskävelijä Todennäköisyys, että kävelijä ottaa askeleen vasemmalle on p 1 2 ja oikealle q 1 2 Askelten lukumäärä on N ja vasemmalle suuntautuneiden askelten lukumäärä on n 1 ja oikealle n 2 Poikkeama origosta on siis m n 1 n 2 Koska N n 1 + n 2 on m 2n 1 N Suurilla N :n arvoilla poikkeaman tnjakauma saadaan sijoittamalla n 1 ( m+ N) 2 Gaussin jakaumaan (325): P N ( m) 2 ------- 12 πn / e m2 2N (329) Gaussin jakauman tärkeys perustuu ns keskeisraja-arvoteoreemaan (central limit theorem) Haluamme tietää, satunnaismuuttujan Y jakaumasta Y :n arvot vastaavat N :ää muuttujan X mittausta: x y 1 + x 2 + + x N N ----------------------------------------- N (330) f Y ( y n X ) Sen karakteristinen funktio voidaan kirjoit- Tutkitaan todennäköisyysjakaumaa taa muodossa Φ( k) e ik( y N X ) f ( y X ) dy Y N N e ik ( N) ( x 1 X ) + + ( x N X ) φ --- k N N ( ) f X ( x 1 ) f X ( x N ) dx 1 d x N (331) Jos σ 2 X 2 X 2, niin φ --- k e N ik ( N) ( x 1 X ) f ( x ) x 1 d 1 -- ------σ k2 X 1 1 2 2 + N 2 (332) e ik ( N)x 1 Tämä funktio pienenee nopeasti k :n kasvaessa, johtuen oskillaatiotermistä, ja [ φ( k N) ] N pienenee tätäkin nopeammin Olettaen, että jakauman f X ( x 1 ) momentit ovat äärellisiä, saadaan 1 Φ( k) 1 -- ------σ k2, kun (333) 2 2 + O ------ k3 e k2 σ 2 2N N N 2 N 3 N
25 Tästä saamme lopulta todennäköisyystiheydeksi f Y ( y N X ) 1 ----- e ik y N X 2π ( ) 1 ----- e ik ( y N X ) e 2π k2 σ 2 2N dk Φ( k) dk N ----- 1 2πσ -- exp N( y N X ) 2 --------------------------------- 2σ 2 (334) Tämä on tärkeä tulos, sillä sen mukaan jakaumasta f X ( x) riippumatta tulos on gaussinen Ehtona on f X ( x) :n momenttien olemassaolo Toinen tärkeä teoreema on suurten lukujen laki (law of large numbers) 1 Sen mukaan tapahtumien A (todennäköisyys p ) osuus N :stä riippumattomasta kokeesta lähestyy arvoa p, kun N 33 Ajasta riippuvat ilmiöt Tarkastellaan nyt, miten todennäköisyysjakaumat kehittyvät ajan mukana eli tarkastellaan stokastista prosessia Ajan ei välttämättä tarvitse vastata reaalimaailman aikaa Y Määritellään seu- Olkoon meillä systeemi, jota kuvataan yhdellä stokastisella muuttujalla raavat todennäköisyydet P 1 ( y 1, t 1 ) tn että Y :llä on arvo y 1 ajanhetkellä t 1 P 2 ( y 1, t 1 ; y 2, t 2 ) tn että Y :llä on arvo y 1 ajanhetkellä t 1 ja y 2 ajanhetkellä t 2 Vastaavasti voidaan määritellä P n ( y 1, t 1 ; y 2, t 2,, y n, t n ) Luonnollisesti näillekin jakaumille pätevät ehdot P n 0 ja P n ( y, 1 t 1 ; y 2, t, 2, y, n t n ) d y d 1 y 2 dy n 1 Voimme määritellä ajasta riippuvia momentteja y 1 ( t 1 ) y n ( t n ) y 1 y n P n ( y 1, t 1,, y n, t n ) dy 1 d y n, (335) jotka kertovat muuttujan Y korrelaatioista eri ajanhetkillä Prosessi on stationäärinen, jos pätee P n ( y 1, t 1,, y n, t n ) P n ( y 1, t 1 + τ,, y n, t n + τ) (336) 1 LE Reichl, A Modern Course in Statistical Physics, kappale 5H
26 kaikille n :n ja τ :n arvoille Tällöin P 1 ( y 1, t 1 ) P 1 ( y 1 ), (337) ja y 1 ( t 1 )y 2 ( t 2 ) riippuu vain aikaerosta t 1 t 2 Määritellään myös ehdollinen todennäköisyys P 11 ( y 1, t 1 y 2, t 2 ) tn, että Y :llä on arvo y 2 ajanhetkellä t 2, olettaen että sillä oli arvo y 1 hetkellä t 1 P 1 1 saadaan määritelmästä P 1 ( y 1, t 1 )P 11 ( y 1, t 1 y 2, t 2 ) P 2 ( y 1, t 1 ; y 2, t 2 ) (338) Tästä voimme johtaa yhteyden todennäköisyystiheyksille eri aikoina P 1 ( y 2, t 2 ) P 1 ( y 1, t 1 )P 11 ( y 1, t 1 y 2, t 2 ) dy 1 (339) Ehdollinen todennäköisyys voidaan tietysti yleistää: P kl ( y 1, t 1 ; ; y k, t k y k + 1, t k + 1,, y n, t n ) P k + l ( y 1, t 1 ; ; y k + l, t k + l ) --------------------------------------------------------------- P k ( y 1, t 1 ; ; y k, t k ) (340) Jos stokastisen prosessi muistaa vain lähimenneisyytensä, silloin todennäköisyys P n 1 1 ( y 1, t 1 ; ; y n 1, t n 1 y n, t n ) (missä t 1 < t 2 < < t n ) redusoituu muotoon P n 1 1 ( y 1, t 1 ; ; y n 1, t n 1 y n, t n ) P 11 ( y n 1, t n 1 ; y n, t n ) (341) Eli systeemin tilan ajanhetkellä t n määrää vain aikaisempi tila hetkellä t n 1 Todennäköisyys P 11 ( y 1, t 1 ; y 2, t 2 ) on siirtymätodennäköisyys Tällaista prosessia kutsutaan Markovin prosessiksi Sen voisi ajatella olevan liikeyhtälöiden stokastinen vastine Kaikkia prosesseja ei kuitenkaan voi kuvata Markovin prosessina Otetaan kaksi esimerkkiä
27 Normaali (hila)satunnaiskävely (random walk) on Markovin prosessi: Seuraava paikka pisteen A jälkeen määräytyy vain A:sta Mikä tahansa paikoista B, C, D tai E on sallittu Itseään välttävä satunnaiskävely (self avoiding random walk) taas el ole Kävelijä ei saa mennä paikkaan, jossa se on jo ollut Kuvan tapauksessa on sallittu vain paikka B Lisäksi siirtymä F G F on kielletty Tällaisella mallilla on tutkittu esimerkiksi pitkien taipuisien molekyylien ominaisuuksia E A D B F C G Markovin prosessin määräävät siis kaksi funktiota P 1 ( y 1, t 1 ) ja P 11 ( y 1, t 1 y 2, t 2 ) Näistä voimme muodostaa koko hierarkian tiheysfunktioita, esim Kuva 32: Satunnaiskävelijä P 3 ( y 1, t 1 ; y 2, t 2 ; y 3, t 3 ) P 2 ( y 1, t 1 ; y 2, t 2 )P 21 ( y 1, t 1 ; y 2, t 2 y 3, t 3 ) P 1 ( y 1, t 1 )P 11 ( y 1, t 1 y 2, t 2 )P 11 ( y 2, t 2 y 3, t 3 ) (342) Otetaan toinen yksinkertainen esimerkki Todennäköisyys, että tietokone on kunnossa riippuu edellisen päivän tilanteesta Jos kone oli kunnossa eilen on se tänäänkin 60% todennäköisyydellä Jos se oli eilen alhaalla on se tänäänkin 70% todennäköisyydellä On siis kaksi mahdollista tilaa (tila-avaruus) 1 kone käytössä 2 kone alhaalla Siirtymätodennäköisyydet voidaan esittää matriisina Q Q 11 Q 12 06 04 Q 21 Q 22 03 07, (343) eli Qij kertoo siirtymätodennäköisyyden (aikayksikköä kohti) tilasta i tilaan j Matriisille Q pätee tietenkin Q ij 1 j (344) Tästä syystä sitä kutsutaan stokastiseksi matriisiksi Oletetaan, että alussa kone voi olla molemmissa tiloissa samalla todennäköisyydellä eli toden-
28 näköisyystiheys vektorina on P 1 ( ) ( 05 05 ) (345) Seuraavan päivän tilanne saadaan siirtymätodennäköisyysmatriisin avulla (ks kaava (339)): P ( 2) P 1 ( ) Q ( 045 055 ) (346) ja seuraavan P ( 3) P 2 ( ) Q P ( 1) Q 2 ( 0435 0565 ) (347) Pidemmällä aikavälillä todennäköisyys saadaan raja-arvosta P lim P 1 τ ( ) Q τ (348) Tämän tasapainojakauman P tulee toteuttaa ominaisarvoyhtälö PQ P (349) eli m P m Q mn P n (350) Saavutamme siis tasapainojakauman riippumatta, mikä oli jakauma alussa Rajoittavampi ehto kuin (350) on tasapainoehto eli detaljibalanssi (detailed balance) P i Q ij P j Q ji (351) Se, että tästä seuraa (350), nähdään helposti: i P i Q ij P j Q ji P j Q ji i i P j (352) Mitä hyötyä tästä kaikesta sitten on MC:n kannalta? MC:ssä käymme läpi faasiavaruutta satunnaiskävelyllä ja jos meillä on oikein valitut siirtymätodennäköisyydet Q ij lähestymme tasapainojakaumaa riippumatta siitä mikä oli systeemin alkutila Siirtymätodennäköisyyksien tulee siis toteuttaa ehdot
29 (i) Q ij 0 (353) (ii) Q ij 1 (354) j (iii) P i Q ij P j Q ji (355) Nämä ehdot antavat melkolailla vapauksia valita siirtymätodennäköisyydet Yksi esimerkki on vanha tuttu Metropolis 1 --- e E Γ i, Γ j A Q ij 1 ---, jos E 0 A ( ) k B T, jos E > 0 (356) Tutkitaan todennäköisyystiheyden P 1 ( y, t) aikariippuvuutta Kirjoitetaan (339) muotoon P 1 ( y 2, t 1 + τ) P 1 ( y 1, t 1 )P 11 ( y 1, t 1 y 2, t 1 + τ) dy 1 (357) P 1 ( yt, ):n aikaderivaatta on dp 1 ( yt, ) --------------------- dt P 1 ( y, t + τ) P 1 ( yt, ) lim ---------------------------------------------------- τ τ 0, (358) joten saadaksemme yhtälön (357) aikaderivaatan, on meidän laskettava suure P 11 ( y 1, ty 2, t + τ) P 11 ( y 1, ty 2, t) lim ------------------------------------------------------------------------------------------ τ τ 0 (359) Kehitetään ehdollinen todennäköisyys P 11 ( y 1, t 1 y 2, t 1 + τ) sarjaksi τ :n suhteen siten, että normalisaatio P ( 11 y 1, t 1 ; y 2, t ) y 2 d 1 2 (360) säilyy jokaisella τ :n potenssilla Lisäksi pätee P 11 ( y 1, t 1 ; y 2, t 1 ) δ( y 1 y 2 ) (361) Saamme lopulta
30 P 11 ( y 1, t 1 y 2, t 1 + τ) δ( y 1 y 2 ) τ W t1 ( y 1, y)δ( y 1 y 2 ) dy + τw t1 ( y 1, y 2 ) (362) Suure W t1 ( y 1, y 2 ) on ehdollinen todennäköisyystiheys (siirtymätodennäköisyys) aikayksikköä kohti siirtymälle y 1 y 2 aikavälillä [ t 1, t 1 + τ] Suure τ W ( t1 y 1, y ) d y on siis kokonaistodennäköisyys siirtymälle tilasta y 1 mihin tahansa muuhun tilaan aikavälillä [ t 1, t 1 + τ] Eli [ 1 τ W t1 ( y 1, y) dy] on todennäköisyys, että siirtymiä ei tapahdu ajassa τ, [ 1 τ W t1 ( y 1, y) dy]δ( y 1 y 2 ) on todennäköisyystiheys, sille ettei ajassa τ tapahdu siirtymiä ja τw t1 ( y 1, y 2 ) on todennäköisyystiheys siirtymälle y 1 y 2 aikavälillä [ t 1, t 1 + τ] Yhdistämällä (357), (358) ja (362) saadaan lopulta P 1 ( y 2, t) ----------------------- W y t { ( 1, y 2 )P 1 ( y 1, t) W( y 2, y 1 )P 1 ( y 2, t) } dy 1 (363) Tämä on ns masteryhtälö Se kertoo todennäköisyystiheyden P 1 ( y 2, t) muutoksen, joka aiheutuu siirtymistä tilaan y 2 kaikista muista tiloista (1 termi) ja siirtymistä tilasta y 2 kaikkiin muihin tiloihin Tällä tietyllä tavalla itsestäänselvällä yhtälöllä on paljon sovellutuksia MC-menetelmän voi myös hahmottaa masteryhtälön ratkaisemiseksi Jos systeemin tilat ovat diskreettejä masteryhtälössä integraali korvaantuu summalla P 1 ( y 2, t) ----------------------- W y t { ( i, y 2 )P 1 ( y i, t) W( y 2, y i )P 1 ( y 2, t) } i (364) Sillä rajalla, että muutokset eräs approksimaatio y :ssä tapahtuvat pieninä hyppäyksinä, saadaan masteryhtälölle Tällöin W( y', y) pienenee nopeasti y y' :n kasvaessa Voimme kirjoittaa siirtymätodennäköisyyden muotoon W( y', y) W( y' ; y y' ) W( y' ; ξ), missä ξ y y' Masteryhtälö tulee nyt muotoon P 1 ( y, t) --------------------- W( y ξξ ; )P t 1 ( y ξ; t) dξ P 1 yt, ( ) W( y; ξ) dξ (365) Kehitetään tulo W( y ξξ ; )P 1 ( y ξ; t) sarjaksi ξ:n suhteen, jolloin saadaan
31 P 1 ( y, t) --------------------- W( y; ξ)p t 1 ( y, t) dξ ξ W( y; ξ)p1 ( y, t) dξ y 2 1 -- ξ 2 2 + W( y; ξ)p1 y 2 ( y, t ) d ξ + P 1 ( y, t) W( y; ξ) dξ (366) Oikean puolen ensimmäinen ja viimeinen termi kumoavat toisensa, joten saamme P 1 ( y, t) --------------------- t y [ α1 ( y)p 1 ( yt, )] 2 1 + -- [ α 2 y 2 2 ( y)p 1 ( y, t) ], (367) missä α n ( y) on n :n kertaluvun momentti α n ( y) ξ n W( y; ξ) dξ (368) Yhtälö (367) on ns Fokker-Planck-yhtälö Otetaan taas esimerkiksi yksiulotteinen satunnaiskävelijä Yhtälö (339) voidaan kirjoittaa muotoon P 1 ( n 2 l, sτ) P 1 ( n 1 l, ( s 1)τ)P 11 ( n 1 l, ( s 1)τ n 2 l, sτ) n 1, (369) missä n 0, ± 1, ± 2, ilmoittaa kävelijän paikan Suure P 11 ( n 1 l, ( s 1)τ n 2 l, sτ) on ehdollinen todennäköisyys sille, että yksi askel vie n 1 :stä n 2 :een Jos on yhtä todennäköistä mennä sekä oikealle että vasemmalle pätee P 11 ( n 1 l, ( s 1)τ n 2 l, sτ) 1 2 --δ n2, n + 1 1 + 1 2 --δ n2, n 1 1 (370) ja yhtälö (369) tulee muotoon P 1 ( nl, sτ) 1 --P 2 1 (( n 1)l, ( s 1)τ) + 1 --P 2 1 (( n + 1)l, ( s 1)τ) (371) Differentiaaliyhtälö tästä saadaan, kun kirjoitetaan se muotoon P 1 ( nl, sτ) P 1 ( nl, ( s 1)τ) -------------------------------------------------------------------- τ l ----- 2 P 1( ( n + 1)l, ( s 1)τ) + P 1 (( n 1)l, ( s 1)τ) 2P 1 ( nl, ( s 1)τ) -------------------------------------------------------------------------------------------------------------------------------------------------------------- 2τ l 2 (372) Merkitään x nl ja t sτ ja mennään rajalle l 0, τ 0 siten, että
32 D l 2 2τ (373) pysyy äärellisenä Näin saadaan diffuusioyhtälö P1 ( x, t) D P1 ( x, t) t x 2 2 (374) Tämä yhtälö on yksi esimerkki Fokker-Planck-yhtälöstä Ratkaistaan diffuusioyhtälö alkuehdolla P 1 ( x, 0) δ( 0) Fourier-muunnetaan P 1 : P 1( k, t) P 1 ( x, t)e ikx dx (375) Yhtälö tulee nyt muotoon P t 1 ( k, t) Dk 2 P 1( k, t) (376) ja ratkaisu on muotoa P 1( k, t) Ae Dk2 t (377) Alkuehto tulee k -avaruudessa muotoon P 1( k, 0) 1 eli A 1 Ja käänteisellä Fouriermuunnoksella saadaan lopullinen tulos P 1 ( x, t) 1 ----- e 2π ikx e Dk2 t dk 1 ---------------- e x 2 4Dt 4πDt (378) Tämä antaa siis todennäköisyyden, että kävelijä on paikassa x ajanhetkellä t olettaen, että se aloitti paikasta x 0 ajanhetkellä t 0 Tarkastellaan vielä x() t :n momenttien liikeyhtälöitä Ensimmäinen momentin ( xt () xt ()P 1 ( x, t) dx ) liikeyhtälö saadaan esimerkiksi kertomalla diffuusioyhtälö (374) x :llä ja integroimalla x :n yli: d xt () ----------------- 0 dt (379) eli keskimäärin kävelijä ei kulje mihinkään Toiselle momentille ( x 2 () t x 2 ()P t 1 ( x, t) dx ) saadaan vastaavasti
33 d x 2 () t -------------------- 2D dt, (380) josta edelleen x 2 () t 2Dt Tällainen käyttäytyminen on diffuusioprosessille tyypillistä (381) Metropolis-MC:ssä ratkaisemme masteryhtälöä generoimalla oikealla tavalla jakautuneita tiloja systeemin faasiavaruudessa Kuten yhtälöt (353), (354) ja (355) osoittivat, on meillä melko paljon liikkumavaraa valitessamme algoritmia, jonka mukaan liikumme faasiavaruudessa Jos kuitenkin haluamme tutkia systeemin aikakehitystä (eli aika masteryhtälössä on todellinen aika) on siirtymien eri tilojen välillä vastattava todellisia systeemin muutoksia Puhumme ns kineettisestä Monte Carlosta Olkoon meillä systeemin konfiguraatio C, jossa on N eri mahdollista taphtumaa tai siirtymää Esimerkiksi kiteen kasvatuksessa ne voivat olla adatomin hyppäys pinnalla uuteen paikkaan, uuden atomin adsorptio jne Olkoot tapahtuman a nopeudet R a Sekä N että { R a } riippuvat systeemin konfiguraatiosta Eri tapahtumien kokonaisnopeus on Q N QC ( ) R a a 1 (382) Tilojen väliset siirtymätodennäköisyydet voidaan muodollisesti lausua N W ( C C' ) R a V a ( C C' ) a 1, (383) missä V a ( C C' ) on stokastinen matriisi, joka kertoo siirtymän C C' todennäköisyydestä Jokaisen siirtymämekanismin a tulisi tapahtua todennäköisyydellä R a QC ( ) Eli suoraviivainen algoritmi olisi seuraava: R max 1 Laske maksiminopeus ja suhteelliset todennäköisyydet eri mekanismeille P a R a R max ja tee näistä lista alkukonfiguraatiossa 2 Joka simulaatioaskeleella tee seuraavat asiat: a) Poimi yksi konfiguraatiossa C mahdollinen tapahtuma Olkoon sen todennäköisyys P e b) Generoi satunnaisluku väliltä [ 01, ]
34 c) Vertaa satunnaislukua ja todennäköisyyttä P e Jos r P e, päivitä tila C uudeksi ja päivitä mahdollisten tapahtumien lista Muuten pidä tila samana
35 4 Metropoliksen Monte Carlo 41 Monte Carlo -integrointi Monissa tapauksissa Monte Carlo -simulaatiossa on kyse integraalin laskemisesta Yksi tapa MC-integroinnissa on ottaa painottamaton otos y Esimerkiksi piin likiarvo saadaan arpomalla N tot C satunnaislukuparia välillä [ 01), ja laskemalla harmaalle alueelle osuneiden pisteiden lukumäärä B : N hit π 4 käyrän AC alla oleva ala ------------------------------------------------------------------- neliön OABC ala 4N hit N tot ------------ (41) O 1 A x N tot Tuloksen tarkkuus luonnollisesti riippuu :n arvosta ja se käyttäytyy kuten O( N 12 / tot ) Seuraavassa kuvassa esimerkkinä MC-integroinnin tulos ja sen virhe N hit :n funktiona Yksiulotteisessa tapauksessa MC-integrointi häviää selvästi muille (deterministisille) menetelmille; esimerkiksi Simpsonin menetelmälle ( 10 4 funktion arvon laskulla π 3141593 ) Mutta otetaan esimerkki statistisesta fysiikasta On laskettava konfiguraatiointegraali Z NVT e βu dr, missä β 1 k B T, ja U on systeemin potentiaalienergia Olkoon meillä 100 atomia kuutiossa x, y, z [ L 2, L 2] Karkea Simpsonin menetelmä (10 funktion evaluointia/koordinaatti) vaatisi 10 300 funktion evaluointia Konfiguraatiointegraali voidaan tietysti laskea MCintegroinnilla käyttäen painottamatonta otosta: Integraali on nyt i Arvo satunnaisesti kaikkien 100 atomin paikat (konfiguraatio i ) ii Laske potentiaalienergia U() i, ja Boltzmannin tekijä Kuva 41: Piin likiarvon laskeminen MC-integroinnilla 4N hit /N -4N hit /N 35 30 25 20 15 10 10 1 10 0 10-1 10-2 10-3 10-4 10-5 10 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 N Kuva 42: Piin likiarvon MC-laskun tulokset Ylemmässä kuvassa on esitetty itse likiarvo ja alemmassa sen absoluuttinen virhe Z NVT n V ------ N e n βu i i 1 () (42)
36 Tämä on tehoton menetelmä, koska suurin osa otoksista on sellaisia, joille Boltzmannin tekijä e βu on hyvin pieni Oheisen kuvan esittämässä tapauksessa on laskettu 13 LJ-potentiaalilla 1 vuorovaikuttavan atomin potentiaalienergia Painottamattoman otoksen tapauksessa atomit on sijoitettu satunnaisesti 10 10 10 Å suuruiseen kuutioon Metropolis-MC:n tapauksessa taas alkutila arvottiin satunnaisesti, mutta seuraavat tilat generoitiin Metropolis-algoritmilla, jossa T 5K 004 003 002 10 15 10 10 U(i) 001 00 U(i) 10 5-001 -002-003 painottamaton Metropolis-MC exp(-u/(5k k B )) 0 5000 10000 i Kuva 43: LJ-systeemin potentiaalienergia painottamattomalla ja Metropolis-otannalla Nähdään selkeästi, että satunnaisotanta on täysin hyödytön yhtälön (42) tapaisten suureiden laskemisessa Samat vaikeudet koskevat ensemblekeskiarvojen 10 0 10-5 0 5000 10000 i A d Ai ()e βu() i rae βu ------------------------ d re i ------------------------------------ 1 βu n n i 1 e βu() i (43) laskemista Parempi tulos saadaan painotetulla otoksella Olkoon meillä laskettavana integraali F x 2 x 1 dxf( x) (44) Kirjoitetaan se muotoon σ 1 Lennard-Jones: Ur () 4ε -- r 12 σ -- r 6
37 F x 2 dx --------- f() x ρ() x ρ ( x ), (45) x 1 missä ρ() x on mielivaltainen todennäköisyystiheys eli [ ρ() x 0ja dxρ() x 1 ] Otetaan N :n suuruinen otos siten, että valitaan satunnaislukuja ζ, joka noudattavat jakaumaa ρ() x välillä [ x 1, x 2 ] Tällöin x 2 x 1 F f () ζ --------- ρζ ( ), (46) missä keskiarvo otetaan otoksen yli Yksinkertaisin valinta olisi ρ() x jolloin arvio integraalille on 1 ---------------, x, (47) x 2 x 1 x x 2 1 N F x 2 x 1 --------------- f ( ζ N i ) i 1 (48) Edellämainittuun esimerkkiin ( π :n arvon laskeminen) sovellettuna f() x ( 1 x 2 ) 12 ja 0 x 1 ρ() x? Integraalin (46) virheeksi voidaan arvioida seu- Mikä olisi optimaalinen tiheysfunktio raava ( F) 2 f 2 ρ 2 f ρ --------------------------------------------- 2 N (49) Tämä voidaan lausua integraalina x 2 ( F) 2 f ----- 2 ρdx x 1 ρ 2 x 2 x 1 f --ρ dx ρ 2 x 2 x 1 f 2 ρ 2 ----- ρdx x 2 x 1 fdx 2 (410) Nyt etsimme variaatiolaskennan avulla funktion ρ, joka minimoi suureen (410) lisäehdolla, että funktio on normitettu ykköseen:
38 δ ----- δρ x 2 x 1 f 2 x 2 2 x 2 ----- ρ 2 ρdx fdx + λ ρdx x 1 x 1 0 (411) Jättämällä keskimmäinen termi pois (se ei riipu ρ :sta) ja siirtämällä variaatio integraalin sisään saadaan f 2 f -----, (412) ρ 2 + λ 0 ρ ------------------ x 2 f dx x 1 missä on otettu huomioon ρ :n normitus Tulos on muuten hyvä, mutta tiheysfunktion normitustekijässä on funktion itseisarvon integraali! Tästä ongelmasta voimme päästä eroon useammallakin tavalla Välttämättä ei tarvitse pyrkiä täsmälleen (412):n mukaiseen optimiin, vaan riittää, että tiheysfunktio on lähellä optimia Tällöin sen normituksen laskeminen voi olla mahdollista Tietyn jakauman mukaisen otoksen voi myös ottaa tuntematta jakauman normitusta Tästä puhuttiin kappaleessa 33 42 Metropolis-algoritmi Statistisen fysiikan ensemblekeskiarvo (43) voidaan kirjoittaa muotoon A d Γρ ens ( Γ)A( Γ), (413) missä ρ ens on kyseessäolevan ensemblen tiheysfunktio Painotetulla otoksella (painofunktio ρ ) integraalin MC-arvio tulee muotoon A Aρ ens ------------- ρ (414) Lähes aina MC-simuloinneissa valitaan otoksen painofunktioksi tuo ρ ens Se ei välttämättä ole täysin optimaalinen tietyn suureen kannalta, mutta useinhan simuloinneissa halutaan tietoa useasta systeemin ominaisuudesta Tällöin ensemblekeskiarvo tulee yksinkertaiseen muotoon 1 A A run --- A( i) N N i 1 (415) Otoksen generointi tehdään siis Markovin prosessin avulla Prosessin määrittelevät siirtymätodennäköisyydet 1 π mn tilojen välillä ja todennäköisyysjakauma ρ n Eli käytännössä otetaan systeemille jokin alkutila ja arvotaan seuraava tila siirtymätodennäköisyyksien π mn mukaan Käymällä läpi tiloja tarpeeksi kauan, lähestymme prosessin tasapainojakaumaa
39 Jotta lähestyisimme tasapainojakaumaa, tulee siirtymätodennäköisyyksien toteuttaa ehdot (i) π mn 0 (416) (ii) π mn 1 (417) (iii) ρ m π mn ρ n π nm (418) (Tässä ρ on siis tasapainojakauma) n Lisäksi prosessin tulisi olla ergodinen eli mistä tahansa tilasta tulee olla mahdollista siirtyä mihin tahansa toiseen tilaan Voidaan osoittaa, että tämä ehto toteutuu, jos i Prosessi on aperiodinen (eli kaikki tilat ovat aperiodisia) ii Prosessin tilat ovat toistuvia (persistent) ja toistumisaika (recurrence time) on äärellinen π( n) ii 0 Periodiselle tilalle i pätee: > vain, jos kokonaisluku n zt on t :n monikerta ( t > 1 ), ja t on suurin tällainen kokonaisluku Tässä π( n) ii on todennäköisyys, että siirtymä i i tapahtuu n :llä askeleella Jos tila ei ole periodinen, se on aperiodinen Tilan i toistumisaika määritellään seuraavasti Olkoon todennäköisyys, että prosessi, joka alkaa tilasta i käy ensimmäisen kerran tilassa j täsmälleen n :llä askeleella Edelleen, f ( 0) ij 0 f ( n) ij, (419) f ij f ( n) ij n 1, (420) µ i nf n ii n 1 ( ) (421) Tässä f ij on todennäköisyys, että tilasta i aloitettaessa käydään tilassa j Kanonisen ensemblen tapauksessa siis tasapainojakauma on 1 ρ NVT ρ m ------------e Z NVT Um ( ) k B T, (422) missä normitustekijä on 1 Merkintätapa on nyt hieman toinen kuin kappaleessa 33: Q mn π mn, P m ρ m
40 Z NVT d Γe U( Γ) k BT (423) Ehdot (416)-(418) ovat varsin väljät, joten voimme melko vapaasti valita siirtymätodennäköisyydet π mn Koska yhtälössä (418) esiintyy vain todennäköisyystiheyksien suhde, yksi ehdotus siirtymätodennäköisyyksiksi on π mn α mn ; ρ, n ρ m m n ρ n α mn ----- ρ m ; ρ < ρ, m n n m 1 π mn, m n m n (424) Tässä α on symmetrinen stokastinen matriisi α mn α nm Se sisältää tavallaan yritesiirtymätodennäköisyydet Symmetrisyyteen perustuen voidaan osoittaa, että yhtälön (424) siirtymätodennäköisyydet toteuttavat ehdot (416)-(418) Yhtälö (424) ei tietenkään ole ainoa vaihtoehto Barkerin menetelmässä 1 matriisi π saa muodon π mn ρ n α mn ------------------ ρ n + ρ m, m n 1 π mn, m n m n (425) Jos MC-ajo koostuu n :stä simulaatioaskeleesta (otoksesta) saadaan arvio jonkin suureen kanonisen ensemblen keskiarvolle A NVT : A NVT A run + On ( 12 / ) (426) Koska on monia eri mahdollisuuksia konstruoida siirtymätodennäköisyydet, parasta olisi valita sellainen, joka minimoi keskiarvon A run varianssin Eräs mitta on ns statistinen tehottomuus s π mn s lim n nσ 2 ( A run ) ---------------------------- σ 2 ( A), (427) joka mittaa sitä, miten hitaasti ajo suppenee kohti raja-arvoa Merkitään π 1 π 2, (428) jos jokainen π 1 :n ei-diagonaalinen elementti on pienempi kuin π 2 :n Tällöin voidaan osoit- 1 P A Flinn, G M McManus, Phys Rev 124 (1961) 54 ja A A Barker, Aust J Phys 18 (1965) 119
41 taa 1, että s( A, π 1 ) s( A, π 2 ) (429) Jos ei-diagonaalielementit ovat suuria, on todennököisyys pysyä samassa tilassa pieni, ja otos faasiavaruuden on siten parempi Yhtälöiden (424) ja (425) perusteella ( ρ n, ρ m > 0 ) Metropolis-algoritmilla saavutetaan pienempi statistinen tehottomuus Toinen tärkeä asia on se, että algoritmi käy järkevässä ajassa (simulaatioaskelissa) läpi edustavan otoksen faasiavaruudesta Eli kyse on ergodisuudesta Joissain tilanteissa faasiavaruudessa on erillisiä alueita, joiden väliset siirtymät ovat hyvin epätodennäköisiä: faasiavaruudessa on pullonkauloja Kuva 44: Ergodisuus Esimerkkejä tällaisista tapauksista ovat mm kahden faasin koeksistenssi, faasitransitiot yleensä ja nesteet hyvin suurissa tiheyksissä π mn Eräs tärkeä siirtymätodennäköisyyksien piirre on, että siinä esiintyy vain tilojen todennäköisyyksien suhde Tästä syystä emme tarvitse normitettuja tiheyksiä ρ n ρ m ρ m e Um ( ) k BT Γe U( Γ) k BT ---------------------------------- d (430) Tuon normitustekijän laskeminenhan on yhtä vaikeaa kuin ensemblekeskiarvojen Toisaalta emme suoraan pysty laskemaan esimerkiksi vapaata energiaa, joka on oleellisesti normitustekijän logaritmi, tai entropiaa Miten käytännössä toteutetaan nuo yritesiirrot? Se tietysti riippuu täysin tutkittavasta mallista Aina kuitenkin pyritään uusi tila valitsemaan siten, että se ei poikkea paljon edellisestä Tällöin 1 P H Peskun, Biometrika 60 (1973) 607
on suurempi todennäköisyys hyväksyä se Esimerkiksi Isingin mallissa siirto voitaisiin toteuttaa oheisen kuvan mukaisilla tavoilla 42 a) i S i S i i b) j i S i S j S j S i j i Kuva 45: Yritesiirrot Isingin mallissa a) Yhden spinin kääntäminen b) Naapurispinien vaihtaminen Tässä tapauksessa magnetoituma säilyy vakiona Tarkastellaan yksityiskohtaisemmin systeemiä, jossa on N kappaletta atomia tai molekyyliä, jotka vuorovaikuttavat (pari)potentiaalin U( r) välityksellä Systeemin tilan m määräävät atomien paikat { rm i } ( i 1 N ) Liikemäärät unohdamme, koska pystymme niistä ensemblekeskiarvoihin aiheutuvan osan laskemaan eksaktisti (tietysti olettaen jotain suureesta A ) Eli systeemin potentiaalienergia N 1 U( m) Ur ( m ij ) ; r m ij r m i rm j (431) i 1 j i+ 1 määrää siirtymätodennäköisyydet N π mn Stokastisen matriisin α avulla pääsemme tilasta m mihin tahansa sen naapuritilaan n yhtäsuurilla todennäköisyyksillä Ainoa rajoitus oli symmetrisyys α mn α nm
43 Naapuritila voidaan määritellä kuvan mukaan Kuusi atomia ovat tilassa m Uusi tila n muodostetaan valitsemalla satunnaisesti jokin atomeista ( i ) ja siirtämällä sitä paikasta rm i satunnaisesti yhtäsuurella todennäköisyydellä mihin tahansa paikkaan rn i neliön R sisällä N R Tietokoneessa on äärellinen määrä paikkoja neliön alueella, joten muodollisesti matriisi α on R i δr max α mn 1 N R rn, i R 0, rn i R (432) Kuva 46: Naapuritilat atomisysteemin Monte Carlo -simulaatiossa δr max Maksimisiirtymä kontrolloi Markovin ketjun suppenemista C-koodina asia näyttää seuraavanlaiselta rxinew rx[i] + (20*ran(&seed)-10)*drmax ryinew ry[i] + (20*ran(&seed)-10)*drmax rzinew rz[i] + (20*ran(&seed)-10)*drmax Siirtymätodennäköisyys π mn riippuu tilojen m ja n todennäköisyystiheyksien ρ n ja ρ m suhteesta ρ n ----- e δu nm k B T ρ m, (433) missä eri tilojen potentiaalienergioiden erotus on δu nm Un () Um ( ) (434) Tämän laskemiseen ei tarvitse käydä kaikkia atomipareja kuten (431):ssä vaan riittää laskea atomin i vuorovaikutus muiden atomien kanssa: δu nm N j 1 Ur ( n ij ) N j 1 Ur ( m ij ) (435)
44 R i r i m r i n Kuva 47: Yritesiirto atomisysteemin MC-simulaatiossa Jos ehdotettu siirtymä on alamäkeen energiassa ( δu nm 0 ), uusi tila hyväksytään Tämä vastaa ensimmäistä tapausta kaavassa (424), eli tila hyväksytään todennäköisyydellä π mn α mn Jos taas δu nm > 0, uusi tila hyväksytään todennäköisyydellä ρ n ρ m kaavan (424) toisen rivin mukaan Tekijä on tässäkin tapauksessa mukana Tiheyksien suhde on tietysti α nm ρ ----- n ρ m e Un () k BT Z 1 NVT -------------------------------------- ----------------------------------------------- e δumn k T B (436) Z 1 NVT e Um ( ) k BT e Un ( ) k BT e Un ( ) k BT e δu nm k B T Hyväksyminen todennäköisyydellä exp( k B T ) toteutetaan seuraavasti: δu mn i Generoidaan tasaisesti välille [ 01), jakautunut satunnaisluku ξ ii Jos ξ < exp( δu mn k B T ), uusi tila hyväksytään Seuraava kuva selvittää asiaa Jos tämä ylämäkeen tehtävä siirto hylätään, systeemi pysyy vanhassa tilassaan, ja tämä tila lasketaan uudestaan mukaan Siis: jokainen ehdotettu tila hyväksytään todennäköisyydellä k B T min( 1, e δu nm ) (437) Alla on esitetty tyypillisen Metropolis-MC-koodin ydin Kuva 48: Yritesiirron hyväksyminen MC-simulaatiossa
45 deltv vnew-vold deltvb beta*deltv if (deltvb < 750) { if (deltvb < 00) { v v+deltv; rx[i] rxinew; ry[i] ryinew; rz[i] rzinew; naccpt++; } else if (exp(-deltvb) > ran(seed)) { v v+deltv; rx[i] rxinew; ry[i] ryinew; rz[i] rzinew; naccpt++; } } ntrial++; /* laske keskiarvoja */ Tässä deltv δu nm ja beta β 1 k B T Ehdolla deltvb<750 varmistetaan se, ettei eksponenttifunktion laskussa tule ongelmia Siis konfiguraatiot, joissa atomit menevät liikaa päällekkäin hylätään suoraan δr max Miten sitten valitaan parametri? Jos se on liian pieni, suurin osa yritetiloista hyväksytään, mutta faasiavaruutta käydään läpi hyvin hitaasti: peräkkäiset tilat ovat hyvin korreloituneita Jos taas se on liian suuri, huomattava osa yritetiloista hylätään seurauksena taas liian hidas eteneminen faasiavaruudessa Parametrin arvo voidaan simulaation kuluessa helposti asettaa haluttuun arvoon: if (ntrial%nadjst0) { ratio (float)naccpt/(float)nadjst; if (ratio > 05) { drmax*105; } else { drmax*095; } naccpt0; } Tässä asetetaan hyväksymisosuus arvoon 05 Tämä on yleinen arvo, mutta ei ole täysin selvää, että se on optimaalinen Kvantitatiivinen peruste δr maxn :n valinnalle voisi olla atomien paikkojen poikkeamien neliöiden summa simulaatioaskeleen funktiona
46 N ( r) 2 1 --- r( 0) N i r ( n [ ) i ] 2 i 1 (438) Mitä suurempi tämä poikkeama, sitä parempi otos saadaan faasiavaruudesta tietyllä simulaatioaskeleiden määrällä Alunperin Metropolis-MC:ssä yhdellä simulaatioaskeleella siirrettiin vain yhtä atomia Toinen vaihtoehto on siirtää systeemin kaikkia atomeja kerralla Yhden atomin siirrossa systeemin atomeja voidaan käydä läpi tietyssä järjestyksessä tai satunnaisesti Yleensä, kun puhutaan simulaatioaskeleesta, tarkoitetaan N yhden atomin siirtoa Jos systeemin partikkeleiden potentiaali on ns kovan pallon (hard sphere), potentiaali Vr () U( r ij ), r ij r 0 0, r ij > r 0 (439) redusoituu Metropolis-MC-simulaatio yksinkertaiseen muotoon Jos atomin siirrossa kahden atomin välimatka r ij r 0, on tekijä exp( δu nm k B T ) nolla, eikä uutta tilaa hyväksytä Eli siirtoyrityksessä tarkistetaan, ettei siirrettävä atomi mene päällekkäin muiden kanssa Huomaa myös, että lämpötila ei vaikuta simulaation kulkuun millään tavalla r 0 Kuva 49: Kovan pallon potentiaali r Jos simuloitava systeemi koostuu molekyyleistä, joiden atomien välillä on kiinteät sidokset, on myös niiden orientaatio otettava huomioon Molekyylin translaatio toteutetaan edelläesitettyyn tapaan siirtämällä sen massakeskipistettä Orientaatio esitetään usein Eulerin kulmien φθψ,, avulla Kuva 410: Eulerin kulmat
47 Molekyylin satunnainen kierto toteutetaan muuttamalla Eulerin kulmia satunnaisesti: φn i φm i + ( 2ξ 1 1)δ φ max θn i θm i + ( 2ξ 2 1)δ θ max ψ n i ψ m i + ( 2ξ 3 1)δ ψ max, (440) missä ξ j ovat välille [ 01, ] tasaisesti jakautuneita satunnaislukuja ja δ φ max, δθ max ja δψ max ovat Eulerin kulmien maksimimuutokset MC-algoritmissa tilojen m ja n todennäköisyyksien suhde on nyt ρ n ----- ρ m exp[ β( U m + δu nm )] dr n dω n ------------------------------------------------------------------------- exp[ βu m ] dr m dω m, (441) missä avaruuskulmaelementit ovat dω n N dωn i, dωn i ( sinθn i dθ n i dψ n i dφn i ) Ω (442) i 1 Tässä Ω 8π 2 ei-lineaarisille ja Ω 4π lineaarisille molekyyleille Yhden molekyylin pyöräytyksessä suhde voidaan kirjoittaa muodossa ρ ----- n sinθn i exp[ βδu nm ]-------------- sinθm i ρ m (443) Tuon sinien suhteen, joka ottaa huomioon avaruuskulmaelementin koon, on esiinnyttävä joko siirron hyväksymisosassa tai jo yritesiirtotodennäköisyydessä α nm Jälkimmäisessä tapauksessa kierto kulman θ verran valitaan siten, että cosθ on tasaisesti jakautunut: cosθn i cos + ( 2ξ 2 1)δ ( cosθ) max θ i m, (444) ja algoritmin hyväksymistodennäköisyys on normaali min( 1, exp( βδu nm )) Toinen tapa tehdä pyöräytys on valita satunnaisesti jokin kolmesta koordinaattiakselista ja pyöräyttää molekyyliä sen ympäri Jos molekyyliä ei voi mallintaa täysin jäykkänä kappaleena eli joitain sisäisiä vapausasteita on otettava huomioon, voi tilanne tulla hyvinkin monimutkaiseksi Asiasta kiinnostuneet voivat tutustua Allen-Tildesleyn kappaleeseen 472 Lopuksi voisimme hahmotella tyypillisen simulointiajon eri vaiheet oheisessa kuvassa
48 generoi alkutila n1 generoi siirto hyväksy? kyllä aseta uusi tila ei jos n>n th, päivitä laskureita n++ kyllä n<n max? ei analysoi tulokset Kuva 411: Tyypillisen Monte Carlo -simulaation kulku Alkutilan generointi riippuu tietysti käytettävästä systeemistä Sen valinta ei ole kuitenkaan kovin kriittinen, sillä MC-algoritmi vie systeemin tasapainotilaan riippumatta alkutilasta (ainakin periaatteessa) Kuvassa 412 on esitetty, miten Ising-systeemin energia kehittyy simuloinnin kuluessa, kun alkutilana on joko kaikilla hilapisteillä sama tai satunnaisesti arvottu spinin arvo Energia saavuttaa nopeasti tasapainoarvonsa
49 0-500 E(n MC ) -1000-1500 S i +1 S i -1 S i sat -2000 0 10 20 30 40 n MC Kuva 412: Ising mallin MC-simuloinnin alkutilan valinta T 40, J 10, 30 30 -hila 43 Metropolis-algoritmin parannuksia Joskus joudumme tutkimaan systeemejä, joissa normaali MC-algoritmi ei tunnu käyvän läpi faasiavaruutta tarpeeksi tehokkaasti, jotta pystyisimme laskemaan järkeviä keskiarvoja Esimerkiksi Isingin mallin Curie-pisteen läheisyydessä magnetoituman fluktuaatiot kasvavat hyvin suuriksi (ks oheinen kuva) Normaalilla MC-algoritmilla pystytään yhdellä askeleella (spiniä kohti) muuttamaan magnetoitumaa enintään kahdella Jos magnetoituman jakauma levenee, joudutaan laskemaan enemmän MC-siirtoja, jotta saadaan riittävän hyvä otos k eskiarvojen laskemiseen Kun Ising-systeemin lämpötila on korkea, spinit ovat varsin sekaisin, ja yhden sipinin kääntöyrityksellä on suurehko todennäköisyys onnistua Lämpötilan laskiessa lähelle Curie- -400-200 0 200 400 M/ M Kuva 413: Magnetoituman M jakauma 20 20 :n suuruisessa Isingin mallissa 10% (leveä jakauma) ja 45% (kapea jakauma) Curie-pisteen yläpuolella M 2 on magnetoituman maksimimuutos yhdessä MC-siirrossa
pistettä, systeemiin syntyy alueita, joilla spinit ovat samansuuntaisia Tällaisella alueella olevan spinin käännön hyväksyminen ei olekaan kovin todennäköistä 50 a) b) Kuva 414: Kaksiulotteisen Isingin mallin MC-simuloinnilla generoituja konfiguraatioita a) T 16T c, b) T T c Laskettu ohjelmalla xpotts, joka kuuluu xtoys-pakettiin (http://penguinphybnlgov/www/xtoys/xtoyshtml) Tällöin peräkkäiset tilat ovat vahvasti korreloituneita, koska uusia tiloja hyväksytään vähän Kvantitatiivisesti tämä saadaan näkyviin laskemalla esimerkiksi systeemin energian normitettu autokorrelaatiofunktio φ E () i E( 0)Ei () E ------------------------------------------- 2 E 2 E 2, (445) missä indeksi i viittaa simulointiaskeleeseen Jos peräkkäiset tilat olisivat täysin satunnaisia, olisi autokorrelaatiofunktio deltapiikki: φ E () i δ i0 Kuvaan 415 on piirretty Isingin mallin φ E sekä korkeassa että lähelle Curiepistettä sijoittuvassa lämpötilassa Otetaan yksinkertainen esimerkki tapauksesta, jossa normaali Metropolisalgoritmi toimii huonosti 1 Olkoon meillä N kappaletta, jotka on kytketty toisiinsa jousillakappaleet voivat liikkua z -suunnassa E(n MC ) 10 08 06 04 02 00 10 08 06 04 02 00 0 5 10 15 0 200 400 600 800 n MC Kuva 415: Isingin mallin energian autokorrelaatiofunktio lämpötiloissa T 227 T c (yhtenäinen viiva) ja T 40 (katkoviiva)
51 Systeemin potentiaalienergia on Kuva 416: Kytketyt harmoniset värähtelijät U N 1 -- z 2 ( i z i 1 ) 2 i 1, (446) missä ja on kiinnitetty nollaan z 0 z N Tämän systeemin MC-simulointi Metropolis-algoritmilla on yksinkertainen ohjelmointitehtävä Ohjelman tärkeimmät rivit voisivat näyttää seuraavalta: for (imc1;imc<nmc;imc++) { for (i2,i<nchain;i++) { znewz[i]+eps*20*(ranf(&seed)-05); Eold05*(pow(z[i]-z[i-1],2)+pow(z[i+1]-z[i],2)); Enew05*(pow(znew-z[i-1],2)**2+pow(z[i+1]-znew,2)); deenew-eold; if (de<00) { z[i]znew; E+dE; } else { if (ranf(seed)<exp(-beta*de)) { z[i]znew; E+dE; } } } } Mutta ohjelma on varsin hidas faasiavaruuden läpikäymiseen kuten oheinen kuva havainnollistaa Vaikka simulaatio on hyvinkin pitkä ei faasiavaruudesta eli tässä tapauksessa keskimmäisen värähtelijän paikasta saada kovin hyvää otosta Tämä johtuu värähtelijän paikan jakauman leveydestä 1 Esimerkki lainattu W Krauthin julkaisusta Introduction to Monte Carlo Algorithms, Advances in Computer Simulation, toim János Kertész, Imre Kondor, Lecture Notes in Physics 501 (Springer Verlag, Berlin, 1998), saatavissa myös preprint-palvelimesta http://babbagesissait/, julkaisu cond-mat/ 9612186
52 os haluamme uusien tilojen hyväksymistodennäköisyydeksi puolikkaan, on maksimisiirron pituus (eps edellisen sivun listauksessa) pieni verrattuna värähtelijän z N 2 paikkajakaumaan Tämä jakauma taas on leveä, koska koko ketjun poikkeama on luokkaa N Ongelma johtuu tässä tapauksessa siitä, että värähtelijät on vahvasti kytketty toisiinsa Useamman värähtelijän poikkeutus samalla kertaa ei auta tilannetta, sillä uuden tilan energia on hyvin todennäköisesti niin suuri, että se hylätään Ratkaisuna on pyrkiä valitsemaan yritesiirrot siten, että sen lisäksi, että ne usein hyväksytään, ne käyvät läpi faasiavaruutta tarpeeksi tehokkaasti Kuvan mukaan, jos yritämme kasvattaa yritesiirron pituutta, tulee normaalin Metropolisalgoritmin yritesiirron jakauma α mn on hyvin erilaiseksi verrattuna lopulliseen hyväksymistodennäköisyyteen 20 z N/2 Kuva 417: Kytkettyjen värähtelijöiden keskimmäisen kappaleen paikan jakauma (tasainen käyrä), kun N 40 Lisäksi kuvaan on piirretty värähtelijän polku 400 000 simulointiaskeleen aikana Yhtälön (424) mukaisesti siirtymätodennäköisyys tilasta m tilaan n voidaan kirjoittaa muodossa π mn p mn α mn p mn, (447) missä on yritesiirron hyväksymistodennäköisyys Tässä tapauksessa (ja edellisen luvun atomisysteemin tapauksessa) yritetodennäköisyyden jakauma oli tasainen: Kuva 418: Värähtelijät z i 1, z i ja z i + 1 Äärimmäiset värähtelijät on nyt kiinnitetty Tumma alue kuvaa z i :n jakaumaa, vaalea alue normaalin Metropolis-algoritmin yritesiirron jakau- 1, δz ε α mn 0, δz > ε (448) Tästä johtuu hylkäyksien suuri määrä Kirjoitetaan detaljibalanssi (418) siten, että siirtymätodennäköisyys on muotoa (447): ρ m α mn p mn ρ n α nm p nm (449) On helppo nähdä, että oikea jakauma saavutetaan, kun hyväksymistodennäköisyydeksi otetaan
53 p mn min 1 ρ n -------- α nm (, -------- ) α mn ρ m (450) Meillä on siis vapaat kädet valita sopiva yritesiirtotodennäköisyys huomioon yhtälön (450) mukaisella hyväksymistodennäköisyydellä Sen painotus otetaan Lisähankaluuksia voi kuitenkin tuoda se, että algoritmissa on pystyttävä laskemaan yritetodennäköisyydet sekä siirtymälle m n että siirtymälle n m Entä jos asetamme yritetodennäköisyyksiksi α mn ρ n ja α nm ρ m? Tällöin hyväksymistodennäköisyys on ykkönen, eli yhtään siirtoa ei hylätä Toisaalta, Metropolis-algoritmi otettiin käyttöön juuri sen vuoksi, että otoksen laskeminen jakaumasta on mahdotonta Joskus tämä on kuitenkin mahdollista Otetaan taas esimerkiksi nuo värähtelijät Jos z i 1 ja on kiinnitetty, on :n jakauma z i + 1 z i ρ m α mn ρ ii 1 i + 1, exp[ β( z i z i ) 2 ], (451) missä, z z i 1 + z i + 1 i --------------------------- 2 Todennäköisyyttä (451) voimme käyttää yriteteodennäköisyytenä Toisaalta siinä tarvitaan gaussisesti jakautuneita satunnaislukuja Näiden generoinnissa käytetään usein hylkäystekniikkaa Voimme kuitenkin laajentaa yhtälö (451) integroimalla useamman värähtelijän yli: ρ ii 2 i + 2, exp[ 2β( z i z i ) 2 ], (452) missä z z i 2 + z i + 2 i --------------------------- 2 Kaavalla (452) voimme arpoa z i :n uuden paikan ja kaavalla (451) z i 1 :n ja z i + 1 :n paikat Algoritmia voidaan jatkaa siten, että koko ketjun värähtelijöiden paikkoja päivitetään kerralla, eikä hylkäyksiä tarvita (paitsi generoitaessa gaussisia satunnaislukuja) Käytännössä asiat eivät ole näin hyvin Mutta usein algoritmi (450) toimii hyvin, vaikka α ja ρ eroavat toisistaan Käytetään taas esimerkkinä värähtelijöitä Lisätään energiaan (446) pieni häiriö
54 N U 1 γ fz ( i ) i 1 (453) Jokaisen konfiguraatio energia on nyt Ũ( z 1,, z N ) U 0 + U 1, (454) missä U 0 on kaavan (446) antama Käyttämällä yritetodennäköisyyttä α mn exp[ βu n 0 ] (joka on ideaalinen häiriintymättömälle systeemille) saadaan hyväksymistodennäköisyydeksi exp[ βu n 1 ] p mn min( 1, ---------------------------- ) exp[ βu m 1 ] (455) Tämähän on tuttu Metropolis, mutta mukana on vain energian häiriötermi Yritetodennäköisyyden muokkaamista simuloinnin nopeuttamiseksi on sovellettu luonnollisesti hyvin monenlaisissa systeemeissä Esimerkiksi atomisysteemien simuloinneissa yritesiirrot voidaan painottaa atomiin kohdistuvan voiman mukaan Puhutaan voimia suosivasta MC:stä Spinsysteemien simuloinnissa ns klusterialgoritmi nopeuttaa simulointia huomattavasti Tutkitaan Isingin mallia Systeemin energia on muotoa E J S i S j ; S i ± 1 (456) i, j Systeemillä (kun J > 0 ) on olomuodon muutos pisteessä β ln( 1 + 2) 2 Tällöin esimerkiksi magnetoituman fluktuaatiot kasvavat suuriksi (ks kuva 413) Jos algoritmi kääntää vain yhden spinin kerrallaan, on otoksen kerääminen hidasta Kuten kytkettyjen värähtelijöiden tapauksessa, ei yksinkertainen usean spinin kääntäminen toimi Klusterialgoritmissa muodostetaan samansuuntaisista spineistä klusteri lähtemällä jostain spinistä ja lisäämällä siihen todennäköisyydellä P samansuuntaisia naapureita Oletetaan, että lähdemme rakentamaan klusteria oheisen kuvan harmaalta osalta Yritetodennäköisyys α mn koostuu termistä, joka kertoo klusterin sisäisten ++ -linkkien osuuden, αint mn, ja klusterin reunaa kuvaavasta termistä Tämä reuna koostuu kahden tyyppisistä linkeistä: sisä ulko lukumäärä + - c 1 + + c 2 Kuva 419: Klusterin muodostaminen Reunan osuus systeemin energiassa on
55 U C c 2 + c 1 ( J 1 ) (457) Kuvan 419 esimerkissä c 1 10 ja c 2 14 Yritetodennäköisyys on nyt α mn α mn int ( 1 P) c 2 (458) ρ m Todennäköisyystiehyksiä laskettaessa emme tarvitse termejä, jotka eivät muutu klusterin käännön seurauksena Eli vain reunan energia otetaan huomioon: ρ m exp[ β( c 1 c 2 )] (459) Päinvastaisessa siirtymässä ( n m, ks kuva 420) reuna koostuu seuraavanlaisista linkeistä: sisä ulko lukumäärä - - c 1 - + c 2 Reunan osuus energiasta on U C c 1 + c 2 (460) Yritetodennäköisyys on nyt α nm int ( 1 P) c 1 α nm (461) Kuva 420: Toteutettu klusterisiirto αint nm Termi on sama kuin päinvastaisessa siirtymässä Kuten edellä todennäköisyystiheys on ρ n exp[ β( c 2 c 1 )] (462) Detaljibalanssi tulee muotoon e β ( c 1 c 2 ) ( ) ( 1 P) c 2 pmn e β c 2 c 1 ( 1 P) c 1 pnm (463) Tästä saamme lopulta hyväksymistodennäköisyyden ( ) p mn min 1 e β c 2 c 1 ( 1 P) c 1 (, -------------------------------------------- e β ( c 1 c 2 ) ( 1 P) c ) 2 (464) Algoritmi on seuraavanlainen: i Ota systeemistä yksi spin satunnaisesti ii Lisää siihen viereisiä samansuuntaisia spinejä todennäköisyydellä P iii Lopeta klusterin kasvattaminen, kun yhtäkään sen reuna ylittävää linkkiä ei ole valittu iv Käännä klusterin spinit todennäköisyydellä (464)
56 Huomaa, että jos asetamme hylkäyksiä 1 P exp( 2β), saamme algoritmin, jossa ei ole ollenkaan
57 5 Monte Carlo -simulaatiot eri ensembleissä 51 Yleistä Eri ensemblet vastaavat erilaisia ulkoisia olosuhteita Edellä kävimme läpi kanonisen ensemblen (eli N, V ja T vakioita) MC-algoritmin Usein koeolosuhteissa on tilavuuden sijasta paine vakio Tällöin on kyseessä NPT-ensemble Suurkanonista ensembleä tarvitaan, kun hiukkasten lukumäärä voi vaihdella Esimerkiksi adsorptiossa kaasufaasia ei kannata simuloida, vaan käytetään suurkanonista ensembleä ja etukäteen määrättyä lämpötilaa ja kemiallista potentiaalia Eri ensembleiden antamat keskiarvot periaattessa lähestyvät samaa arvoa termodynaamisella rajalla eli, kun systeemin koko kasvaa rajatta Fluktuaatioille ei kuitenkaan käy näin Tästä seuraa, että useat vastefunktiot ovat eri ensembleille erilaiset Seuraavassa esitellään eri ensembleiden MC-simulointi lähinnä atomisysteemien kannalta 52 Mikrokanoninen ensemble Mikrokanonisessa ensemblessä (NVE) systeemin kokonaisenergia säilyy vakiona Suoraviivaisin tapa simuloida tätä ensembleä olisi NVE-molekyylidynamiikka, jossa liikeyhtälöt pitävät huolen energian säilymisestä 1 Mikrokanonisen ensemblen MC-simuloinnissa meidän on saatava aikaiseksi satunnaiskävely faasiavaruuden vakioenergiapinnoilla NVE-ensemblen todennäköisyystiheys voidaan kirjoittaa muodossa ρ NVE Z 1 NVE missä partitiofunktio on δ( H( Γ) E), (51) H( Γ) E Kuva 51: Vakioenergiapinta faasiavaruudessa Z NVE Ω dγδ( H( Γ) E) (52) Ja Hamiltonin funktio H( Γ) K( p) + U() r (53) MC-simuloinnissa ei ole mukana kineettistä energiaa, joten otetaan sitä kuvaamaan ylimääräinen vapausaste, demoni 2, jolla on energia Todennäköisyystiheys on nyt E D 1 Jos tutkimme systeemiä, jolla on liikeyhtälöt 2 M Creutz, Phys Rev Lett 50 (1983) 1411
58 ρ NVE δ( U() r + E D E) (54) Demonin energia on rajoitettu positiivisiin arvoihin Simulaatioalgoritmi on seuraavanlainen: i Konstruoidaan alkutila, jonka (potentiaali)energia E ii Asetetaan demonille energia (esim E D 0 ) iii Muutetaan systeemin tilaa (atomin paikan muutos) m n iv Lasketaan energiaero uuden ja vanhan tilan välillä δu nm Un () Um ( ) v Jos energia pienenee eli δu nm < 0, hyväksy uusi tila ja kasvata demonin energiaa: E D E D + δu nm vi Jos taas energia kasvaa (tai pysyy samana) eli δu nm 0, hyväksy uusi tila ainoastaan, jos demonilla on tarpeeksi energiaa eli E D δu nm > 0 Tällöin vähennä demonin energiaa: E D E D δu nm vii Palaa askeleeseen iii Voidaan osoittaa, että demonin energiajakauma lähestyy Boltzmannin jakaumaa ρ ED e E D k B T (55) Tästä voimme periaatteessa laskea systeemin lämpötilan (Vrt lämpötilan laskeminen molekyylidynamiikkasimulaatioissa) Tätä NVE-MC-menetelmää ei ole juurikaan käytetty atomi- tai molekyylisysteemien simulointiin Etuina voisi ehkä mainita satunnaislukujen vähäisen käytön Jos atomit käydään läpi järjestyksessä, ei satunnaislukuja tarvita ollenkaan Hilasimulaatioissa (esim Ising-malli) menetelmä voi nopeuttaa laskentaa huomattavastikin 1 53 Vakiopaine-ensemble Vakio-NPT-ensemble on kokeelliselta kannalta tärkeä NPT -ensemblessähän paineen odotusarvo on vakio ja tilavuus fluktuoi Tarkastellaan tilannetta atomi- tai molekyylisysteemissä Todennäköisyystiheyden konfiguraatio-osa on ρ NPT e β( PV + U( rn) ) (56) ja ensemblekeskiarvo (tai sen konfiguraatio-osa) on nyt muotoa 1 M Creutz Phys Rev Lett 69 (1992) 1002]
dve βpv dr N A( r N, V)e 0 V A NPT ------------------------------------------------------------------------------- 0 d Ve βpv V dr N e βu( rn) βu( rn) 59 (57) Oletetaan, että simulaatiokoppi on kuutio, jonka sivut ovat L V 13 ja tehdään muuttujanvaihdos: s N ( s 1, s 2,, s N ) L 1 r N (58) r ( r 1, r 2,, r N ) (59) Tällöin odotusarvo (57) tulee muotoon Ve βpv d L 3N s N A( s N, V)e d 0 ω A NPT ---------------------------------------------------------------------------------------- dve βpv L 3N s N e d 0 ω dve βpv V N s N A( s N, V)e βu( sn) d 0 ω -------------------------------------------------------------------------------------- dve βpv V N s N e d 0 ω dve βpv e β NlnV β d 0 ω dve βpv e β NlnV β 0 ω βu( sn) ( ) s N A( s N, V)e ( ) ds N e βu( sn) βu( sn) βu( sn) βu( sn) -------------------------------------------------------------------------------------------------------- (510) Tässä ω tarkoittaa integrointia yksikkökuution yli Järjestelemällä termejä saadaan lopulta muoto V d sn A s N (, V)e β PV --- N ln β V + U( s N ) d 0 ω A NPT --------------------------------------------------------------------------------------------- V ds N e β PV --- N ln β V + U( s N ) d 0 ω (511)
60 Eli meillä on nyt systeemi, jossa on 3N + 1 vapausastetta { V, s 1, s 2,, s N }, ja jonka faasiavaruuden todennäköisyystiheysfunktio on ρ e β PV --- N ln β V + U( s N ) (512) MC-algoritmissa uusi yritetila generoidaan siirtämällä atomin paikka ja/tai muuttamalla tilavuutta sn i s m i + δs max ( 2ξ 1) V n V m + δv max ( 2ξ 1) (513), (514) missä ξ on vektori, jonka komponentit ovat välille [ 01), tasaisesti jakautuneita satunnaislukuja δs max δv max Parametrit ja määräävät maksimimuutokset paikoissa ja tilavuudessa Kuten kanonisessakin ensemblessä nämä parametrit valitaan siten, että saadaan uusien tilojen hyväksymissuhteeksi n 05 Toisaalta meillä on nyt kaksi parametria, joten haluttu hyväksymissuhde voidaan saada aikaiseksi erilaisilla kombinaatioilla Simulaatio-ohjelma voi automaattisesti säätää näitä parametreja halutun suhteen aikaansaamiseksi Kun uusi tila on generoitu, lasketaan energianmuutos δh V n δh nm δu nm + PV ( n V m ) Nk B T ln ------ V m (515) Tilavuuden muutoksesta seuraavan energianmuutoksen laskeminen on yleisesti ottaen laskennallisesti kallista Molekyylin paikan muutoksesta aiheutuvan energianmuutoksen δu nm laskemiseen riittää enintään 2( N 1) potentiaalin laskua Tilavuuden muutos taas vaatii (paripotentiaaleilla) ( 1 2)N( N 1) vuorovaikutuksen laskemisen Yksinkertaisimmille potentiaaleille voidaan kuitenkin energianmuutos laskea skaalaamalla Otetaan esimerkiksi Lennard-Jones 1, jolle systeemin potentiaalienergia tilassa m on 1 Ur () 4ε σ -- r 12 σ -- r 6
61 U m 4ε N i 1 j> i σ ------------ 12 4ε L m sm ij N i 1 j> i σ ------------ 6 L m sm ij (516) U ( 12 ) U m + ( 6 ) m Jos tilasta toiseen ( m n) muuttuu vain tilavuus eli L m L n, saadaan uuden tilan n energia skaalaamalla: U n U L ( 12 ) m m ------ 12 U ( 6 ) L m ------ 6 + m L n L n (517) ja energiaero δu nm δu vol nm U ( 12) m L m ------ 12 1 + U 6 m L n ( ) L m ------ 6 1 L n (518) Jos yhtäaikaa siirretään atomia ja muutetaan tilavuutta on potentiaalienergian muutos δu nm δu dis nm + δu vol nm, (519) missä δu dis nm U n ( L n ) U m ( L n ) (520) Eli tässä tapauksessa ensin muutetaan tilavuutta ja sen jälkeen hiukkasen paikkaa Jos potentiaali on monimutkaisempi, on tilavuudenmuutosten energiaeron laskeminen kallista ja niitä on tehtävä harvemmin NPT-ohjelmassa voidaan luonnollisesti laskea paine viriaalista Tämän paineen keskiarvon tulisi luonnollisesti olla sama kuin asetetun ulkoisen paineen, joka esiintyy yhtälössä (515) Lennard-Jones systeemin NPT-MC-ohjelman tilavuudenmuutososa voisi näyttää seuraavalta:
62 /** attempt a box move **/ boxnewbox+(20*ranf(dummy)-10)*dboxmx; ratboxbox/boxnew; rrbox 10/ratbox; rcutnrcut*rrbox; /** calculate scaling parameters **/ rat3rarbox*ratbox*ratbox; rat6rat3*rat3; rat12rat6*rat6; /** scale energy, and virial including lrc **/ v12newv12*rat12; v6newv6*rat6; w12neww12*rat12; w6neww6*rat6; /** calculate change in energy and volume **/ deltvv12new+v6new-v12-v6; dpvpresur*(boxnew*boxnew*boxnew-vol); dvol30*temp*(float)n*log(ratbox); delthbbeta*(deltv+dpv+dvol); /** check for acceptance **/ if (delthb<750) { if (delthb<00) { v12v12new; v6v6new; w12w12new; w6w6new; for (i1;i<n;i++) { rx[i]rx[i]*rrbox; ry[i]ry[i]*rrbox; rz[i]rz[i]*rrbox; } boxboxnew; rcutrcutn; acboxaacboxa+10; } else if (exp(-delthb)>ranf(dummy)) { v12v12new; v6v6new; w12w12new; w6w6new; for ( i1;i<n,i++) { rx[i]rx[i]*rrbox; ry[i]ry[i]*rrbox; rz[i]rz[i]*rrbox; } boxboxnew; rcutnrcut; acboxaacboxa+10; } } boxinv10/box; volbox*box*box; dens(float)n/vol; /** calculate energy and pressure **/ vn(v12+v6)/(float)n: presdens*temp+(w12+w6)/vol; /** increment accumulators **/ acmacm+10; acvacv+vn; acpacp+pres; acdacd+dens; acvsqacvsq+vn*vn; acpsqacpsq+pres*pres; acdsqacdsq+dens*dens;
63 54 Suurkanoninen ensemble Suurkanonisessa enesemblessä on systeemin kemiallinen potentiaali on vakio ja hiukkasten lukumäärä fluktuoi Vakioita ovat siis µ, V ja T Todennäköisyystiheyden konfiguraatio-osa on 1 1 ρ µvt ----------------e β U rn N!Λ 3N [ ( ) µn ] missä Λ on terminen de Broglien aallonpituus, (521) Λ h 2 --------------------- 12 / 2πmk B T (522) Kuten muistamme, suureen A ensemblekeskiarvon kofiguraatio-osa on ra()n!λ r ( 3N ) 1 e β [ U ( rn ) µn ] d N A 0 µvt ------------------------------------------------------------------------------------------- Q µvt ( N!Λ 3N ) 1 e βµn ra()e r d N 0 ----------------------------------------------------------------------------------------- Q µvt βu( rn) (523) Konfiguraatio-osaan voidaan taas lisätä liikemääristä aiheutuva osuus On kuitenkin huomattava, että tämä osuus riippuu atomien lukumäärästä, joten N on laskettava simulaatiosta Myös suurkanonisessa ensemblessä on käytännöllistä tehdä yhtälön (58) mukainen muuttujanvaihdos Tästä saamme tulokseksi tekijän : V N 1 Nyt emme voi unohtaa N :stä riippuvaa vakiokerrointa
64 ( N!Λ 3N ) 1V NeβµN d sa ()e s βu() s N 0 ω A µvt ----------------------------------------------------------------------------------------------- N 0 e lnn! e 3N lnλ e N V Q µvt ln eβµn d sa s Q µvt ω ()e βu() s ----------------------------------------------------------------------------------------------------------- N 0 ω dsa() s exp{ β[ U() s Nµ ] lnn! 3N lnλ + NlnV} ---------------------------------------------------------------------------------------------------------------------------------------------------- Q µvt (524) Eli suurkanonisessa Monte Carlo -simulaatiossa tulisi saada aikaan Markov-ketju, jonka tasapainojakauma on ρ exp{ β[ U() s Nµ ] lnn! 3N lnλ + NlnV} (525) Koska myös hiukkasten lukumäärä voi fluktuoida, on algoritmin avulla pystyttävä myös poistamaan tai lisäämään atomeja Käytännössä Markov-ketju toteutetaan seuraavalla tavalla Käytetään kolmenlaisia siirtymiä tilasta toiseen: i Atomin siirto ii Atomin tuhoaminen iii Atomin luominen satunnaiseen paikkaan systeemissä Atomin siirto toteutetaan kanonisesta ensemblestä tuttuun tapaan Jos atomi tuhotaan, on tilojen todennäköisyyksien suhde (tilassa m alunperin N atomia) ρ n ----- ρ m e β [ U ( sn ) ( N 1)µ ] ln( N 1)! 3( N 1) lnλ+ ( N 1) lnv ------------------------------------------------------------------------------------------------------------------------- e β [ U ( sm ) Nµ ] lnn! 3N lnλ + NlnV e βδu nm e βµ ---------- NΛ3 V, (526) missä U( s n ) U( s m ) on potentiaalienergiaero Määritellään aktiivisuus δu nm z e ------- βµ Λ 3 jolloin (526) tulee muotoon, (527)
65 ρ n missä on tuhoamisfunktio: δd nm N ----- βδu ρ nm + ln ------ m zv exp e βδd nm, (528) δd nm δu nm β 1ln ------ zv N (529) Yhtälö (528) on samanmuotoinen kuin (433), joten yritetty tuhoamissiirto hyväksytään (kanonisen ensemblen tapaan) todennäköisyydellä min( 1, e βδd nm) (530) Samalla lailla yritettäessä luoda atomia on todennäköisyystiheyksien suhde ρ n ----- ρ m e β [ U ( sn ) ( N + 1)µ ] ln( N + 1)! 3( N + 1) lnλ+ ( N + 1) lnv -------------------------------------------------------------------------------------------------------------------------- e β [ U ( sm ) Nµ ] lnn! 3N lnλ + NlnV e βδu nm e βµ V ------------------------ ( N + 1)Λ 3 (531) Aktiivisuuden avulla lausuttuna suhde on ρ n ----- e βδu nm ρ ------------- zv m N + 1 βδu zv + ln ------------- nm N + 1 exp δc nm missä on määritelty luomisfunktio : e βδc nm, (532) δc nm δu nm β 1 zv ln ------------- N + 1 (533) Ja tavalliseen tapaan yritetty luomisoperaatio hyväksytään todennäköisyydellä min( 1, e βδc nm) (534) Toteutettaessa atomin tuhoamisia ja luomisia on muistettava pitää huoli siitä, että yritetodennäköisyysmatriisit αd mn ja αc mn ovat symmetrisiä ( α mn α nm ) Tästähän seuraa mikroskooppinen reversiibeliys (418) Tämä saavutetaan asettamalla luomisen ja tuhoamisen todennäköisyydet samoiksi αm mn αd mn αc mn Kolmen eri operaation yritetodennäköisyyksien (,, ) asettaminen samaksi on todettu tehokkaimmaksi Markovin ketjun konvergenssin kannalta, eli
αm mn c 1 3 αd mn α mn 66 (535) Algoritmi on siis lopulta muotoa: i Mene satunnaisesti johonkin askeleista ii - iv ii Siirrä satunnaisesti atomia i Hyväksy uusi tila todennäköisyydellä (437) Mene askeleeseen v iii Lisää atomi satunnaiseen paikkaan systeemissä Hyväksy uusi tila todennäköisyydellä (534) Mene askeleeseen v iv Poista satunnaisesti valittu atomi systeemistä Hyväksy uusi tila todennäköisyydellä (530) v Päivitä keskiarvomuuttujia vi Mene askeleeseen i Tyypillisesti simulaation kuluessa lasketaan potentiaalienergian, paineen ja tiheyden ensemblekeskiarvoja Eräs suurkanonisen ensemblen eduista on se, että Helmholtzin vapaa energia A pystytään laskemaan suoraan Kuten termodynamiikasta muistamme suurkanonisen ensemblen termodynaaminen potentiaali on ns suuri potentiaali Ω Ω E TS µn A µn (536) Toisaalta Ω PV (537) Näistä saamme yhteyden A Ω + µn µn PV, (538) eli merkitsemällä eksplisiittisesti ensemblekeskiarvot A --- µ N P µvt V --------------------- N µvt (539) Kuten vakiopainesimuloinneissa, myös suurkanonisessa tapauksessa tiheys vaihtelee simuloinnin kuluessa Tästä syystä myös potentiaalienergian pitkän kantaman korjaukset tulee laskea δu :n laskun yhteydessä uudestaan 1 mn Sama pätee muidenkin suureiden pitkän kantaman korjauksiin Ohjelmointiteknisesti suurkanoninen MC-simulointi teettää hieman enemmän työtä johtuen atomien lisäämisestä ja poistamisesta Atomien kirjanpito voidaan toteuttaa esimerkiksi seuraavaan tapaan 2 1 Pitkän kantaman korjauksista puhutaan lisää myöhemmin
Oletetaan, että meillä on alussa 6 atomia ja suurin mahdollinen määrä on 10 Taulukossa locate on tieto siitä, mitkä atomit ovat elossa kullakin simulaatioaskeleella Ensimmäisellä askeleella taulukko näyttää seuraavalta 67 i: 1 2 3 4 5 6 7 8 9 10 locate[i]: 1 2 3 4 5 6 0 0 0 0 N6 Kuva 52: Suurkanonisen simuloinnin atomien kirjanpito Jos atomi numero 3 tuhotaan, taulukko päivitetään ja atomi numero 3 siirretään taulukon päähän ( kuolleeseen osaan): i: 1 2 3 4 5 6 7 8 9 10 locate[i]: 1 2 4 5 6 3 0 0 0 0 n5 Kuva 53: Suurkanonisen simuloinnin atomien kirjanpito (jatkoa) Jos nyt uusi atomi luodaan, se viedään paikkaan locate[n+1]: i: 1 2 3 4 5 6 7 8 9 10 locate[i]: 1 2 4 5 6 3 0 0 0 0 n6 Kuva 54: Suurkanonisen simuloinnin atomien kirjanpito (jatkoa) Jos tämän jälkeen taas edelleen luodaan uusi atomi, se viedään paikkaan locate[n+1], ja uuden atomin indeksiksi asetetaan n+1: 2 D Nicholson, CCP5 Quarterly 11 (1984) 19 CCP5-projektin kotisivun URL on http://ftpdlacuk/ccp/ccp5/mainhtml
68 i: 1 2 3 4 5 6 7 8 9 10 locate[i]: 1 2 4 5 6 3 7 0 0 0 n5 Kuva 55: Suurkanonisen simuloinnin atomien kirjanpito (jatkoa) Ohjelman silmukat, jotka käyvät atomit läpi ovat nyt seuraavannäköisiä: for (i1;i<n;i++) { ia locate[i]; rxi rx[ia]; ryi ry[ia]; rzi rz[ia]; /* laske haluttuja asioita */ } Allen-Tildesleyn esimerkkiohjelmat 1 F13 ja F14 sisältävät suurkanonisessa simulointiohjelmassa tarvittavia rutiineja Katso myös D Frenkelin ja B Smitin kirjan WWW-sivun Case Studies -ohjelmia 2 Ylläesitellyssä menetelmässä joudutaan taulukko locate järjestelemään jokaisen tuhoamisen jälkeen uudestaan Toinen tapa on käyttää loogista taulukko alive, joka kertoo, onko kyseinen atomi systeemissä Oletetaan samanlainen tilanne kuin aikaisemmin (6 atomia, maksimilukumäärä 10) i: 1 2 3 4 5 6 7 8 9 10 alive[i]: 1 1 1 1 1 1 0 0 0 0 n6 Kuva 56: Suurkanonisen simuloinnin atomien kirjanpito käyttäen loogista taulukkoa Jos atomi numero 3 tuhotaan, asetetaan taulukon alive, alkio arvoon false (eli 0) 1 http://wwwlcehutfi/~akuronen/mdkurssi/allen-tildesley Ohjelmat on kirjoitettu Fortran77:lla (valitettavasti) 2 http://cpcoup5tntudelftnl/people/smit1/readmehtml
69 i: 1 2 3 4 5 6 7 8 9 10 alive[i]: 1 1 0 1 1 1 0 0 0 0 n5 Kuva 57: Suurkanonisen simuloinnin atomien kirjanpito käyttäen loogista taulukkoa (jatkoa) Jos nyt uusi atomi luodaan, se viedään ensimmäiseen vapaaseen paikkaan taullukossa alive: i: 1 2 3 4 5 6 7 8 9 10 alive[i]: 1 1 1 1 1 1 0 0 0 0 n6 Kuva 58: Suurkanonisen simuloinnin atomien kirjanpito käyttäen loogista taulukkoa (jatkoa) Jos tämän jälkeen taas edelleen luodaan uusi atomi, se viedään paikkaan alive[7], ja uuden atomin indeksiksi asetetaan: i: 1 2 3 4 5 6 7 8 9 10 alive[i]: 1 1 1 1 1 1 1 0 0 0 n7 Kuva 59: Suurkanonisen simuloinnin atomien kirjanpito käyttäen loogista taulukkoa (jatkoa) Ohjelman silmukat, jotka käyvät atomit läpi ovat nyt seuraavannäköisiä: for (i1;i<nmax;i++) { if (alive[i]) { rxi rx[ia]; ryi ry[ia]; rzi rz[ia]; /* laske haluttuja asioita */ } } Etuna edelliseen menetelmään on se, että muistia tarvitaan vain yksi looginen taulukko Jos muisti on rajoittava tekijä voidaan tämä taulukko toteuttaa bittitaulukkona Haittana on ylimääräinen ehtolause ohjelman sisimmissä silmukoissa Esitetään lopuksi yksi esimerkki suurkanonisen MC-simuloinnin sovelluskohteesta 1
70 Adsorptiotutkimuksissa haluamme tietää aineen huokosiin kiinnittyneiden atomien tai molekyylien lukumäärän ulkoisen paineen ja lämpötilan funktiona Yksi menetelmä on tietysti molekyylidynamiikka, mutta usein systeemin aikaskaala on makroskooppinen: tasapainotilan saavuttaminen voi vaatia minuutteja tai jopa tunteja Lisäksi kaasufaasin simulaatioon kuluu laskentatehoa, vaikka emme ole siitä kiinnostuneita Systeemissä vallitsee tasapaino ympäröivön kaasun ja aineen huokosissa olevien kaasumolekyylien välillä, jolloin niiden kemialliset potentiaalit ja lämpötilat ovat samat Suurkanonisessa MC-simulaatiossa mallinnamme ympäröivää kaasua asettamalla kaasumolekyylien kemiallisen potentiaalin µ ja lämpötilan T haluttuihin arvoihin Kemiallisen potentiaalin arvo saadaan periaatteessa ulkoisen kaasun paineesta sen tilanyhtälön avulla Otetaan esimerkiksi zeoliitit Ne ovat hyvin huokoisia aineita, joilla on sovelluksia esimerkiksi petrokemian teollisuudessa katalyyttisinä materiaaleina Ne ovat kiteisiä SiO 4 - ja AlO 4 tetrahedreista rakentuvia materiaaleja, joita nykyään tunnetaan n 600 erilaista Sovellusten kannalta on tärkeää tietää, miten ympäristön atomit tai molekyylit kiinittyvät zeoliitin huokosiin Kuva 510: Adsorbentti kaasuatmosfäärissä Kuvassa esimerkkinä metaanin adsorptio erään zeoliitin (silikaliitti) pinnalle ulkoisen paineen funktiona 1 Simulaatiotulokset vastaavat varsin hyvin koetuloksia µ T Kuva 511: Adsorbentti kykettynä lämpö- ja kemiallisen potentiaalin varastoon * Kuva 512: Metaanin adsorptio silikaliittiin metaanin paineen funktiona Mustat symbolit ovat mitattuja arvoja, avoimet suurkanonisen MCsimulaation tuloksia N [mmol/g] 30 20 10 00 10 0 10 1 10 2 10 3 10 4 P [kpa] 1 Ks http://wwwhpcntudelftnl/frenkel_smithtml 1 Frenkel-Smit kappale 564
71 6 Simulaatio-ohjelma käytännössä Tässä luvussa käymme läpi tiettyjä simulaatioteknisiä asioita kuten reunaehdot, vuorovaikutusten laskeminen tehokkaasti ja niin edelleen Tarkastellaan edelleen lähinnä atomisysteemejä 61 Reunaehdot Simuloitava systeemi koostuu luonnollisesti äärellisestä määrästä partikkeleita (simulointikoppi), joten systeemissä on reunat Mitä tulisi tehdä reunoilla? Se riippuu tietysti tutkittavasta ilmiöstä Kuva 61: Atomisysteemin reunaehdot Jos tutkitaan ääretöntä ainetta (bulk) käytetään ns periodisia reunaehtoja Eli kopin reunan yli menevä atomi tulee toiselta puolelta takaisin Avaruus on siis täytetty simulointikopin kopioilla A A Kuva 62: Periodiset reunaehdot
72 Käytännössä tämä voidaan toteuttaa esimerkiksi seuraavanlaisella C-rutiinilla: void bcond(float *x, int *ibc, float *box) /* boundary conditions: */ /* x(3) : particle coordinate */ /* ibc : 1-periodic, >1-free */ /* box(3) : simulationcell edge */ { int j; for (j1;j<3;j++) { if (ibc[j]1) { if (x[j]<00) x[j] x[j]+box[j]; if (x[j]>box[j]) x[j] x[j]-box[j]; } } } Potentiaalienergian laskussa periodiset reunaehdot tulee myös ottaa huomioon (tarvitaan atomien välisiä etäisyyksiä; ns minimum image convention) j r ij l k i k r cutoff rij l j L Kuva 63: Periodiset reunaehdot potentiaalienergian laskemisessa Esimerkiksi kuvan 63 tapauksessa, koska r ij > r i j', käytetään atomien i ja j välisenä etäisyytenä vektoria r i j'
73 C-kielellä asia voidaan hoitaa seuraavasti: if (rijx > box[1]/20) rijxrijx-box[1] if (rijy > box[2]/20) rijyrijy-box[2] if (rijz > box[3]/20) rijzrijz-box[3] if (rijx < -box[1]/20) rijxrijx+box[1] if (rijy < -box[2]/20) rijyrijy+box[2] if (rijz < -box[3]/20) rijzrijz+box[3] Edelläolevasta seuraa, että suurin pituus systeemissä on L 2 Tämä on otettava huomioon laskettaessa suureita, jotka ovat atomien välimatkojen funktioita [esim parikorrelaatiofunktio gr ( ) tai rakennetekijä ρ( k) ] Lisäksi on yleensäkin oltava tarkkana, ettei reunaehtojen aiheuttama periodisuus vaikuta tuloksiin Esimerkiksi simuloitaessa kidevaurioita on kopin oltava niin suuri, etteivät vaurioiden kuvat pääse vuorovaikuttamaan toistensa kanssa Tutkittaessa materiaalien pintoja periodisia reunaehtoja käytetään vain x - ja y -suunnissa z Kuva 64: Reunaehdot pintasimulaatiossa Systeemin pohja voi olla joko vapaa (kalvo) tai kiinnitetty (mallintaa bulkkia) Yleensä simulaatiokoppi on kuutio tai suorakulmainen On kuitenkin mahdollista käyttää eisuorakulmaisia koppeja: esim monokliininen kiderakenne vaatii tämän Voidaan käyttää myös muita säännöllisiä (avaruuden täyttäviä) monitahokkaita x Kuva 65: Ei-suorakulmaisia simulointikoppeja
Esimerkiksi nesteiden simuloinneissa pallomaisempi symmetria voi olla parempi Periodisten reunaehtojen soveltaminen on tietysti hankalampaa 1 Olivatpa reunaehdot mitkä hyvänsä, on aina tutkittava niiden mahdollista vaikutusta tuloksiin Eli suoritetaan simulaatioita erikokoisilla systeemeillä ja toivon mukaan tulokset saturoituvat tiettyyn arvoon, kun koko kasvaa 74 62 Potentiaalienergian laskeminen Useimmiten suurin osa tietokoneajasta menee systeemin potentiaalienergian ja voimien 2 laskemiseen Tästä syystä yleensä kannattaa keskittyä ohjelman tämän osan optimoitiin Olkoon meillä paripotentiaali vr ( ) Systeemin potentiaalienergia on U N 1 i 1 N j i+ 1 vr ( ij ), (61) r ij r i r j (62) Atomiin i atomin j kohdistama voima on 3 f ij ri vr ( ij ) rij vr ( ij ), (63) eli f ij f ij dv dr r r ij r ij ---- r ij (64) r ij i Käytännössä potentiaalilla on aina katkaisusäde r c Atomit joiden välinen etäisyys > r c eivät vuorovaikuta -f ij j Yleensä r c muutama Å Katkaisusäteen valinnan vaikutusta tuloksiin pitäisi aina tutkia Energiaan (ja muihin laskettaviin suureisiin) voidaan ottaa mukaan pitkän kantaman korjaus (lasketaan olettaen aine jatkuvaksi), joka tarvi- 1 Allen-Tildesleyn esimerkkiohjelmasta F1 löytyy periodisten reunaehtojen soveltaminen muutamalla eisuorakulmaiselle kopille Linkki ohjelmiin löytyy kurssin kotisivulta 2 Voimia MC-ohjelmassa tarvitaan viriaalin laskemiseen 3 rij i + j + k, r yij zij ij x ij i + y ij j + z ij k x ij Kuva 66: Paripotentiaalin välityksellä vuorovaikuttavat atomit
75 taan vuorovaikutuksen katkaisun takia Esim Lennard-Jonesille E E c + E LRC E c + 2πρ r 2 V( r) dr r c (65) Katkaisusäteestä johtuen potentiaalilla on epäjatkuvuus :n kohdalla r c V(r) Potentiaali voidaan viedä nollaan alueella [ r c δr, r c ], siten, että esim potentiaali ja voima ovat jatkuvia (3 asteen polynomi) Tai potentiaalia voidaan siirtää; energian nollakohtahan on mielivaltainen Potentiaalienergia (ja viriaali eli voimat) lasketaan siis kaksinkertaisessa silmukassa: r c Kuva 67: Potentiaalin katkaisu r for (i1;i<n;i++) { for (ji+1;j<n;j++) { rijx rx[i]-rx[j]; rijy ry[i]-ry[j]; rijz rz[i]-rz[j]; rijsq rijx*rijx+rijy*rijy+rijz*rijz; rij sqrt(rijsq) if (rijsq<rcut) { vij potentiaalienergia; wij viriaali; v+vij; w+wij; } } } Potentiaalienergian lasku vie koneaikaa O( N 2 ) eli ennen pitkää laskenta-aika kasvaa liian suureksi Avuksi otamme käyttöön Verlet n naapurilistan ja solumenetelmän
76 Verlet n naapurilista on tietorakenne, jossa säilytetään jokaista atomia varten niiden naapurien indeksit, jotka ovat lähempänä kuin tietty etäisyys r m Lista päivitetään vain joka N m :s simulaatioaskel Parametrit rm ja N m valitaan siten, että r m > N m δr, (66) r c missä δr on tyypillinen atomin poikkeama simulaatioaskeleella Käytännössä naapurilista voisi olla kuvan 69 mukainen yksiulotteinen taulukko r m r c Naapurilistaakin käyttämällä simulaatio käyttäytyy kuten O( N 2 ): Kun N kasvaa, jossain vaiheessa naapurilistan rakentaminen vien huomattavan osan laskenta-ajasta Kuva 68: Verlet n naapurilista 0 0-1 atomin 1 naapurit atomin 2 naapurit atomin N naapurit Kuva 69: Verlet n naapurilistan toteutus yksiulotteisena taulukkona Solumenetelmässä simulaatiokoppi jaetaan osiin Olkoon meillä M M M solua Etsittäessä atomin i kanssa vuorovaikuttavia naapureita käydään läpi vain naapurisolut Kaksiulotteisena esimerkkinä otamme kuvan 610 mukaisen systeemin Solussa 13 olevan atomin Verlet n lista rakennetaan ottaen huomioon vain soluissa 7, 8, 9, 12, 14, 17, 18, ja 19 sijaitsevat atomit Solun koko on valittava siten, että L l ---- > r, (67) M c missä L simulointikopin sivun pituus 21 22 23 24 25 16 17 18 19 20 11 12 13 14 15 6 7 8 9 10 1 2 3 4 5 Kuva 610: Solumenetelmä
77 Keskimääräinen atomien lukumäärä solussa on läpi 27NN c atomiparia N( N 1) :n sijaan N c N M 3, mistä seuraa, että on käytävä Otetaan esimerkki käytännön toteutuksesta Allen-Tildesleyn henkeen 1 : taulukko HEAD: M 3 - koko - alkio i osoitin taulukkoon LIST - kertoo solun i atomilistan alun taulukko LIST: - koko N - alkio j kertoo solun seuraavan atomin indeksin 1 2 3 4 5 6 7 8 9 10 HEAD: 8 10 LIST: 0 1 0 3 2 4 5 7 6 9 Kuva 611: Solumenetelmän toteutus käyttäen HEAD- ja LIST-taulukoita Listan rakentaminen koodina näyttää seuraavalta 2 : MD-kopin sivun pituus 10 solun sivun pituus 1 M celli (float)m; head 0; for (i1;i<n;i++) { icell 1 + (int)((rx[i]+05)*celli) (int)((ry[i]+05)*celli) * M (int)((rz[i]+05)*celli) * M * M; list[i] head[icell]; head[icell] i; } 1 Allen-Tildesleyn esimerkkiohjelmassa F20 on Fortran77:lla tehty toteutus 2 Simulointikopin sivun pituus on 10 ja solun sivun pituus on 1 M
78 63 Pitkän kantaman potentiaalit Yleisesti pitkän kantaman voima on voima, joka pienenee hitaammin kuin r d, jossa d on systeemin dimensioiden lukumäärä Tärkein tapaus on ionien varausten välinen Coulombin vuorovaikutus 1 V zz ( r ij ) z i z j e 2 ----------------- (68) 4πε 0 r ij Ioniyhdisteiden 2 ionien välistä vuorovaikutusta mallinnetaan usein käyttämällä Coulombin vuorovaikutusta, lyhyen kantaman repulsiota (SR) sekä van der Waalsin attraktiota (vdw): V( r ij ) V zz ( r ij ) + V SR () r + V vdw ( r), (69) V SR () r Ae r / ρ, V vdw C () r ---- (610) Koska Coulombin potentiaalin kantama on pitkä, emme voi käyttää normaalia katkaisusädettä r c muutama Å, eikä systeemin kokoa voi kasvattaa niin suureksi, että voisimme turvallisesti katkaista potentiaalin Lisäksi potentiaalin katkaisu voisi tehdä systeemistä varatun Yleisin ratkaisu tähän ongelmaan on käyttää ns Ewaldin summaa Otetaan huomioon kaikkien periodisten kuva-atomien vuorovaikutukset (unohdetaan 4πε 0, jotta olisi vähemmän kirjoitettavaa) Coulombin vuorovaikutuksesta johtuva systeemin potentiaalienergia on siten r 6 V zz 1 -- 2 n N N r i 1 j 1 ij z 1 z ----------------- 2 n (611) Tässä vektori n käy läpi kaikki simulaatiokopin kuvat ja indeksit i ja j atomit kopin sisällä Huomaa, että n -summassa ei oteta mukaan termiä i j, kun n 0 Tämä summa on vain ehdollisesti suppeneva: tulos riippuu siitä, missä järjestyksessä termejä summaamme Luonnollinen valinta on lisätä säteittäisesti koppeja origon ympärille (ks kuva 612) 1 Käytämme potentiaalienergian symbolina nyt kirjainta V, koska tässä kappaleessa sitä ei voi sotkea tilavuuteen 2 Suolat ja monet oksidit
79 Kuva 612: Systeemin rakentaminen simulointikopeista Ympäröivä aine vaikuttaa energiaan Metallille ( ε ) ja tyhjiölle ( ε 1 ) tulokset ovat erilaiset; tyhjiössä pallon pinnalla on dipolikerros: V zz ( ε ) V zz 2π ( ε 1) -------- 3L 3 z i r i 2 i (612) Ewaldin summalla voimme laskea V zz ( ε ) :n Jos haluamme systeemimme olevan tyhjiössä, voimme lisätä tuon dipolitermin energiaan Ewaldin summamenetelmässä ilmaistaan varaukset varaustiheyden muodossa z i ρ i z
80 ρ i1 ( r) r ρ i2 ( r) r Kuva 613: Ionien varauksen ilmaiseminen varausjakauman avulla Ewaldin summassa Jokaisen ionin varaus lausutaan summana gaussisesta ja deltapiikkitiheydestä: ρ z i ( r) ρz i1 ( r) + ρz i2 ( r) (613) ρz i1 ( ) 2 ( r) z i δ( r r i ) κ 3 π 32 / e κ2 r r [ i ] (614) ρz i2 ( r) z i κ 3 π 32 / e κ2 ( r r i ) 2 (615) ρz i1 Koska nyt :llä on äärellinen kantama voimme laskea siitä aiheutuvan energian ja voiman soveltaen katkaisusädettä Johtuen ρz i2 :n tasaisuudesta se kannattaa laskea käänteisavaruudessa: atomien ρ :n Fouriermuunnokset summataan ja tästä otetaan käänteinen Fourier-muunnos Eli lopputulokseksi (after a few steps of algebra) saadaan lauseke, jossa on r -avaruuden termi, k -avaruuden termi sekä itseisenergian vastaluku ja pintatermi:
81 zz V zz ( ε 1) V real + V zz recip V zz self + V zz surf, (616) N N 1 erfc( κ r -- ij + n ) z 2 i z j ---------------------------------- + n i 1 j 1 n 0 r ij 1 4π + -------- πl 3 z i z 2 j --------e k2 4κ 2 k 2 cos( k r ij ) k 0 N κ --------- z2 i + π 12 / i 1 N 2π -------- 3L 3 z i r i i 1 2 missä erfc( x) 2 --------- e t2 d π 12 / x t (617) on komplementäärinen virhefunktio ja L on simulointikopin sivun pituus Oletamme tässä, että koppi on kuutiollinen Taaskaan n -summassa ei oteta mukaan termiä i j, kun n 0 Toinen termi on summa yli käänteisavaruuden vektoreiden k ( 2π L)n Toiseksi viimeinen termi on z :n itseisenergia, joka on vähennettävä, koska se lasketaan mukaan zz -osassa ρ i2 V recip Asettamalla κ tarpeeksi suureksi voimme rajoittua vain termiin n 0, joka vastaa normaalia minimum image -konventiota Reaaliavaruuden termi voidaan laskea samassa silmukassa kuin lyhyen kantaman voimat Tällöin on zz muotoa V real V zz real i< j erfc z i z ( κr ) ij j --------------------- r ij (618) Kompleksilukuja käyttäen käänteisavaruuden termi tulee yksinkertaisempaan muotoon V zz recip k A( k) z i e ik r i i 2 (619) A( k) 2π ----- exp ( k2 4κ 2 ) ---------------------------------- L 3 k 2 (620)
82 Vastaavasti tästä aiheutuva voima on ioniin i on i 2z i ka( k)im e ik r i f recip k 0 z j e ik r j Huomaa, että potentiaalienergian (ja voimien) lasku vie nyt aikaa kuten on helppo yleistää ei-kuutiollisiin koppeihin j (621) O( N 2 ) Lausekkeet Valittavana on nyt kolme potentiaalienergian (ja voimien) laskuun liittyvää parametria: r c i katkaisusäde ii varausjakauman terävyys iii k -summauksen yläraja k 2 max κ Parametrien valinnassa lienee hyvä aloittaa asettamalla r c suurehkoksi: esim L 2 Tästä saadaan sopiva κ :n arvo, jonka perusteella lasketaan sopiva k -summauksen raja Tyypillisesti κ 5 L, jolloin laskenta painottuu k -avaruuteen k -summaukseen otetaan mukaan 100-200 vektoria Otetaan esimerkiksi ioniyhdiste EuF 2 10 0 MD simulation of EuF 2 V recip (arbunits) 10-4 10-8 L : 35 44 52 61 Kuva 615: EuF 2 :n kiderakenne Suuret pallot ovat fluoriatomeja Asiaan liittyvät simulointiparametrit olivat: N 324, L 174Å 10-12 0 2 4 6 8 10 12 k 2 (Å -2 ) Kuva 614: Europiumdifluoridisysteemin potentiaalienergia Piirrettynä on energian käänteisavaruusosuus neljälle eri parametrin κ arvolle κl 52, r c L 2, k 2 5Å 2 max
83 Jos Ewaldin summan aiheuttama periodisuus tuottaa ongelmia, voidaan käyttää hiukkas-hilamenetelmää 1 Käänteisavaruuden osuus lasketaan tasoittamalla ionien varaukset säännölliseen hilaan ja ratkaisemalla potentiaali Poissonin yhtälöstä 2 φ ρ ε 0 Fourier-menetelmillä Etuna on myös laskennan käyttäytyminen kuten ON ( ) Haittana ohjelman monimutkaistuminen Reaktiokenttämenetelmässä 2 atomista etäisyyttä r c kauempana olevat naapurit approksimoidaan jatkuvaksi aineeksi ( ε s ) Onkalon sisällä potentiaalienergia (ja voimat) lasketaan normaaliin tapaan Ongelmana on tuo, joka tulee tietää etukäteen ε s 64 Alkuehdot Vaikka simulointialgoritmi periaatteessa vie systeemin tasapainotilaan riippumatta alkutilasta, kannattaa alkutilan valinta tehdä järkevästi Jos tutkimme kiinteää kiteistä ainetta, on luonnollisin valinta kiderakenteen määräämät paikat Termisen tasapainon saavuttamista voi hieman nopeuttaa poikkeuttamalla atomeja satunnaisesti kidepaikoiltaan Poikkeama on yleensä gaussisesti jakautunut ja jakauman leveys voidaan arvioida materiaalin Debyen lämpötilan avulla Esimerkiksi atomien asettaminen sivukeskisen kuutiorakenteen määräämiin paikkoihin voidaan tehdä seuraavalla C-rutiinilla: #include <stdioh> #include <mathh> #include mcnvth /* Lattice constant of Ne */ #define A 443 void createlattice(int ix, int iy, int iz, int *npart, double **x, double **y, double **z, double *box) { int i,j,k,iat; double xo,yo,zo,o1; *npartix*iy*iz*4; /* 4 atoms in a unit cell in FCC */ *x (double *) malloc((size_t) ((*npart) *sizeof(double))); *y (double *) malloc((size_t) ((*npart) *sizeof(double))); *z (double *) malloc((size_t) ((*npart) *sizeof(double))); box[0]ix*a; box[1]iy*a; box[2]iz*a; o1050*a; iat-1; for (i0;i<ix;i++) { xoa*i; for (j0;j<iy;j++) { 1 RWHockney, JWEastwood, Computer Simulation Using Particles, Adam Hilger, 1988, kappale 8 2 Allen-Tldesley, kappale 553
84 yoa*j; for (k0;k<iz;k++) { zoa*k; iat++; (*x)[iat]xo ; (*y)[iat]yo ; (*z)[iat]zo; iat++; (*x)[iat]xo+o1 ; (*y)[iat]yo+o1 ; (*z)[iat]zo; iat++; (*x)[iat]xo+o1 ; (*y)[iat]yo ; (*z)[iat]zo+o1; iat++; (*x)[iat]xo ; (*y)[iat]yo+o1 ; (*z)[iat]zo+o1; } } } *npartiat+1; } Rutiinin kutsu on seuraavanlainen: #define double double int npart,ix,iy,iz; double *x,*y,*z,t,box[3]; createlattice(ix,iy,iz,&npart,&x,&y,&z,box); Nestemäisen aineen atomien alkupaikoiksi voidaan myös asettaa kyseessä olevan aineen kiteisen muodon kidepaikat Simulaation alkuvaiheessa korkea lämpötila pitää huolen kiderakenteen rikkoontumisesta Periaatteessa mikä muu kiderakenne käy myös, kunhan aineen tiheys asetetaan oikeaksi Amorfinen materiaali saadaan aikaan simuloimalla jonkin aikaa nestettä ja tämän jälkeen laskemalla lämpötilaa 1 jolloin saavutetaan amorfinen tila Huomaa, että nesteen ja amorfisen aineen tapauksessa ei atomien paikkojen satunnainen arpominen simulointikopin sisällä ole kovin hyvä ratkaisu Tällä tavalla syntyvällä tilalla voi helposti olla suuri potentiaalienergia ja tasapainon saavuttamiseen kuluu paljon simulointiaskeleita Koska tasapaino on sitten saavutettu? Kriteerinä voi käyttää tiettyjen suureiden asettumista alkutransientin jälkeen Esimerkiksi simuloitaessa kiinteää ainetta voimme tarkastella atomien keskimääräistä poikkeamaa alkuperäisiltä (kide)paikoiltaan ( r i r 0 ) 2 1 Riittävän nopeasti, sillä amorfinen tila on yleensä metastabiili
85 Kuvassa 616 on esitetty, miten 256 atomin Lennard-Jones-systeemin 1 atomien keskimääräinen poikkeama ja potentiaalienergia käyttäytyvät simulaation alussa eri lämpötiloissa Lämpötilassa 50 K systeemi voi olla jo nestemäinen, joten atomien keskimääräinen poikkeama ei asetu tiettyyn arvoon, vaan jatkaa diffuusionomaista käyttäytymistä Nesteen tapauksessa tasapainon saavuttaminen vie kauemmin kuin kiinteän aineen tapauksessa Tällöin hyvä kriteeri on käänteishilavektorille K lasketun rakennetekijän N ρ( K) e ik r j j 1 (622) asettuminen arvoon, joka on paljon ykköstä pienempi 2 (<( r) 2 >) 1/2 (A) E pot (ev) 06 04 02 00-45 -50-55 -60 3K 20 K 50 K 0 500 1000 1500 2000 n MC Kuva 616: Lennard-Jones-systeemin MC-simuloinnin alku 65 Tulosten analysoinnista Simulaation kuluessa laskemme erinäisistä suureista keskiarvoja Näille keskiarvoille tulisi pystyä arvioimaan jonkinlaisia epätarkkuuksia Tuloksissa voi olla systemaattisia virheitä: äärellisen koon vaikutus (finite size effects), huonon satunnaislukugeneraattorin vaikutus, väärät simulaatioparametrit jne Näiden vaikutuksen arvioiminen on tietysti tärkeää Lisäksi, koska simulaatiossa otetaan äärellinen otos, on tuloksissa statistista epätarkkuutta Useimmiten voimme olettaa laskiessamme ensemblekeskiarvon A tai sen fluktuaatioiden ( δa) 2 epätarkkuutta, että prosessi At () on gaussinen Tämähän tarkoittaa sitä, että A :n jakauman määrää täysin sen kaksi ensimmäistä momenttia: keskiarvo ja varianssi Eli yleisesti 1 Systeemin kuvaa neonia 2 Käänteishilavektorille exp( ik r i ) 1 eli täydelliselle kiteelle ρ( K) N
86 δa( t 1 )δa( t 2 ) δa( t n ), (623) 0, n pariton parit δa( t i )δa( t j ) δat ( k )δa( t l ), n parillinen missä summa käy läpi kaikki mahdolliset parit ajanhetkistä 1 t 1, t 2,, t n Ylläolevassa yhtälössä on argumenttina aika, mutta se pätee myös MC-simulaatioihin, jolloin ajan tilalla on simulaatioaskel Oletus gaussisuudesta perustuu keskeisraja-arvoteoreemaan, josta puhuttiin aikaisemmin luennolla (kappale 32) Sen mukaan satunnaismuuttujan, joka on summa monesta satunnaismuuttujasta, jakauma on lähellä gaussista, kun summan termien lukumäärä on suuri Tämä pätee riippumatta summan termien jakaumista Ehtona on vain yksittäisen jakaumien momenttien olemassaolo Tästä syystä simulaatiotulosten, jotka ovat systeemin kolllektiivisia ominaisuuksia (eli ovat summia yli atomien), voidaan olettaa noudattavan gaussista jakaumaa Tietysti on suureita, joiden jakauma on täsmälleen gaussinen: esimerkiksi yksittäisten atomien nopeus, joka noudattaa Boltzmannin jakaumaa Eli ongelmaksi jää pitkästä, mutta äärellisestä simulaatioajosta lasketun keskiarvon varianssin arvioiminen Huomaa, että suureen A ensemblekeskiarvo A ens on tarkasti määritelty huolimatta siitä, että suureella on fluktuaatioita σ 2 ( A) : σ 2 ( A) δa 2 ens A 2 ens A 2 ens, (624) δa A A ens (625) Se mitä tässä ajamme takaa on keskiarvo A ens approksimaation A run varianssi Voimme ajatella yhtä laskettua keskiarvoa A run otoksena äärellisistä simulaatiodatoista laskettujen keskiarvojen joukoista Oletetaan, että ajon pituus on n t simulaatioaskelta Suureen A keskiarvo A run (ajokeskiarvo) saadaan tietysti seuraavasti 1 Monte Carlo -simulaatioiden yhteydessä aika tarkoittaa simulaatioaskelta, Markovin prosessin indeksiä Tietyllä tavalla voimme ajatella ajan olevan mukana myös MC-simulaatiossa Generoimalla Markovin ketjua ratkaisemme masteryhtälöä dp( r, t) ----------------- dt W( r r' )P( r, t) + W( r' r)p( r', t) r' r' Tämä aika ei kuitenkaan ole sama kuin systeemin liikeyhtälöiden (jos sellaiset ovat olemassa) kuvaama aika
87 1 A run --- A i, (626) n t i 1 missä A i on suureen A arvo simulaatioaskeleella i Entä tämän varianssi? Se voidaan kirjoittaa seuraavaan muotoon n t ( δa) 2 n t i 1 n t N 1 --- ( A i A ) n t i 1 2 i j n t 1 1 ---- ( A i A ) 2 2 + ---- ( A i A j A 2 ) 1 ---- ( A n2 i A ) 2 2 + ---- A t n2 ( i A )( A j A ) t n2 t i 1 n t n2 t i 1 j i+ 1 (627) Tässä kulmasulut tarkoittavat ensemblekeskiarvoa Ylläoleva yhtälö voidaan summausindeksiä muuttamalla kirjoittaa muotoon ( δa) 2 n t 1 --- A n 2 A 2 i + 2 1 --- A t ( 0 A i A 2 ) i 1 n t (628) Tämän voimme muuntaa integraaliksi merkitsemällä muuttamalla summausindeksin jatkuvaksi aikamuuttujaksi t i δt, missä δt on peräkkäisten konfiguraatioiden välinen aika: ( δa) 2 t n t n 1 --- A t 2 A 2 2 n δt ---- 1 t + --- [ A( 0)At () A 2 ] dt t n 1 --- [ A 2 A 2 2 ] 1 δt ---- 1 t --- A( 0)At () A + 2 -------------------------------------------- A 2 A 2 d t 0 0 t n t n (629) Tässä integroinnin yläraja t n n δt Määritellään suureen A normitettu autokorrelaatiofunktio 1 φ A () t -------------------------------------------- A()At 0 A 2, (630) A 2 A 2 jolloin yhtälö (629) tulee muotoon 1 Joissain teoksissa käytetään termiä relaksaatiofunktio
88 ( δa) 2 1 -- [ A n 2 A 2 2 ] 1 δt ---- 1 t + --- φa () t dt t n 0 t n (631) Autokorrelaatiofunktiolle pätee 1 : φ A ( 0) 1, lim φ A () t 0 (632) t Suureen A korrelaatioaika määritellään seuraavasti τ A 0 τ A φ A () t dt (633) Korrelaatioaika kertoo aikaskaalan, jossa korrelaatiofunktion arvo on hyvin lähellä nollaa Jos oletamme, että otoksemme on niin suuri, että t n» τ A, voimme unohtaa termin t t n integraalissa (631) ja ulottaa integraalin äärettömyyteen: ( δa) 2 1 -- [ A n 2 A 2 2 ] 1 + ---- φ δt A () t dt 0 (634) Eli saamme lopulta ( δa) 2 1 -- [ A n 2 A 2 2τ ] 1 + -------- A δt (635) Jos peräkkäisten konfiguraatioiden välinen aika δt on paljon suurempi kuin korrelaatioaika δt», saadaan tuttu korreloimattomalle datalle pätevä tulos τ A ( δa) 2 1 -- [ A n 2 A 2 ] (636) Päinvastaisessa tapauksessa δt «τ A, saadaan virhe muotoon ( δa) 2 2τ A -------- [ A nδt 2 A 2 ] 2τ -------- A [ A 2 A 2 ] τ obs, (637) τ obs missä on keskiarvon laskemiseen käytetty aikajakso Eli virhe on riippumaton peräkkäisten konfiguraatioiden välisestä ajasta Jos pidämme ajan τ obs samana, mutta lisäämme otoksen suuruutta pienentämällä väliä δt, emme silti saavuta mitään: statistinen virhe pysyy samana Vain suhde merkitsee τ A τ obs 1 Esimerkkinä autokorrelaatiofunktioista ks kuva 415
Eli periaatteessa simuloinneista laskettujen ensemblekeskiarvojen virheen laskemiseksi olisi laskettava kyseisen suureen korrelaatioaika ja siten autokorrelaatiofunktio Tässä on ylimääräistä työtä melko paljon, joten tehtävään on kehitetty muita menetelmiä Ns blokkimenetelmässä lasketaan simulointidatasta :n pituisia keskiarvoja τ B 89 τ B 1 A B ----- At () dt τ B 0 (638) Blokkikeskiarvot eripituisilla blokeilla voidaan helposti laskea simuloinnin kuluessa tai jälkeenpäin raakadatasta Blokkikeskiarvo varianssi on σ 2 B ( A) n B 1 ----- ( A B A ) 2 n B b 1, (639) missä n B on blokkien lukumäärä Jos τ B on paljon suurempi kuin korrelaatioaika τ A ja lisäksi näytteitä blokkikeskiarvoon on otettu niin tiheään, että δt «, pätee tällöin τ A σ 2 B ( A) 2τ -------- A [ A 2 A 2 ] τ B (640) Emme kuitenkaan tiedä korrelaatioaikaa τ A Siksi laskemme suureen P( τ B ) τ B σ 2 ----- B ( A) ----------------------------- 2 A 2 A 2 (641) τ B Rajalla» τ A suure P( τ B ) lähestyy korrelaatioaikaa τ A Eli piirrämme P( τ B ):n τ B :n funktiona 1 ja arvioimme raja-arvon lim P( τ B ) τ A τ B Blokkimenetelmää voi käyttää myös tutkittaessa, onko simulaation pituus riittävä Jos huomaamme, että rajalla τ B τ obs suure P( τ B ) vielä riippuu voimakkaasti blokin τ B :stä, on ajomme liian lyhyt Kuvassa 617 on esitetty 256 neonatomin systeemin potentiaalienergian blokkikeskiarvojen käyttäytyminen blokin koon funktiona 1 Tai mieluummin 1 P( τ B ):n 1 τ B :n funktiona
90 1/P( B ) 02 018 016 014 012 01 008 006 004 P( B ) 14 12 10 8 6 4 2 0 0 500 1000 1500 2000 B 00 001 002 003 004 1/ B Kuva 617: Neonatomisysteemin potentiaalienergian blokkikeskiarvosuureen (641) käyttäytyminen blokin koon funktiona Suure P( τ B ) saturoituu suunnilleen arvoon P( τ B ) 10 Korrelaatioaika on siis 10 eli simulaatiodatasta vain joka kymmenennen konfiguraation voidaan katsoa olevan riippumattomia
91 66 Satunnaisluvuista Simuloinneissa tarvitaan suuria määriä eri tavoin jakautuneita satunnaislukuja Eri tavalla jakautuneet luvut saadaan tekemällä esimerkiksi jokin muunnos tasaisesti välille [ 01, ] jakautuneille luvuille Käsittelemmekin ensin niitä 661 Tasaisesti jakautuneiden satunnaislukujen generointi 1 Satunnaisluvut voidaan periaatteessa jakaa kolmeen luokkaan i Aidot satunnaisluvut tuotetaan jonkin fysikaalisen prosessin pohjalta (esim radioaktiivinen hajoaminen tai sähköinen kohina) Tämä on kuitenkin melko epäkäytännöllinen tapa ii Pseudosatunnaisluvut tuotetaan deterministisen algoritmin avulla tietokoneella eli ne eivät ole aidosti satunnaisia, mutta voivat approksimoida aitoja satunnaislukuja hyvin iii Valesatunnaisluvut tuotetaan myös algoritmin avulla Niillä ei kuitenkaan pyritä aitoon satunnaisuuteen vaan ne on yleensä räätälöity tiettyyn sovellutukseen Esimerkiksi Monte Carlo -integroinnissa voidaan käyttää valesatunnaislukuja peittämään tietty avaruuden osa yhä tiheämmällä ja tiheämmällä pistejoukolla Näin voidaan saada tuloksen statistinen virhe pienemmäksi Julkaistuja satunnaislukutaulukoita käytettiin aikaisemmin satunnaislukujen lähteenä Niihin luvut oli saatu esim fysikaalisista prosesseista, puhelin- ja väestöluetteloista jne Käytännössä kaikki simulaatioissa käytettävät satunnaisluvut ovat pseudosatunnaislukuja eli ne tuotetaan satunnaislukugeneraattorilla simulointiohjelmassa Hyvältä satunnaislukugeneraattorilta vaaditaan mm seuraavia ominaisuuksia i Luvuilla tulee olla hyvä jakauma eli niiden tulee olla lähellä satunnaista Simulaatioissa tärkeä ominaisuus on etteivät satunnaislukujonon luvut eivät saa olla millään tavalla korreloituneita Saman tulee päteä myös n :n peräkkäisen luvun jonoille Numeerisessa integroinnissa taas tärkein ominaisuus on jakauman tasaisuus ii Lukujonolla tulee olla pitkä periodi Generaattoreiden toteutustavasta johtuen ne alkavat tietyn jakson jälkeen toistamaan itseään iii Lukujonojen tulisi olla toistettavia Usein halutaan tutkia tulosten riippuvuutta tie- 1 I Vattulainen ym (HIP) ovat tutkineet (pseudo)satunnaislukugeneraattoreiden ominaisuuksia Hyviä referenssejä löytyy heidän WWW-sivulta http://wwwphysicshelsinkifi/~vattulai/publicationshtml Tämän luvun materiaali perustuu pääosin yllämainitun ryhmän julkaisuihin Lisäksi voisi mainita seuraavat julkaisut: IVattulainen, ym CSC Research Reports, R05/92 T E Hull, A R Dobell, SIAM Review 4 (1962) 230 S L Anderson, SIAM Review 32 (1990) 221 P L Ecuyer, Ann Oper Res 53 (1994) 77 A Compagner, Am J Phys 59 (1991) 700 F James, Comput Phys Commun 60 (1990) 329
tyistä parametreista, jolloin halutaan ajaa useita ajoja täsmälleen samalla lukujonolla Joissain tapauksissa halutaan aloittaa simulaatioajo tietystä kohdasta, jolloin generaattorin tila on tallennettava Tila voi koostua yhdestä tai useammasta kokonaisluvusta iv Generaattorin tulisi olla helposti siirrettävissä koneympäristöstä toiseen Algoritmi tulee siten laatia jollain korkean tason kielellä v Generaattorin tulee olla luonnollisesti riittävän nopea Tämän ominaisuuden merkitys on ehkä tietokoneiden ja simulointialgoritmien kehittyessä hieman vähentynyt (Yhtä satunnaislukua kohti tehdään yhä enemmän asioita) vi Algoritmin tulisi olla rinnakkaistettavissa Satunnaislukugeneraattorit toteutetaan useimmiten kokonaislukuaritmetiikalla, ja haluttu välille [ 01), sjoittuva reaaliluku saadaan skaalaamalla Seuraavassa esitellään lyhyesti yleisimmät algoritmit 92 Lineaarinen kongruentiaaligeneraattori on vanhin tyyppi Se on muotoa x i 1 + ( ax i + c) mod m, (642) missä luvut x i muodostavat halutun satunnaislukujonon Oleelliset parametrit ovat a, c ja m ja siitä käytetään merkintää LCG( a, c, m) Parametri m on yleensä tietokoneen suurin mahdollinen kokonaisluku tai sitä hiukan pienempi ja se määrää generaattorin jakson pituuden P Sille pätee P m Esimerkiksi 32-bittisellä koneella yleinen valinta on 2 31 1 tai 2 32 Tulos saadaan välille [ 01), skaalaamalla: m x i Vakio c voidaan myös asettaa nollaksi, jolloin käytetään merkintää MLCG( am, ) Lukujonon aloittamiseen tarvitaan siemenluku Se voidaan antaa ohjelmalle syöttötietona tai sen voi laskea esimerkiksi kellonajan perusteella Alla C-kielinen esimerkki #include <sys/timeh> int getseed() { int i; struct timeval tp; if (gettimeofday(&tp,(struct timezone *)NULL)0) { itptv_sec+tptv_usec; i(i%1000000) 1; return i; } else { return -1; } } Ja itse generaattori [esimerkkinä LCG( 69069, 1, 2 32 ) ]: x 0
93 float lcg(long int *seed) { static long int a69069,c1,m4294967296; /* 2^32 */ static float rm42949672960; } *seed(*seed*a+c)%m; return (float)*seed/rm; Ja lyhyt pääohjelma, joka käyttää edellämainittuja rutiineja: #include <stdioh> #include <stdlibh> long int getseed(); float lcg(long int *iseed); main (int argc, char **argv) { long int seed; int i; float r; seedgetseed(); fprintf(stderr, Seed %ld\n,seed); for (i1;i<10001;i++) fprintf(stdout, %g %g\n,lcg(&seed),lcg(&seed)); } return(0); LCG-generaattoreiden ominaisuudet tunnetaan kohtalaisen hyvin Niiden ehkä suurin heikkous on se, että satunnaislukujen d -kertojen { x i + 1, x i + 2,, x i+ d } muodostamat pisteet asettuvat d -ulotteisessa avaruudessa lukuisiin samansuuntaisiin hypertasoihin, joiden keskimääräinen etäisyys toisistaan on vakio Tasojen lukumäärän teoreettinen maksimi d -ulotteisessa hyperkuutiossa [ 01), d on [ d!m] 1/ d Jos lukumäärä on tätä oleellisesti pienempi, on pisteiden jakauman tasaisuus heikko Tavoitteena on etsiä parametrit ( am, ), joiden avulla maksimoidaan hypertasojen lukumäärä Alla esimerkkinä tapaus d 2 kahdella eri parametrijoukolla
94 Kuva 618: Huonolaatuinen LCG-generaattori Esimerkki käytännön satunnaislukugeneraattorista on kuvassa 619 oleva Tasot löytyvät hyvänlaatuisestakin generaattorista, kunhan zoomataan tarpeeksi (kuva 620) Generaattorin lukujonon laatu riippuu siis parametreista Niiden valinta on melko hankalaa, joten parasta lienee tukeutua generaatoreihin, joita löytyy kirjallisuudesta Viiveistettyjen Fibonacci-generaattoreiden (LF) toiminta perustuu Fibonacci-lukujonon yleistykseen 0 05 10 x n 0 05 10 0 05 10 x n 0 05 10 x n+1 LCG(128,0,509) LCG(269,0,2048) LCG 69069 1 2 32,, ( ) 0 05 10 x n 0 05 10 x n+1 Kuva 619: Hyvänlaatuinen LCGgeneraattori 0 05 10 x n /1000 0 05 10 x n+1 Kuva 620: Hyvänlaatuisen LCG-generaattorin korrelaatiot Generaattori on sama, jota käytettiin laskuharjoitusten Ising-malliohjelmassa x i x i 1 x i 2 +
95, (643) missä parametrit ja ovat viiveitä ( ) ja on jokin binäärioperaatio seuraavista vaihtoehdoista + yhteenlasku erotus tulo XOR (exclusive OR), jos on kahden potenssi Generaattorista käytetään merkintää Sen alustaminen vaatii kappaletta siemenlukuja, jotka voidaan esimerkiksi tuottaa jollain toisella generaattorilla LF-generaattoreiden käyttö on melko uutta, joten niiden teoreettisista ominaisuuksista ei kovin paljon tiedetä Niiden jakso pystytään laskemaan ja niiden etuna onkin pitkä jakso Tietyillä ehdoilla 1 jakson pituudeksi tulee peräti Kirjallisuudessa esiintyy suosituksia, että operaatiota ei kannata käyttää, koska siinä ei tapahdu tarpeeksi lukujen bittien sekoittumista Esimerkki LF-generaattorista on kirjan Numerical Recipes generaattori RAN3, joka on muotoa Samantyyppisiä korrelaatioita kuin LCG-generaattoreilla ei esimerkiksi RAN3:lla esiinny (kuva 621) Kolmas yleinen tapa on siirtorekisterit Ne voi hahmottaa LF-generaattorin erikoistapauksena Ne perustuvat bittijonoon, jonka termin määritellään rekursiivisesti: (644) Kertoimet ovat joko nollia tai ykkösiä ja, jolloin binäärijonon -kertojen periodi on maksimissaan Satunnaiset kokonaisluvut saadaan näistä -kerroista Käytännössä jonon kertoimet valitaan yhtälön (643) mukaisesti Kertoimet ja ovat siten ykkösiä ja muut nollia Valitsemalla binäärioperaatioksi ja asettamalla, jonon muodostuminen on kuvan (622) mukainen 1 D E Knuth, Semi-Numerical Algorithms, vol 2: The Art of Computer Programming, 3rded (Addison- Wesley, Redding, MA, 1998) x i x i q x i r ( ) mod m q r q r > m LF qr,, ( ) q 2 p 1 ( ) 2 m 1 ( ) 0 05 10 x n /1000 0 05 10 x n+1 Kuva 621: Generaattori RAN3 LF 55 24,, ( ) m 2 b b i { } b i c 1 b i 1 c 2 b i 2 c w b i w + + + ( ) mod 2 c j j 1 w 1,, ( ) c w 1 w b i 1 b i 2 b i w,,, { } 2 w 1 w b i { } c j c q c r m 2
96 w bitin satunnaisluku i j 1 i r j w i q + 2 i q + 1 i q Kuva 622: Siirtorekisterigeneraattori Tämä generaattorin ongelma on periodin lyhyys, joten siitä on kehitetty yleistetty versio: yleistetty takaisinkytketty siirtorekisteri (GFSR) Idean on käsitellä kokonaislukuja vastaavia bittijonoja B i { b j + 1, b j + 2,, b j+ w } ja suorittaa binäärioperaatio näiden jonojen välillä yhtälöä (644) vastaavalla tavalla: B i ( c 1 B i 1 + c 2 B i 2 + + c q B q 1 ) mod 2 (645) Kertoimet valitaan yleensä yhtälön (643) mukaan Eli kuvana 1 2 w B i q 1 2 w B i r 1 2 w B i Kuva 623: Yleistetty takaisinkytketty siirtorekisteri GFSR-generaattorin etuna on periodin pituus, jonka määrää takaisinkytkennän pituus q Generaattoreista on kuitenkin löytynyt korrelaatioita, jotka hyvin vaativissa simulaatioissa voivat vaikuttaa tuloksiin 1 Esimerkkinä GFSR-generaattorista olkoon R250: /* r250 random number generator A past shift-register sequence random number generator with maximum cycle lenght 2**250 The algoritrm is based on the formula represented by S Kirkpatrick and E Stoll (see Journal of Computational Physics 40, 527 (1981), pages 517-526) parameters: x integer input-output array of dimension n + 250 before 1 I Vattulainen ym, Phys Rev Lett 73 (1994) 2513
97 first call to the subroutine the elements 1-250 of the array must be filled with seeds r - floating point output array of dimension n r contains uniformy distributed random numbers between [0,1[ n - integer input scalar, the dimension of r Example call (function ran returns a random number in [0,1]): #define N250 10251 #define N 10000 #define N1 10001 int i; int x[n250]; float r[n1]; for (i1;i<250;i++) x[i]21474836470*ran(&seed); r250(x,r,n); */ void r250(int *x,float *r,int n) { static int q103,p250; static double rmaxin21474836480; /* rmaxin 2**31 to avoid */ /* the return of one (32-bit machine) */ int i,k; for (k1;k<n;k++) { x[k+p]x[k+p-q]^x[k]; r[k](float)x[k+p]/rmaxin; } for (i1;i<p;i++) x[i]x[n+i]; } R250:ssä ei ole yhtä pahoja 2-kertakorrelaatioita kuin LCG-generaattoreissa (ks kuva (624)) Eri generaattoreita ja menetelmiä voidaan tietysti myös yhdistellä satunnaisuuden parantamiseksi Yksinkertaisessa sekoitusmenetelmässä käytetään kahta satunnaislukugeneraattoria, jotka tuottavat tasaisesti välille jakautuneet lukujonot ja Menetelmässä poimitaan lukujonon avulla näytteitä jonosta Kokeellisesti on havaittu, että yhdistämällä kahden tai useamman satunnaislukugeneraattorin tulokset voidaan saada lukujono, jonka satunnaisuus voi olla sen osia parempi Olkoot kombinaation osina lukujonot ja, Näiden maksimiarvot ovat ja ja 0 05 10 x n /1000 0 05 10 x n+1 Kuva 624: Generaattorin R250 korrelaatiot 01), [ x' i { } y' i { } y' i { } x' i { } x i { } y i { } X Y
98 m max( X, Y) Näiden kombinaatio on z i ( x i y i ) mod m, (646) jossa on jokin operaatioista ( +,,, ) Luvut z i normalisoidaan välille [ 01), : z i m Jos lukujonot { x i } ja { y i } on jo normitettu välille [ 01),, voidaan kombinaatio muodostaa esimerkiksi seuraavasti x i + y i x i + y i, jos operaatio on + z i x i y i, jos operaatio on - x i y i, jos operaatio on (647) Kombinaatiogeneraattorien maksimiperiodi on varsin pitkä Esimerkkinä kombinaatiogeneraattorista on RANMAR Ensimmäinen komponentti on LF( 97, 33, ), missä operaatio kahden reaalisen satunnaisluvun välillä on x i x j x i x j, jos x i x j x i x j + 1, jos x i < x j (648) Toisena generaattorina on yksinkertainen aritmeettinen jono moduluksen ollessa alkuluku m 2 24 3 16777213 24-bittiselle realliluvuille tämä voidaan toteuttaa binäärioperaatiolla g : y i y i g y i y i g, jos y i g g + 16777213 16777216, jos y i < g, (649) missä g 7654321 16777216 (650) Kombinaation tulos saadaan näiden kahden operaation avulla: x i x i 97 y i y i 1 g z i x i y i x i 33 (651) 43 RANMARin jakso on pitkä P 2 144 2 10, ja sillä voidaan toteuttaa lukuisa määrä erillisiä osajonoja Viimeksi mainittu piirre on tärkeä simulointiohjelmia rinnakkaistettaessa Lisäksi generaattori on täysin siirrettävissä koneesta toiseen Toisaalta generaattorin tilan tallettamiseen tarvitaan 103 luvun talletus
Generaattoreiden testaukseen ei ole olemassa kovin hyviä teoreettisia keinoja, joten testaus on tehtävä empiirisesti käyttäen erilaisia mm statistisia menetelmiä i Tilastollisia testejä ovat mm 99 a) χ 2 -testi, Kolmogorov-Smirnov-testi b) run-testi, jossa tutkitaan monotonisesti kasvavien lukujonojen pituuksia; c) spektraalitesti, jossa tutkitaan d kertojen sjoittuminen d -ulotteiseen avaruuteen jne ii Lisäksi voidaan tutkia lukujonojen satunnaisuutta bittitasolla, jos generaattori on toteutettu kokonaislukuaritmetiikalla iii Lopulta voidaan tehdä visuaalisia testejä Eräs yksinkertaisimmista ja ilmeisimmistä on jo aikaisemmin mainittu satunnaislukuparien sijoituminen yksikköneliöön Näin voidaan löytää sekä globaaleja että lokaaleja epäsatunnaisuuksia Myös bittitasolla voidaan tehdä visuaalisia testejä iv Viime aikoina on testaukseen käytetty myös tiettyjä fysikaalisia suureita 1 Esimerkkinä autokorrelaatioajat Ising-mallin MC-simulaatiossa Näin on löydetty mm lyhyen kantaman korrelaatioita siirtorekisterigeneraattoreista Edellämainitussa julkaisussa 2 testattiin kahdeksaa satunnaislukugeneraattoria tilastollisilla, bittitason ja visuaalisilla testeillä Yhteenvetona tässä tutkimuksessa todetaan, että generaattoriluokan valinta ei ole olennaisen tärkeää etsittäessä hyvää generaattoria Parhaiten testeissä menestyivät R250 ja RANMAR R250 on kuitenkin alustettava kunnollisesti (ei bittitason korrelaatioita) Lisäksi on huomattava, että tämän tutkimuksen jälkeen on GFSR-generaattoreista löydetty korrelaatioita, jotka voivat joissain tapauksissa vaikuttaa simulaatiotuloksiin Mikään yksittäinen testi ei voi kertoa, mikä generaattori on paras Eri sovellutuksissa on erilaiset vaatimukset Viime aikoina on kuitenkin pyritty kehittämään testejä, jotka testaavat juuri tietyissä sovellutuksissa vaadittavia ominaisuuksia Jos epäilet satunnaislukugeneraattorisi laatua, on yksi hyvä tapa kokeilla jotain toista (eri generaattoriluokkaan) kuuluvaa generaattoria, ja katsoa muuttuvatko tulokset 1 I Vattulainen ym, PRL 73 (1994) 2513 2 I Vattulainen ym, CSC Research Reports R05/92
100 662 Erilaiset sartunnaislukujakaumat Miten saamme aikaan halutulla tavalla jakautuneita satunnaislukuja olettaen, että käytössä on satunnaislukugeneraattori, joka antaa tasaisesti välillä 0 1 jakautuneita lukuja? Olkoon haluttu todennäköisyysjakauma f( x) välillä [ ab, ] Sille tietysti pätee f( x) f() x 0, x [ a, b] (652) b f ( x ) dx 1 a (653) Olkoon F( x) kumulatiivinen jakauma a Kuva 625: Todennäköisyysjakauma x F() x f( x' ) dx' r a (654) Määritelmän mukaan voimme siis kuvata F( x) :n satunnaismuuttujalle r [ 01, ] Tarkastellaan kuvan mukaisia yhtäsuuria alueita dx 1 ja dx 2 paikoissa x 1 ja x 2 F( x) dr 2 dr 1 a dx 1 dx 2 b Kuva 626: Kumulatiivinen todennäköisyysjakauma x Helposti näemme, että dr ------- 1 dr 2 ( df( x) dx) x x1 ------------------------------------------ ( df( x) dx) x x2 f( x 1 ) ------------- (655) f( x 2 ) Eli valitsemalla tasaisesti jakautuneita satunnaislukuja, niiden lukujen lukumäärä, jotka osuvat välille dr 1 suhteessa välille dr 2 osuneisiin on näiden pisteiden todennäköisyystiheyksien suhde
101 Halutulla tavalla jakautuneita satunnaislukuja x saadaan tasaisesti jakautuneista luvuista kumulatiivisen jakauman käänteisfunktion avulla r x F 1 ( r) (656) Ja kaikilla laillisilla todennäköisyystiheysfunktioilla on käänteisfunktio Ensimmäisenä esimerkkinä olkoon fotonin kulkema matka z väliaineessa (yksiköissä keskimääräinen vapaa matka) Todennäköisyysjakauma on muotoa f( z) e z, (657) josta saadaan kumulatiivinen jakauma z F( z) e z' d z' 1 e z 0 (658) Tästä edelleen z ln( 1 r) (659) Koska 1 r ja r ovat samalla tavalla jakautuneet voidaan käyttää muotoa z lnr (660) Toisena esimerkkinä arvotaan R -säteisen pallon sisään tasaisesti jakautuneita pisteitä Pallokoordinaatistossa φ ja cosθ ovat tasaisesti jakautuneita Tiheysfunktion säderiippuvuus f( r) on f( r) A4πr 2 Normituksesta saadaan vakio A : (661) Kumuloitunut jakauma on siten R A4πr 2d 3 r 1 A ----- R 4π 3 f( r) 0 3 -----r 2 R 3 (662) r 3 F( r) f( r' ) dr' ----- 1 r 3 3 --r3 ----- s 0 R 3 R 3 satluku (663) Eli muunnoskaava tasaisesti jakautuneelle satunnaisluvulle s on
102 r F 1 ( s) Rs 13 / (664) Tällöin voidaan käyttää hylkäysmenetel- Aina ei ole mahdollista muodostaa funktiota mää: F 1 i Muodostetaan todennäköisyysjakaumasta uusi funktio f '( x) f( x) ---------- f max (665) ii Generoidaan tasaisesti jakautunut satunnaisluku r 1 [ 01, ] Normitetaan tämä välille [ ab, ]: x a + ( b a)r 1 Jos väli [ ab, ] ei ole äärellinen on tehtävä muunnos, jolla se palautetaan äärelliseksi Esim x [ a, ] voidaan palauttaa muunnoksella x a[ 1 ln( 1 y) ] välille y [ 01, ] iii Generoidaan satunnaisluku r 2 [ 01, ] Jos r 2 < f '( x), hyväksytään x, muuten palataan askeleeseen ii 1 f '( x) 0 a x b Kuva 627: Hylkäysmenetelmä x Tämähän on jo meille tuttu menetelmä Sitä käytetään Monte Carlo -simulaation uuden tilan hyväksymisessä Menetelmässä tietysti tuhlataan satunnaislukuja; etenkin, jos f( x) on kovin piikittynyt Näiden kahden menetelmän yhdistelmää voidaan myös käyttää Olkoon f( x) piikittynyt ja vaikeasti käännettävissä ja integroitavissa Voimme kuitenkin jakaa sen osiin f( x) gx ( )hx ( ), (666) missä gx ( ) on helposti käännettävissä ja sisältää enimmän piikittyneisyyden ja hx ( ) on melko tasainen, mutta matemaattisesti monimutkainen Satunnaisluvut voidaan generoida seuraavan reseptin mukaan
103 b i Skaalataan gx ( ) g ( x) siten, että g x a ( ) 1 ii Skaalataan h( x) h ( x) siten, että h ( x) 1 x [ a, b] iii Käyttäen edellämainittua suoraa menetelmää generoidaan satunnaisluku noudattaa jakaumaa g ( x) x, joka iv Käyttäen satunnaislukua x sovelletaan hylkäysmenetelmää jakaumafunktiona nyt h ( x) : Generoidaan satunnaisluku r [ 01, ]; jos h ( x) r, hyväksy x, muuten mene askeleeseen iii Otetaan esimerkkinä vielä ympyräkollimoidun hiukkassuihkun generointi Tässä tapauksessa normitettu todennäköisyystiheysfunktio on [sylinterikoordinaatistossa ( ρφ, )] d 2 f ( ρ, φ) 1 --------ρdρdφ, 0 ρ ρ, (667) πρ 0 0 φ 2π 0 Tässä on suihkun läpimitta ja φ atsimuuttikulma Tämä jakauma separoituu missä ρ 0 d 2 f ( ρ, φ) df 1 ( ρ)df 2 ( φ), (668) d f 1 ( ρ) 2 -----ρdρ ρ2 0 (669) ja d f 2 ( φ) 1 ----- dφ 2π (670) Suoraa menetelmää käyttäen saamme satunnaisluvut seuraavasti Kumuloituvat jakaumat ovat F 1 ( ρ) ρ 2 ----- ρ' dρ' ρ2 0 0 ρ ----- 2 ρ2 0 (671) F 2 ( φ) φ 1 ----- dφ' 2π 0 φ ----- 2π (672)
104 Kun nämä käännetään, saadaan ρ ρ 0 ξ 1, (673) φ 2πξ 2, (674) missä ξ i ovat tasaisesit välillä [ 01, ] jakautuneita satunnaislukuja Eli C-koodinpätkä, joka tekee tämän voisi näyttää seuraavalta rho rho0 * sqrt(rand(&seed)); phi 20*pi * rand(&seed); x rho*cos(phi); y rho*sin(phi); Funktio rand(&seed) antaa tasaisesti välille [ 01, ] jakautuneen satunnaisluvun Hylkäysmenetelmää käyttäen arvomme tasaisesti pisteen neliön 1 x 1, 1 y 1 sisällä ja hyväksymme sen, jos se osuu yksikkösäteisen ympyrän sisälle Koodina se voisi näyttää seuraavalta: do { x 20*rand(&seed)-10; y 20*rand(&seed)-10; } while (x*x+y*y>10); x rho0*x; y rho0*y;
105 67 Atomien välisistä vuorovaikutuspotentiaaleista 671 Yleistä Teoreettisissa simulaatioissa vuorovaikutuspotentiaali valitaan laskennallisesti helpoksi; yleensä paripotentiaaliksi Esimerkkinä Lennard-Jones (LJ) V( r) 4ε σ -- r 12 σ -- r 6 (675) Jos on tarkoitus saada koetuloksiin verrattavia tuloksia on käytettävä realistista potentiaalia Simulaatioihinkin pätee tokaisu garbage in garbage out Yleisesti N :n atomin tai molekyylin systeemin potentiaalienergia voidaan esittää sarjana: V + N i 1 N i 1 j> i N v 1 ( r i ) v 2 ( r i, r j ) + v 3 ( r i, r j, r k ) + i 1 j> ik > i, j (676) v 1 on ulkoinen potentiaali, esimerkiksi sähkökenttä Paripotentiaaliapproksimaatiossa otetaan vain ja v 2 mukaan Tällöin v 2 ei välttämättä ole sama kuin dimeerin potentiaali: Yleisesti kahden atomin välinen potentiaali näyttää kuvan 628 mukaiselta Pienillä etäisyyksillä vallitseen elektronikuorien päällekkäinmenosta johtuva repulsio Suuremmilla etäisyyksillä eri syistä johtuva attraktio: van der Waals, Coulombin vuorovaikutus, metallisidos, kovalenttinen sidos Potentiaalilla on minimi etäisyydellä r 0 Atomien välisten sidosten luonteen määrää se, mistä jaksollisen järjestelmän ryhmästä aineet ovat v 1 V(r) r 0 Kuva 628: Kahden atomin välinen vuorovaikutuspotentiaali r
106 Kuva 629: Kemiallisen sidoksen luonne Se, että atomisysteemiä voidaan kuvata vuorovaikutuspotentiaalin avulla perustuu Born- Oppenheimer-approksimaatioon Sen mukaan atomien elektronikuoret reagoivat välittömästi ytimien paikkojen muutokseen 672 Idealisoidut potentiaalit Monesti emme ole kiinnostuneita täsmällisistä luvuista, joita saadaan ulos simulaatioista, vaan ennemminkin systeemin kvalitatiivisesta käyttäytymisestä Tällöin voimme käyttää idealisoituja potentiaaleja, joiden muodossa on realististen potentiaalien pääpiirteet, mutta jotka ovat laskennallisesti yksinkertaisia Kuvassa 630 on esitetty muutama yleisesti käytetty potentiaali
107 vr () vr () σ σ 1 a) b) r σ 2 r vr () vr () c) d) r r Kuva 630: Idealisoituja potentiaaleja: a) kovan pallon potentiaali, b) laatikkopotentiaali, c) pehmeän pallon potentiaali ( ν 1 ), d) pehmeän pallon potentiaali ( ν 12 ) Kova pallo -potentiaalissa (hard sphere) on vain repulsiivinen osa: V HS ( r), r < σ 0, r σ (677) Ensimmäiset MC-simulaatiot 1 tehtiin tällä potentiaalilla Kuten aikaisemmin mainittiin, kovien pallojen MC-simulaatio redusoituu melko yksinkertaiseen muotoon Jos kovaan palloon lisätään vakioattraktio saadaan laatikkopotentiaali (square well): V SW ( r), r < σ 1 ε, σ 1 r < σ 2 0, r σ 2 (678) 1 Ja myös ensimmäiset MD-simulaatiot
Jos epäjatkuvuus kovan pallon potentiaalissa tuottaa vaikeuksia voidaan jyrkkyyttä loiventaa: saadaan pehmeä pallo -potentiaali (soft sphere): 108 V SS ( r) ε σ -- ν r (679) Kova pallohan saadaan pehmeästä raja-arvona V HS () r lim V SS ( r) ν (680) Joskus on käytännöllistä jakaa potentiaali attraktiiviseen ja repulsiiviseen osaan Esimerkiksi Lennard-Jonesin tapauksessa V LJ r () r 4ε -- σ 12 r -- σ 6 V R LJ () r + V A LJ( r), (681) missä V R V LJ () r + ε r < r LJ min () r 0 r r min (682) ja V A ε r < r min LJ () r V LJ () r r r min (683) vr () v R LJ () r r min r v A LJ () r
Kuva 631: Lennard-Jones-potentiaalin jako repulsiiviseen ja attraktiiviseen osaan 109 673 Redusoidut yksiköt Jos potentiaalilla on sopivia skaalautumisominaisuuksia, voidaan laskuissa käyttää redusoituja yksiköitä Tällöin eri systeemien tulokset saadaan skaalaamalla toisistaan Lisäksi redusoitujen yksikköjen käyttö helpottaa hieman laskentataakkaa: ylimääräisiä vakioita jää pois Esimerkiksi otamme tutun Lennard-Jones-potentiaalin: V( r) 4ε σ -- r 12 σ -- r 6 εf( r σ), (684) missä f() x 4x ( 12 x 6 ) (685) Tästä voimme helposti päätellä, että i pituuden luonnollinen yksikkö σ ii energian luonnollinen yksikkö ε Eli r * r σ, E * E ε (686) Muut yksiköt saamme ylläolevista helposti: aika: t * t [( mσ 2 ) ε] 1 2 (687) tiheys: ρ * ρσ 3 (688) lämpötila: k B T ε (689) T * paine: P * Pσ 3 ε (690) voima: fσ ε (691) f * nopeus: v * v [ ε m] 1 2 (692)
110 674 Realistiset potentiaalit Jos haluamme mallintaa tarkemmin jotain tiettyä materiaalia, eivät edelläesitellyt idealisoidut potentiaalit riitä, vaan on käytettävä realistisempia malleja Realistiset potentiaalimallit kehitetään yleensä olettamalla jokin tietty funktionaalinen muoto systeemin potentiaalienergialle atomien paikkojen funktiona ja määrittämällä malliparametrit sovittamalla kokeelliseen dataan tai ns ab initio -menetelmillä laskettuihin tuloksiin Hyvin yleinen yksinkertaistus on paripotentiaaliapproksimaatio Se kuvaa melko hyvin jalokaasuja, on melko hyvä alkalihalideille ja tietyille ionisille oksideille, kohtalainen metalleille (riippuu metallista ja halutuista ominaisuuksista), mutta huono kovalenttisille yhdisteille Ab initio -menetelmistä voisi mainitia esimerkiksi Hartree-Fock-menetelmän lähinnä ioniyhdisteiden potentiaalien laskemisessa ja tiheysfunktionaaliteorian (density functional theory, DFT) paikallisen tiheyden approksimaatiolla (local density approximation, LDA) maustettuna 1 Kokeellisesti potentiaaleja määritettäessä funktionaalinen muoto on usein saatu jostain teoriasta Potentiaalin parametrit saadaan sovittamalla potentiaalin ennustamat aineen ominaisuudet mittaustuloksiin tai jollain ab initio -menetelmällä laskettuihin tuloksiin 2 Yleensä käytetään seuraavia suureita kideparametri a (tai kiderakenne yleensä) koheesioenergia E coh elastiset vakiot c ij kidevaurioiden energiat pintojen stabiilisuus hilavärähtelyjen dispersiorelaatiot ω( k) Jalokaasujen potentiaalienergia koostuu van der Waals -attraktiosta ja repulsiosta Funktionaalisena muotona on esimerkiksi Lennard-Jones V( r) 4ε σ -- r 12 σ -- r 6 (693) tai Morse 1 RO Jones, O Gunnarsson, Rev Mod Phys 61 (1989) 689 2 CRA Catlow, WC Mackrodt eds, Computer Simulation of Solids, Springer, 1982, luku 1
111 ( ) V ( r) De 2α r r 0 ( ) 2De α r r 0 (694) Ioniyhdisteillä erityispiirteenä on pitkän kantaman Coulombin vuorovaikutus Eli potentiaali koostuu periaatteessa kolmesta termistä 1 : i Coulombin vuorovaikutus: V zz ( r ij ) z i z ----------------- j 4πε 0 r ij, (695) missä z i ja z j ovat ionien i ja j ionivaraukset ii Lyhyen kantaman repulsio, joka syntyy elektronikuorten päällekkäinmenosta (esimerkiksi eksponenttimuoto): V SR () r Ae r / ρ (696) iii van der Waals -attraktio, joka syntyy ionien dipoli-dipolivuorovaikutuksesta (ns dispersiovuorovaikutus): V vdw () r C ---- r 6 (697) Ääritapaus on alkalihalidit: Monihiukkasvuorovaikutus ei ole kovin suuri, mutta ionien polarisaatio vaikuttaa: optiset fononit Oksideilla on jo kovalenttisuutta sidoksissa Yksinkertaiset metallit (sp-metallit, esimerkiksi Na, Mg, Al) ovat kuvattavissa jossain määrin paripotentiaaleilla Useimmiten käytetään Morsen potentiaalia: V ( r) De 2α r r 0 ( ) ( ) 2De α r r 0 (698) Transitiometalleilla (d-kuori vajaa) monihiukkasvuorovaikutus tulee kuvaan mukaan Paripotentiaalimallista seuraa ns Cauchyn relaatio: c 12 c 44 (699) 1 CRA Catlow, WC Mackrodt eds, Computer Simulation of Solids, Springer, 1982, luku 10
112 Tämä pätee kuitenkin vain harvoille metalleille (ks kuva 632) Paripotentiaalimallin ennustamat vakanssien muodostumisenergiat ovat liian suuret Lisäksi paripotentiaalimalli kuvaa huonosti metallipintojen relaksaatiota ja rekonstruktiota Viimeisen vuosikymmenen aikana on ns tiheysfunktionaali- ja tight binding -teorioden perustalta kehitetty monihiukkaspotentiaaleja, jotka kuvaavat metalleja varsin realistisesti Esimerkkinä olkoon Finnisin ja Sinclairin semiempiirinen N-hiukkaspotentiaali 1, joka saa perustelunsa tight binding -approksimaatiosta Sen mukaan koheesioenergia atomia kohti on verrannollinen koordinaatioluvun 2 neliöjuureen 3 : V coh z (6100) Atomin i energia lausutaan muodossa Kuva 632: Eräiden kuutiollisten kiteiden elastisia vakioita [NWAshcroft, NDMermin: Solid State Physics] V FS 1 i -- Φ( r 2 ij ) j i j i η( r ij ) 1/ 2, (6101) missä Φ on paripotentiaali ja η on ns koheesiopotentiaali, joka oli alunperin parabolista muotoa Kovalenttisissa aineissa paripotentiaaliapproksimaatio ei päde ollenkaan Otetaan esimerkiksi pii Timanttikide on avoin kiderakenne Se on kaukana tiivispakkauksesta: jokaisella atomilla on vain 4 lähinaapuria (Vertaa fcc- ja hcp-rakenteisiin: 12 lähinaapuria) Piitä voidaan yrittää mallintaa paripotentiaalilla, mutta siinä on otettava huomioon myös toiseksi lähimmät naapurit 4 Tämä malli ei ole kovin käyttökelpoinen Kuva 633: Timanttirakenne 1 MW Finnis, JE Sinclair, Phil Mag A 50 (1984) 45 2 Atomin koordinaatioluku on sen lähinaapureiden lukumäärä 3 Huomaa, että paripotentiaalimalli ennustaa lineaarisen riippuvuuden 4 Yu Knyhznikov, Rad Eff 26 (1975), A Mazzone Phil Mag Lett 60 (1989) 131, Phys Stat Sol 165 (1991) 395
113 Vr () Morse harmoninen r 0 r1 r Kuva 634: Paripotentiaali piille Kovalenttisia aineita mallinnetaan nykyään yleensä kolmi- tai monihiukkaspotentiaalilla Kolmihiukkaspotentiaalin tapauksessa energia riippuu atomien etäisyyksien lisäksi kahden sidoksen välisestä kulmasta: V( r) εf 2 ( r ij ) + εf 3 ( r i, r j, r k ) f 3 ( r i, r j, r k ) hr ( ij, r ik, θ jik ) + hr ( ji, r jk, θ ijk ) + hr ( ki, r kj, θ ikj ) (6102) (6103) i r ik k θ jik θ ikj r ij θ ijk r jk j Kuva 635: Kolmihiukkaspotentiaali Monihiukkaspotentiaalimallissa atomin vuorovaikutus naapuredeinsa kanssa riippuu sen ympäristöstä eli ns koordinaatioluvusta Koordinaatioluku on karkeasti ottaen atomin lähinaapureiden lukumäärä Esimerkkinä monihiukkaspotentiaalista olkoon Tersoffin 1 kehittämä malli, jota on menestyksekkäästi käytetty esimerkiksi useiden timanttirakenteisten aineiden mallintamiseen Potenti-
114 aali on seuraavanlainen Systeemin kokonaisenergia lausutaan tutussa muodossa E 1 -- V 2 ij i j, (6104) missä V ij f C ( r ij )[ a ij f R ( r ij ) + b ij f A ( r ij )], (6105) repulsiivinen osa f R ( r) Ae λ 1r, (6106) attraktiivinen osa f A ( r) Be λ 2r, (6107) potentiaalin katkaisufunktio f C ( r) 1, r R D 1 1 π -- -- -- ( ---------------- r R) 2 2 sin 2 D, R D< r < R+ D 0, r R+ D, (6108) sekä b ij ( 1 + β n ζn ij ) 1 2n, (6109) ζ ij k i, j f C ( r ik )g( θ jik ) exp[ λ 3 3 ( r ij r ik ) 3 ], (6110) c g( θ) 1 2 c + ---- 2 d 2 --------------------------------------- d 2 + ( h cosθ) 2, (6111) a ij ( 1 + α n ηn ij ) 1 2n ja (6112) η ij k i, j f C ( r ik ) exp[ λ 3 3 ( r ij r ik ) 3 ] (6113) Tässä, kuten edelläkin, atomien i ja j välinen etäisyys on r ij ja sidosten ij ja ik välinen kulma on θ jik 1 J Tersoff, Phys Rev B 38 (1988) 9902
115 7 Tasapainosimulaatioiden sovellutuksia 71 Tilanyhtälö ja faasitasapaino Termodynaamisen systeemin tilanyhtälöhän kertoo systeemin tilamuuttujien keskinäisen riippuvuussuhteen tasapainossa Yleensä tilanyhtälössä on mukana muuttujia, joita on helppo mitata eli paine, lämpötila, tilavuus, tiheys tai kuten magneettisten systeemien tapauksessa kenttäsuureita Kaasujen, nesteiden ja kiinteiden aineiden tapauksessa tilanyhtälö un useimmiten muotoa P P( V, T) (71) tai P P( ρ, T), (72) missä ρ on aineen (atomi)tiheys Esimerkkinä kuvassa 71 on 500 atomin Lennard-Jones-systeemin tilanyhtälö vakiopaine- MC:llä laskettuna a) b) 40 20 30 15 P * 20 T * 10 10 05 00 00 02 04 06 08 * 00 06 07 08 09 10 11 * Kuva 71: Lennard-Jones-systeemin tilanyhtälö a) P * P * ( ρ *, T * ), kun T * 20 ja b) T * T * ( ρ *, P * ), kun P * 30 Huomaa, että vakiopainesimulaatiossa paine annetaan syöttötietona Sen lisäksi se voidaan laskea simulaation kuluessa viriaalista (ks kappale 23) On hyvä tarkistaa, että nämä kaksi ovat sopusoinnussa keskenään
116 4 P * virial 3 2 1 0 0 1 2 3 4 P * input Kuva 72: Viriaalista laskettu paine simulaation syöttötietona annetun paineen funktiona vakiopainesimulaatiossa Systeemi koostui 500 Lennard-Jones-atomista Tasapainotilassa voi systeemistä löytyä eri olomuodoissa tai faaseissa olevia osia, jos paineella ja lämpötilalla on sopivat arvot Eri faasit eroavat järjestyksen ja tässä tapauksessa tilavuuden suhteen toisistaan Tarkastellaan seuraavassa yhdelaisista atomeista koostuvan NPT-systeemin faasitasapainoa Jos atomien siirtyminen eri faasien välillä on mahdollista, tulee seuraavien ehtojen päteä eri faaseille T ( 1) T ( 2) (73) N, P, T ( 1) ( 2) P ( 1) P( 2) µ ( 1) µ ( 2) (74) (75) Kuva 73: Faasitasapaino Jos kirjoitamme kemiallisen potentiaalin lämpötilan ja paineen funktiona, saamme faasitasapainoehdoksi paineessa P ja lämpötilassa T µ ( 1) PT, ( ) µ ( 2) ( PT, ) (76) Tästä näemme, että faasitasapainossa (eli koeksistenssissä) paine on lämpötilan funktio P coex P coex ( T coex ) Tämä määrää ns koeksistenssikäyrän PT -tasossa
117 Jos faaseja on kolme, on yhtälöä (76) vastaava ehto µ ( 1) PT, ( ) µ ( 2) ( PT, ) µ ( 3) ( PT, ) (77) Nyt meillä on kolme yhtälöä ja kolme tuntematonta, eli ratkaisuna voi olla vain piste PT - tasossa Tämä on ns kolmoispiste (piste K kuvassa 74) P kiinteä C neste K kaasu T Kuva 74: NPT-systeemin faasidiagrammi PT -tasossa Nesteen ja kaasun välinen koeksistenssikäyrä päättyy ns kriittiseen pisteeseen C ( T c, P c ) Tämän yläpuolella voimme muuttaa nesteen kaasuksi (tai päinvastoin) jatkuvalla tavalla Vastaavanlaista pistettä ei ole havaittu kiinteän ja nesteen välillä Tämä kertoo sen, että kiinteän aineen ja nesteen ero on perustavanlaatuisempi kuin nesteen ja kaasun Kiinteässä aineessa on järjestystä, jota ei nesteestä tai kaasusta löydy PV -tasossa faasien koeksistenssi näkyy käyrien sijasta alueina
118 P neste kaasu C T > T c neste kaasu T T c neste-kiinteä kiinteä neste-kaasu K K kaasu-kiinteä K T < T c Kuva 75: NPT-systeemin faasidiagrammi PV -tasossa V Katkoviivat ovat isotermejä eri lämpötiloissa Kuvassa 76 on faasidiagrammi hahmoteltuna kolmiulotteisena kuvaajana Kuva 76: NPT-systeemin faasidiagrammi Faasitransitiossa kemiallinen potentiaali eli G N on jatkuva Muut Gibbsin energian osittaisderivaata voivat olla joko jatkuvia tai epäjatkuvia Ylläkäsitellyt transitiot ovat ns ensimmäisen kertaluvun transitioita Näissä T :n ja P :n suhteen ovat epäjatkuvia: G :n derivaatat
119 S G T ( 2) P G + T ( 1) P (78) V G P ( 2) T G + P ( 1) T (79) G tan S G tan V 1 2 1 2 T P Kuva 77: Gibbsin vapaa energia 1 kertaluvun faasitransitiossa Ensimmäisen kertaluvun faasimuutokseen liitty faasimuutoslämpö tai latentti lämpö, joka on entalpian muutos mentäessä faasista toiseen Q T S E + P V ( E + PV) H (710) Helposti voidaan osoittaa, että mentäessä matalamman lämpötilan faasista korkeamman lämpötilan faasiin on latentti lämpö positiivinen eli lämpöä absorboituu Normaali faasitransitio ei ole termodynaamisten suureiden kannalta mikään patologinen kohta Transitiopisteessä faasien kemialliset potentiaalit ovat samat: µ 1) ( P, T) µ 2) ( PT, ), mutta piste ei ole potentiaalien µ 1) ja µ 2) kannalta millään tavalla erikoinen Tietyssä pisteessä (c kuvassa 78) systeemissä olevien faasien osuuksien suhde saadaan yksinkertaisesti janojen ac ja cb suhteesta P C Kuvassa 79 on esimerkkinä muutaman kaasun neste-kaasukoeksistenssikäyrät a neste c b kaasu Kuva 78: Faasiosuudet koeksistenssialueella
120 Kuva 79: Joidenkin kaasujen kokeeliset koeksistenssikäyrät Redusoitujen yksiköiden c viittaa kriittiseen pisteeseen Huomaa, että kaikki pisteet osuvat kauniisti samalle käyrälle Kuten jo mainittiin, kriittisessä pisteessä C häviää nesteen ja kaasun ero Lähestyttäessä kriittistä pistettä latentti lämpö menee jatkuvalla tavalla nollaan H G T > T T < T c T c T c T c T Kuva 710: Latentti lämpö ja Gibbsin vapaa energia kriittisen pisteen läheisyydessä P c P
121 72 Faasitasapainon simulointi Faasitaspaino on sovellutusten kannalta varsin tärkeä ilmiö Sen simuloiminen normaalilla MC-menetelmällä on kuitenkin hankalaa Jos simulointisysteemiin konstruoidaan eksplisiittinen faasien rajapinta, voivat tulokset olla vääristyneitä, koska tämä rajapinta vie huomattavan osan kopin tilavuudesta Todellisessa tilanteessa (termodynaamisella rajalla) rajapinnan osuus on paljon pienempi? Kuva 711: Rajapinnat faasitasapainosimulaatioissa Esimerkiksi aineen tiheys rajapinnan läheisyydessä voi poiketa todellisesta bulkin tiheydestä Eräs tapa on laskea MC:llä aineen tilanyhtälö ja sovittaa se esimerkiksi van der Waalsin (vdw) yhtälöön a P + ---- ( v b) kb T v 2, (711) missä v V N ja a, b vakioita vdw-yhtälön avulla voimme laskea esimerkiksi kriittisen pisteen v c 8a a 3b ; T c -------- ; P (712) 27b c ----------- 27b 2 ja neste-kaasukoeksistenssikäyrän
122 Kuva 712: van der Waalsin tilanyhtälö Tämä ei kuitenkaan aina toimi Aine ei välttämättä noudata vdw-yhtälöä kovin hyvin Ja kiinteälle olomuodolle yhtälö ei tietenkään käy Jonkinlainen arvio nesteen tiheydelle neste-kaasukoeksistenssissa voidaan saada vakiopaine- MC:llä nollapaineessa Simulointi aloitetaan hieman nesteen tiheyttä suuremmalla tiheydellä Jos ajo ei ole liian pitkä, saamme jonkinlaisen arvion tiheydelle 12 T 10 08 06 00 02 04 06 08 10 ρ Kuva 713: Nestekaasukoeksistenssi vakiopainesimulaatiolla [Frenkel-Smit] Tämä on kuitenkin melko karkea menetelmä, sillä tiheydessä voi tapahtua suuriakin fluktuaatioita, ja jos fluktuaatio on pienen tiheyden suuntaan voi systeemin koko kasvaa rajatta
Varsin yksinkertainen simulointimenetelmä faasitasapainon laskemiseen esitettiin 80-luvun lopulla: Gibbsin ensemble 1 (GE) Se on varsin yksinkertainen ja siinä vältetään täysin rajapintojen tuottamat ongelmat: lasketaan vain bulkkiominaisuuksia Oletetaan, että tutkimme kahden faasin, I ja II tasapainoa GE-simuloinnissa kaksi simulointikoppia, yksi molemmista faaseista 123 I II Simuloinnissa on kolmenlaisia tilanmuutoksia: Kuva 714: Gibbsin ensemble -simulaatio i Normaali atomin siirto jommassa kummassa faasissa ii Tilavuuden muutos jommassa kummassa faasissa Tutkimme nyt kanonista ensembleä, eli systeemin kokonaistilavuus on vakio Tästä seuraa, että faasin I tilavuuden muuttuessa määrällä V, on faasin II tilavuuden muutos V iii Atomin (tai molekyylin) siirto faasista toiseen i ii iii Kuva 715: Tilanmuutoksen Gibbsin ensemble -simulaatiossa 1 AZPanagiotopoulos ym, Mol Phys 63 (1988) 527
124 Hiukkasen siirto faasin sisällä hyväksytään normaalilla todennäköisyydellä p mov exp[ δv nm k B T ] (713) Tilavuuden muutoksen todennäköisyys faasissa I on pi vol exp[ βp V βδv I + N I ln( V I + V ) N I lnv I ], (714) missä V on tilavuuden muutos, δv I on potentiaalienergian muutos faasissa I, V I ja N I ovat faasin I tilavuus ja hiukkaslukumäärä Faasissa II tapahtuu tilavuuden muutos V, jonka todennäköisyys on p vol II exp[ βp V βδv II + N II ln( V II V ) N II lnv II ] (715) Todennäköisyys, että nämä tapahtuvat yhtäaikaa on (olettaen, että ne ovat toisistaan riippumattomia) p vol pi vol pii vol (716) exp β δv I δv II N ----- I V I + V V ln------------------- ------ II V + ln-------------------- β β V I N II V II Todennäköisyys atomin vaihdolle faasista II faasiin I koostuu atomin luomisesta I :ssä: pi int exp βδv I zv + I ln-------------- N I + 1, (717) missä aktiivisuus on z e βµ Λ 3 Vastaavasti atomin tuhoaminen faasissa II : pii int N II zv II exp βδv II + ln--------- (718) Atomin vaihdon kokonaistodennäköisyys on näiden tulo p int βδv I δv II β 1 V II ( N I + 1) exp + + ln--------------------------- V I N II (719) Huomaa, että yhtälöissä (716) ja (719) ei esiinny ollenkaan painetta tai kemiallista potentiaalia Vain systeemin kokonaistilavuus ja lämpötila ovat määrätyt Paine ja kemiallinen potentiaali asettuvat faasikoeksistentin vaatimiin arvoihin
Ne voidaan tietysti laskea simulaation kuluessa Se onkin hyvä tarkistuskeino, sillä näiden suureiden tulisi olla samat molemmissa faaseissa Eri siirtotapojen suhteellisen osuuden sanelee pyrkimys nopeaan konvergenssiin Markovin ketjussa Käytännössä joka askeleella käydään läpi molempien faasien kaikki atomit ja yritetään normaalia MC-siirtoa Tämän jälkeen voidaan tehdä tilavuuden muutos Mikroskooppisen reversiibeliyden säilyttämiseksi valitaan tilavuuden muutoksen merkki (kutistuuko faasi I vai faasi II ) satunnaisesti Lopulta yritetään atomin vaihtoa faasien välillä Mikroskooppinen reversiibeliys vaatii taas, että vaihdon suunta valitaan satunnaisesti Näitä vaihtoyrityksiä voidaan tehdä useampia Tämä on tarpeellista varsinkin suurilla tiheyksillä Otetaan esimerkkinä puhtaan LJ-systeemin neste-kaasukoeksistenssi 1 Alkutilana oli kaksi koppia, joihin oli generoitu fcc-hila Koppeihin laitettiin atomeja halutun tiheyden osoittama määrä Tiheydet olivat luonnollisesti erilaiset, vaikkakaan eivät täsmälleen nesteen ja kaasun tiheydet ko lämpötiloissa Kuvassa 716 on esitetty systeemin tiheyksien käyttäytyminen simulaation kuluessa lämpötiloilla T * 100 ja T * 115 125 Kuva 716: Lennard- Jones-systeemin tiheydet Gibbsin ensemble -simulaatiossa kahdessa eri lämpötilassa 1 AZPanagiotopoulos, Mol Phys 61 (1987) 813
Vaikka alkutilan tiheydet eivät täysin vastaa tasapainotilan tiheyksiä, tasapaino saavuteetaan Kuvassa on esitetty työn lopullinen tulos, LJ-systeemin neste-kaasukoeksistenssikäyrä 126 Kuva 717: Lennard-Jones-systeemin neste-kaasu-koeksistenssikäyrä Gibbsin ensemble - menetelmällä laskettuna NVT-ensemblen lisäksi Gibbsin ensemble -menetelmä voidaan yleistää myös NPT-ensembleen Puhtaan aineen tapauksessa NPT-ensemblen käyttö ei ole kuitenkaan kovin järkevää, sillä faasitasapainon ehtojen mukaan vain yhden intensiivisen termodynaamisen muuttujan arvo voidaan vapaasti valita Tässä tapauksessa se on lämpötila Paineen arvo määräytyy tasapainoehdoista Jos puhtaan aineen GE/NPT-simulaatiossa asetetaan paine siten, että se ei vastaa faasikoeksistenssin vaatimaa arvoa, on tuloksena homogeeninen systeemi Käsiteltäessä monikomponenttisia seoksia asia on toisin Tällöin Termodynaamisia vapausasteita on enemmän (eri komponenttien suhteelliset osuudet), jolloin faasikoeksistenssi voi löytyä kaikille PT -pareille Vakiopainesimulaation aiheuttamat muutokset GE-algoritmiin ovat varsin vähäiset Ainoastaan ehto tilavuuden muutosten täydellisestä korrelaatiosta eri faaseissa poistuu Tilavuuden muutoksen todennäköisyys, yhtälö (716) tulee nyt muotoon p vol pi vol pii vol (720) β δv I δv II N I V ----- I + V I N ln--------------------- II V ------ II + V exp + II β V I ln------------------------ β V II + P( V I + V II ) Eli kummallakin faasilla on omat tilavuudenmuutoksensa V I ja V II
127 Myös yleistys useampikomponenttisiin aineisiin on suoraviivainen Jokaisen komponentin kemiallinen potentiaali on sama molemmissa faaseissa Yhtälössä (719) tulee hiukkaslukumääriin mukaan indeksi, joka kertoo atomi- tai molekyylilajin i : N I N I i, N II N II i (721) Detaljibaöanssin säilyttämiseksi hiukkasten vaihto suoritetaan seuraavasti: i Valitaan joko faasi I tai II hiukkasen luomiseen yhtä suurella todennäköisyydellä ii Valitaan vakiotodennäköisyydellä vaihdettavan hiukkasen laji Todennäköisyys voi olla sama kaikille lajeille tai sitten ei Kriteerinä tuttuun tapaan konvergenssi tasapainotilaa kohti Baranello tutki yllämainituilla menetelmillä typen ja hapen seoksen faasikoeksistenssiä Lämpötila oli 100 K Tulokset on esitetty kuvassa 718 kaasu B A C neste Kuva 718: Typen ja hapen faasikoeksistenssi GE-menetelmällä laskettuna Nähdään, että kaasukäyrän simulaatiot ennustavat melko hyvin, nestekäyrässä taas on hieman heittoa
128 8 Ajasta riippuvien ilmiöiden simulointi 81 Yleistä Tähän asti olemme puhuneet tasapainoilmiöiden eli ajasta riippumattomien ilmiöiden MCsimuloinnista Voimme sanoa, että tasapaino-ominaisuuksien MC-simuloinnissa ratkaisemme numeerisesti masteryhtälöä 1 Pn (, t) ----------------- [ Wm ( n)pm (, t) Wn ( m)pn (, t) ] t m, (81) missä Pn (, t) on todennäköisyys, että systeemi on tilassa n ajanhetkellä t On kuitenkin huomattava, että tuo aika (jonka voi ajatella vastaavan MC-askelta) ei ole fysikaalinen aika Systeemin dynamiikan määräävät siirtymätodennäköisyydet 2 Wm ( n), jotka voidaan valita melko vapaasti Ainoa vaatimus on, että simuloidussa Markov-ketjussa päädymme lopulta haluttuun tasapainojakaumaan Eli detaljibalanssin Wm ( n)pm (, eq) Wn ( m)pn (, eq) (82) tulee olla voimassa Tässä Pn (, eq) on tasapainotodennäköisyystiheys, joka on kuten muistamme esimerkiksi kanonisen ensemblen tapauksessa P( n, eq) 1 -- e Hn Z ( ) k BT (83) Fysikaalisen systeemin todellisen aikakehityksen määräävät liikeyhtälöt, joita ei staattisessa MC:ssä tarvita Jos haluamme simulaatiomme mallintavan myös systeemin todellista aikakehitystä, ei pelkkä detaljibalanssin toteuttaminen riitä Tähän palaamme myöhemmin Ensin kuitenkin käymme läpi yksinkertaisempia tapauksia ei-tasapainoilmiöiden mallintamisesta Joissain tapauksissa yhtälön (81) antama todennäköisyysjakauma Pn (, t) on turhan yksityiskohtaista tietoa systeemistä Esimerkiksi atomisysteemin tapauksessa tuo jakauma on voisi olla todennäköisyystiheys, että atomin 1 paikka ja nopeus ovat r 1, ja v 1, atomin 2 paikka ja nopeus ovat r 2, ja v 2 jne ajanhetkellä t : P( r 1, v 1, r 2, v 2,, r N, v N, t) Usein kuitenkin riittäisi yksihiukkastodennäköisyysjakauma, eli todennäköisyys, että systeemissä on atomi, jolla on paikassa r nopeus v ajanhetkellä t : 1 Tässä esitettynä diskreetissä muodossa 2 Aikayksikköä kohti
129 P 1 ( r, v, t) Masteryhtälöstä voidaan johtaa yhtälö tälle yksihiukkasjakaumalle, mutta sitä ei voida ilman approksimaatioita ratkaista, sillä se sisältää kaksi-, kolmi- ja useampihiukkasjakaumia 1 Eräs paljon käytetty approksimaatio on Boltzmannin kuljetusyhtälö, joka perustuu ns molekulaarisen kaaoksen oletukseen Tämän oletuksen mukaan hiukkasten väliset korrelaatiot unohdetaan ja todennäköisyys, että löydämme tietyistä tilavuusalkioista hiukkaset 1 ja 2 on näiden hiukkasten todennäköisyysjakaumien tulo P 2 ( r 1, v 1, r 2, v 2, t) P 1 ( r 1, v 1, t)p 1 ( r 2, v 2, t) (84) Yksinkertaisemmassa muodossa (atomaarinen kaasu) Boltzmannin yhtälö voidaan kirjoittaa seuraavassa muodossa P 1 1 + v t r P 1 + ---F m v P 1 P 1 t coll, (85) missä vasemman puolen toinen termi kuvaa atomien nopeuksista aiheutuvaa todennäköisyyden muutosta muutosta, (( P) t) coll on atomien välisistä törmäyksistä aiheutuva muutos Lisäksi mukana on ulkoisen voiman F aiheuttama muutos Molekulaarisen kaaoksen oletuksen mukaan törmäystodennäköisyys on verrannollinen hiukkastiheyksien tuloon faasiavaruuden tilavuusalkiossa Tällöin voidaan törmäystermille johtaa muoto P 1 ( rvt,, ) ---------------------- t coll d v 2 dω' 1 v rel σθ (, v rel )[ P 1 ( r, v 1 ', t)p 1 ( r, v 2 ', t), (86) P 1 ( r, v 1, t)p 1 ( r, v 2, t) ] missä v rel on törmäävien atomien suhteellinen nopeus, σθ (, v rel ) on vaikutusala sironnalle, θ on MKP-sirontakulma 82 Säteilyn kulkeutumisen simulointi Säteilyn 2 kulkeutuminen väliaineessa on eräs laaja MC-simulaatioiden sovelluskohde Kulkeutuminen on luonnollisesti erittäin epätasapainoilmiö, vaikka useimmiten emme ole kiinnostuneita systeemin aikakehityksestä, ainoastaan lopputuloksesta, jona on esimerkiksi säteilyn väliaineeseen lopulta jättämä energia tai vauriot tai säteilyhiukkasten lopullinen paikka väliaineessa 1 LEReichl, A Modern Course in Statistical Physics, luvut 7 ja 13 2 Hiukkasista koostuva säteily Mm ioni-, elektroni-, fotoni-, neutroni-
130 Kuva 81: Säteilyn kulkeutuminen väliaineessa Energeettisen säteilyhiukkasen saapuessa väliaineeseen se alkaa vuorovaikuttaa aineen elektronien ja atomien kanssa menettäen energiaansa, kunnes se pysähtyy tai annihiloituu Vuorovaikutustapahtumat oletetaan diskreeteiksi äärettömän lyhyen aikaa kestäviksi prosesseiksi Useimmiten tämä pätee, mutta on tapauksia, joita mallinnettaessa on otettava huomioon prosessien äärellinen kesto Säteilyn kulkeutumista voidaan kuvata Boltzmannin yhtälön avulla Säteilyä karakterisoidaan vuolla : φ i z dω u φ i ( r, E, u, t)drdedω u dt (87) θ u kertoo niiden tyypin i säteilyhiukkasten lukumäärän aikavälillä [ t, t + dt], joiden paikka on r :n dr -ympäristö, energia on välillä [ E, E + de] ja joiden nopeuden suunta on avaruuskulma-alkiossa dω u Tarkoituksena on pystyä alkuehdoista lähtien laskemaan säteilyn vuo eri aikoina ja eri paikoissa Tästä pystymme edeleen laskemaan haluamiamme asioita Integroimalla pois yksi tai useampi muuttuja (87):sta saadaan eri suureita, esimerkiksi: y ψ Kuva 82: Säteilyvuon määritelmä x vuon tiheys φ i ( r, t) d Ω u d Eφ i ( r, E, u, t), (88) π virrantiheys J z i ( r, t) 2π dθsinθ d E cosθφ i ( r, E, u, t) (89) 0
131 Boltzmannin yhtälö kertoo, miten vuo φ muuttuu eri prosessien vaikutuksesta Säteilyn etenemisen ollessa kyseessä ovat yhtälön termit seuraavan näköisiä Hiukkasten äärellisestä nopeudesta aiheutuu muutos 1 --- φ i ------------------------------- ( r, E, u, t) v i t 1 uφ i ( r, E, u, t) u φ i ( r, E, u, t) (810) Hiukkasten sironnasta väliaineen hiukkasten kanssa tulee termi 1 --- φ i ------------------------------- ( r, E, u, t) v i t j [ 2 ( dω' u ) de'σ ij ( r, E', E, u', u)φ j ( r, E', u', t) ( dω' u ) de'σ ij ( r, E, E', u, u' )φ j ( r, E, u, t) ], (811) σ i ( r, E)φ i ( r, E, u, t) missä σ ij ( r, E', E, u', u) on vaikutusala sironnalle tyypin hiukkasesta, jolla on koordinaatit ( r, E', u', t), ja jossa syntyy i -tyyppinen hiukkanen, jolla on koordinaatit ( r, E, u, t) Vastaavasti σ ij ( r, E, E', uu', ) kertoo sironnan kautta faasiavaruuden pisteestä ( r, E, u, t) poistuvien hiukkasten lukumäärän Viimeinen termi kuvaa hiukkasen absorptiota väliaineeseen Näiden termien lisäksi voidaan osaa vuorovaikutuksista mallintaa jatkuvana kitkanomaisena prosessina Tästä tulee termi 1 --- φ i ------- v i t 3 ( φ i S) --------------- E, (812) missä S on ns jarrutuskyky (stopping power) Näiden lisäksi (riippuen säteilyn luonteesta) voidaan yhtälössä olla mukana termi, joka kuvaa säteilyhiukkasten hajoamista: 1 --- φ i ------- v i t 4 1 --- λ i φi, (813) missä on hajoamistodennäköisyys pituusyksikköä kohti λ i Jos systeemissä on säteilylähde tarvitaan termi kuvaamaan uusien hiukkasten syntymistä: 1 --- φ i ------- v i t 5 Y( r, E, u, t) (814)
132 Yhdistämällä (810)-(814) saadaan Boltzmannin yhtälö muotoon 1 --- φ i ------- t v i (815) u φ i ( r, E, u, t) + j [ ( dω' u ) de'σ ij ( r, E', E, u', u)φ j ( r, E', u', t) ( dω' u ) de'σ ij ( r, E, E', u, u' )φ j ( r, E, u, t) ] σ i ( r, E)φ i ( r, E, u, t) φ [ i ( r, E, u, t)s] 1 + --------------------------------------- --- φ E λ i ( r, E, u, t) + Y( r, E, u, t) i Lisäksi näitä yhtälöitä voi olla useampi ja ne voivat olla kytkettyjä: esimerkiksi gammasäteily synnyttää energeettisiä elektroneja väliaineeseen ja päinvastoin Boltzmannin yhtälön ratkaisua vaikeuttaa lisäksi se, että realistisissa systeemeissä on aina rajapintoja, joiden käsittely on hankalaa Lisöksi tarvittavat vaikutusalat usein melko hankalia lausekkeita Toisaalta kuten analyyttiset menetelmät yleensäkin Boltzmannin yhtälöä voi joissain tapauksissa käyttää karkeiden arvioiden laskemiseen ja yleisten trendien tutkimiseen Jos tarvitsemme tuloksia realistiseille systeemeille ja tuloksia, joita voidaan verrata koetuloksiin on useimmiten turvauduttava simulointiin Tarkastellaan lähemmin MC-menetelmän sovellutusta ionisuihkujen ja aineen vuorovaikutukseen Tämä on ehkä hieman spesifinen esimerkki, mutta valaissee MC-menetelmän käyttöä kuljetusilmiöiden tutkimisessa Ionisuihkufysiikassa tutkitaan energeettisten ionien (tai atomien) ja aineen vuorovaikutusta Alkuperäinen ioni saadaan aikaan ampumalla kiihdyttimestä saatu ioni aineeseen Energeettisellä ymmärretään termisiä energioita huomattavasti suurempia energioita (enemmän tai vähemmän mielivaltaisesti E > 1eV ; 1eV 11600K ) (Ioni voi tietysti olla myös neutraali, mutta käytäntö on, että alkuperäistä energeettistä hiukkasta kutsutaan ioniksi ) Alue on yleisen mielenkiinnon lisäksi tärkeä myös sovellutusten kannalta Ionisuihkujen avulla voimme muuttaa aineiden ominaisuuksia tuomalla vierasaineita (ioni-implantointi, kantamajakaumat), sekoittamalla rajapintoja (ionisuihkusekoitus), rikkomalla kidettä (säteilyvauriot), poistamalla atomeja pinnalta (sputteroituminen) jne
133 sputteroituminen säteilyvauriot vierasatomi Kuva 83: Ionisuihkun ja aineen välinen vuorovaiikutus Seuraavassa käydään läpi ionin ja aineen vuorovaikutusmekanismit Aineeseen tunkeutuessaan ioni alkaa jarruuntua Ioni menettää energiaa törmäyksissä aineen elektronien kanssa: elektroninen jarruuntuminen Ioni siroaa elastisesti aineen atomeista: nukleaarinen jarruuntuminen Jarruuntumista voidaan kuvata jarrutuskyvyllä S, joka on ionin menettämä kineettinen energia sen kulkemaa matkaa kohti S de dx (816) Jarrutuskyky voidaan jakaa elektroniseen ja nukleaariseen osaan: S S e + S n Jarrutuskyky riippuu ionin ja aineen ominaisuuksista ja ionin nopeudesta Sen yksikkönä on yleensä ev/å, kev/nm,ev/ (10 15 at/cm 2 ) tai kev/ (µg/cm 2 ) Nukleaarinen jarruuntuminen on vallitseva pienillä energioilla, elektroninen taas suurilla Kuvassa 85 on muutama :ää ja :tä vertaileva esimerkki S n S e E E-dE dx Kuva 84: Jarrutuskyvyn määritelmä
134 10 6 R (Å) 10 4 10 2 10 0 S (ev/å) 10 3 10 2 10 1 Bi Bi Ar Ar H Ta Si Ta Si Ta S (ev/å) 10 3 10 2 10 1 10 2 10 1 10 0 NUC ELE Bi Ar Si Si 10 0 H Si 10 0 10-1 10-2 H Si 10 1 10 2 10 3 10 4 10 5 10 6 E (ev) 10 1 10 2 10 3 10 4 10 5 10 6 10 7 E (ev) Kuva 85: Esimerkkejä jarrutuskyvyistä Vasemmalla puolella on piirretty myös ionien keskikantamat Koska ionin törmäyksissä elektronien kanssa ei massaerosta johtuen ionin suunta muutu, voidaan S e olettaa kitkanomaiseksi voimaksi Elektroninen jarruuntuminen riippuu periaatteessa ionin kokemasta (paikallisesta) elektronitiheydestä, mutta yleensä approksimoidaan, että S e riippuu ainoastaan ionin energiasta Elektronisen jarruuntumisen laskeminen on varsin vaikea teoreettinen ongelma, kun ottaa huomioon, ne mekanismit, joillla energiaa voi siirtyä ionin ja aineen välillä: i kohtioatomien ionisaatio ja vahvasti sidottujen elektronien viritys ii kohtion johde-elektronien viritys (ei-lokalisoituneet elektronit), kollektiiviset eksitaatiot (plasmonit) iii ionin ionisaatio ja elektronien viritys sekä ionin elektronikaappaus Tästä syystä elektroninen jarrutuskyky käytännössä lasketaan semiempiirisien mallien avulla tai käytetään kokeellisia tuloksia Kaikkein eniten ionisuihkufysiikassa käytetty semiempiirinen malli on Zieglerin Biersackin ja Littmarkin (ns ZBL) malli 1 Nukleaarisessa jarruuntumisessa siis ioni siroaa elastisesti atomin varjostetusta Coulombin potentiaalista Ionisuihkufysiikassa ollaan tekemisissä atomien välisen potentiaalin repulsiivisella osalla 1 Ziegler, Biersack, Littmark, The Stopping and Range of Ions in Solids, vol 1 (Pergamon, New York, 1985)
Koska ionin ja atomin massat ovat samaa suuruusluokkaa, ionin suunta voi muuttua paljonkin sironnassa, ja ääritapauksessa ioni menettää kaiken kineettisen energiansa yhdessä törmäyksessä Nukleaarista jarruuntumista ei siis voi realistisesti kuvata pelkkänä kitkavoimana 135 M 1 E 1 ' M 1 E 1 ϑ b x 1 x 2 M 2 E 2 ' φ Kuva 86: Sironta potentiaalista Binääritörmäys pystytään helposti käsittelemään klassisena sirontana potentiaalista V( r) Sirontakulma massakeskipistekoordinaatistossa (MKP) θ saadaan sirontaintegraalista θ π 2b [ r 2 gr ( )] 1 R, (817) V( r) b gr ( ) 1 ----------- -- r 2 E r 12 /, (818) missä R on ionin ja kohtioatomin minimietäisyys törmäyksen aikana Se saadaan yhtälön gr ( ) 0 ratkaisuna Ioni ja atomi vuorovaikuttavat paripotentiaalin V( r) välityksellä Törmäysparametri b on ionin tulevan nopeuden suunnan ja kohtioatomin kohtisuora etäisyys Mitä pienempi b sitä rajumpi törmäys E r on ionin ja atomin suhteellinen kineettinen energia (eli kineettinen energia MKP-koordinaatistossa), ja saadaan kaavasta AE E 1 r ------------ 1 + A, (819) missä A on kohtioatomin ja ionin massasuhde A M 2 ------- M 1 (820)
136 Sirontakulmat laboratoriokoordinaatistossa saadaan MKP-kulmasta θ : tanϑ Af sinθ f sinθ ---------------------------, tanφ ------------------------, (821) 1 + Af cosθ 1 f cosθ missä on otettu huomioon myös törmäyksessä mahdollinen epäelastinen energianmenetys Q : Q f 1 ---- 12 / E r (822) Hiukkasten asymptoottisten ratojen määrittämiseksi on myös laskettava suureet x 1 ja x 2 : θ ( 1 + f )τ + ( fa 1)btan-- 2 x 1 -------------------------------------------------------------- f ( 1 + A), (823) x 2 θ btan-- x 2 1 (824) Tässä τ on ns aikaintegraali τ ( R 2 b 2 ) 12 / [ gr ( )] 1 R 1 b -- r 2 12 / dr (825) Kohtioatomille siirtynyt energia T MKP-sirontakulman funktiona on T fsin 2 θ -- ( 1 f ) 2 4E + ------------------- T, 2 4 m T m ------------ r 1 + A (826) Jos epäelastinen energianmenetys jätetään huomiotta, saadaan T sin 2 θ -- T 2 m (827) Kun tiedämme sirontakulman energian E 1 ja törmäysparametrin b funktiona [ θ( E 1, b) ] voimme periaattessa laskea nukleaarisen jarrutuskyvyn : S n S( E) Tndσ n T2πbdb missä n on aineen atomitiheys 0 M 1 M 2 8nπ ---------------------------- ( M 1 + M 2 ) 2 sin2 θ -- 2 bdb 0, (828) Repulsiivinen potentiaali V( r) voidaan laskea approksimatiivisilla ns vapaaelektronikaasumalleilla (free electron gas, FEG) tai käyttäen ab initio menetelmiä (tiheysfunktionaaliteoria)
137 Nukleaarista jarruuntumista on jonkin verran pyritty mallintamaan analyyttisesti perustuen lähinnä Boltzmannin yhtälöön Näissä malleissa joudutaan kuitenkin tekemään melko paljon yksinkertaistuksia ja esimerkiksi rajapintojen kuvaaminen on hankalaa Tästä on ajauduttu mallintamaan ilmiötä tietokonesimulaatioilla Yleensä simulaatiokoodit perustuvat binääritörmäysapproksimaatioon (BCA, binary collision approximation) Siinä ionin radan oletetaan koostuvan suoraviivaisista pätkistä, joiden välillä se siroaa atomista Ioni vuorovaikuttaa vain yhden atomin kanssa kerrallaan B D F A b C d E Kuva 87: Binääritörmäysapproksimaatio Tarpeeksi pienillä energioilla BCA ei enää päde, vaan ioni vuorovaikuttaa yhtä aikaa monen atomin kanssa Ionin etenemisen simulointi koostuu siis ionin ja väliaineen vuorovaikutustapahtumien generoinnista ja ionin kuljettamisesta näiden välillä Vuorovaikutustapahtumat ovat tässä tapauksessa elastisia sirontoja väliaineen atomeista Vuorovaikutus elektronisysteemin kanssa otetaan huomioon kitkanomaisena jatkuvana energianmenetyksenä elastisten sirontojen välillä E 0 b 1 θ 1 E λ 1 1 λ 2 b 2 E 4 θ 4 θ 2 E 2 λ E3 3 λ 4 b 4 Kuva 88: Binääritörmäyssimulaation periaate b 3 θ 3 E 0 Tietyllä energialla aineeseen ammutun ionin kulkua simuloidaan kuvan 89 mukaisella
138 algoritmilla arvo etäisyys seuraavaan sirontaan λ etene λ :n verran vähennä elektroninen energianmenetys S e λ sironta: arvo törmäysparametri b laske sirontakulma θ arvo atsimuuttikulma φ päivitä ionin energia simulaatiohistorian loppu: päivitä laskettavia suureita kyllä E < E min? z < 0? ei päivitä ionin etenemissuunta ja energia päivitä laskettavia suureita Kuva 89: Binääritörmäysssimulaation algoritmi Ionin sirontakulman θ pystymme laskemaan, kun tiedämme törmäysparametrin b [yhtälö (817)], ja tästä edelleen törmäyksessä väliaineen atomille jäävän energian [yhtälö (827)] Lisöksi elektroninen jarrutuskyky on tiedossa Jäljelle jää sirontojen välimatka λ, törmäysparametri b sekä sironnan atsimuuttikulma φ Usein väliaine oletetaan amorfiseksi, jolloin törmäykset ovat korreloimattomia Lisäksi otetaan huomioon vain törmäykset, jotka sirottavat ionia enemmän kuin tietyn minimikulman θ min (tyypillinen arvo θ min 05 ) Eli sirontoja, joiden törmäyparametri b > b max [ b max b( θ min )], ei oteta huomioon Parametri riippuu ionin energiasta b max Törmäysparametri arvotaan satunnaisesti väliltä [ 0, b( θ min )] Geometrisella tarkastelulla on helppo huomata, että todennäköisyys, että törmäysparametri on välillä [ bb, + δb] on b δb P bδb (829) Tällöin (muistele kappaletta 662) törmäysparametri saadaan seuraavasti: Kuva 810: Törmäysparametrin arvonta b
139 b b( θ min ) ξ, (830) missä ξ on tasaisesti välille [ 01, ] jakautunut satunnaisluku Tarpeeksi pienillä energioilla maksimitörmäysparametri kasvaa suuremmaksi kuin aineen atomien keskimääräinen lähinaapurien etäisyyden puolikas d nn 2 Tämä ei ole realistinen tilanne, sillä simulaatiossa tulee ottaa huomioon aina mahdollisista törmäyksistä rajuimmat d nn ρ 13 / Tämä korjataan siten, että maksimitörmäysparametria ei aseteta suuremmaksi kuin arvo b 0, joka vastaa yhden atomin poikkipinta-alaa aineessa, jonka atomitiheys on ρ : b 0 πb2 0 ( ρ 13 / ) 2 (831) π 12 / ρ 13 / b 0 Eli törmäysparametrin arvonta on lopulta seuraava: Kuva 811: Atomin poikkipinta-ala b max min( b 0, b( θ min )) ; b b max ξ (832) Törmäysten välimatka arvonta perustuu siihen, että todennäköisyys sille, että tilavuudessa on k atomia on Poisson-jakautunut: V P() k ( ρv ) --------------e k k! ρv (833) Tästä saamme todennäköisyyden, ettei tilavuudessa ole yhtään atomia P() 0 e ρv (834) Todennäköisyys ettei atomi lainkaan siroa kulkiessaan matkan λ on todennäköisyys, ettei tilavuudessa πb2 max λ ole yhtään atomia: πb2 max 2 λ P() 0 e ρπb max (835) Tämä on siis ionin vapaan matkan λ todennäköisyysjakauma Sen arpominen tapahtuu seuraavasti: λ λlnξ, (836) Kuva 812: Keskimääräinen vapaa matka λ missä ξ on kuten edellä ja λ on ionin keskimääräinen vapaa matka
140 λ 1 ----------------- πρb2 max (837) Kuvassa 813 esimerkkinä kultaionin keskimääräinen vapaa matka piissä Sirontaintegraali (817) lasketaan numeerisesti joko simulaation alussa kaksiulotteiseen taulukkoon [ θ( E, b) ] tai simulaation aikana käyttäen approksimatiivisia kaavoja Minimisirontakulmaa vastaavat törmäysparametrit lasketaan yleensä simulaation alussa taulukkoon Simulaation raakatuloksena saadaan siis ionien ratoja Alla esimerkkinä 100 kev:m kultaionien ratoja piissä [pituusyksikkö Å] (Å) 250 200 150 100 50 0 46 44 42 40 38 Au Si 10-2 10 0 10 2 10-2 10 0 10 2 10 4 E (kev) Kuva 813: Kultaionin keskimääräinen vapaa matka piiissä Y x 10 3 0900 0800 0700 0600 0500 0400 0300 0200 0100 0000-0100 -0200 0200 0400 0600 0800 1000 1200 Kuva 814: 100 kev:n kultaionien ratoja piissä 3 X x 10 Ioni-istutuksessa ensisijainen mielenkiinnon kohde on se, miten syvälle aineeseen ammuttavat ionit pysähtyvät eli kantamajakauma
141 R p R r konsentraatio syvyys Kuva 815: Kantamajakauma ja keskikantamat
142 Elektroni- ja gammasäteilyn kulkeutumisen simuloinnissa tilanne on edellistä monimutkaisempi, koska vuorovaikutusmekanismeja (ks kuva 816) on useampia ja hiukkasia voi syntyä ja hävitä vuorovaikutusprosesseissa Eri mekanismien todennäköisyydet eli vaikutusalat tunnetaan kuitenkin kohtalaisen hyvin, joten MC-menetelmällä saadaan varsin hyviä tuloksia e - γ 2 A γ 1 e - B γ 2 γ 1 C γ Ze D e + e - γ F e - E G e Ze -/+ e - Kuva 817: 5 MeV:n elektronien ratoja grafiitissa Simulointi on tehty EGS4-ohjelmistolla γ 1 e + H e - γ2 E dep (MeV/el/cm) 10 8 6 4 2 5 MeV e - C Kuva 816: Gamma- ja elektronisäteilyn vuorovaikutusmekanismit väliaineen kanssa A: valosähköinen ilmiö, B: Compton-sironta, C: Rayleigh-sironta, D: parinmuodostus, E: elastinen sironta (ytimestä), F: jarrutussäteily, G: epäelastinen sironta (elektronista), H: positronin annihilaatio 0 00 05 10 15 20 z (cm) Kuva 818: 5 MeV:n elektronisuihkun grafiittiin jättämä energia suihkun tunkeutumissyvyyden funktiona
83 Varaustenkuljettajien kulkeutuminen puolijohdemateriaaleissa 143 Elektronien ja aukkojen kulkeutuminen ulkoisen sähkökentän ajamana erilaisissa puolijohdemateriaaleissa on komponenttien nopeuden kannalta tärkeä tutkimuskohde Tässäkin tapauksessa Monte Carlo -menetelmä on yksi käyttökelpoisimmista menetelmistä Simuloinnin periaatteet ovat samat kuin edellisessä kappaleessa: elektroni (tai aukko) vuorovaikuttaa väliaineen kanssa diskreeteissä sironnoissa, joiden välisen ajan se kulkee vapaasti ulkoisten voimien vaikutuksen alaisena sironta F ex Kuva 819: Varauksenkuljettajan kulkeutumisen MC-simulointi Kuva 820: Elektronien nopeus galliumarsenidissa ulkoisen sähkökentän funktiona MC-menetelmällä laskettuna 1 Eri käyrien epäpuhtauksien konsentraatiot ovat (a) N D 0, (b) 17 N D 10 10 cm 3, (c) N D 20 10 cm 3, (d) N D 40 10 cm 3, (e) 17 17 N D 80 10 cm 3 17 1 J Singh: Physics of semiconductors and their heterostructures, McGraw-Hill, 1993, kappale 133
144 Kuva 821: Elektronien nopeus galliumarsenidissa ulkoisen sähkökentän funktiona eri läpötiloissa MC-menetelmällä laskettuna 1 84 Kineettinen Monte Carlo 841 Yleistä Erilaisia kuljetus- ja kasvuilmiöitä voidaan mallintaa kineettisellä Monte Carlolla (KMC) Tärkeitä sovellutuksia ovat mm diffuusio kiinteässä aineessa, kiteen kasvu, säteilyvaurioiden kulkeutuminen Systeemiä kuvataan masteryhtälöllä PCt (, ) ------------------- [ W( C' C)PC' (, t) W( C C' )PCt (, )] t C', (838) missä C indeksoi systeemin tilaa Kuten staattisessa MC:ssä (SMC), KMC:ssäkin masteryhtälö ratkaistaan generoimalla jono systeemin tiloja SMC:ssä ainoa kriteeri generoiduille jonoille oli, että mikroskooppinen reversiibeliys pätee Tämä takasi konvergenssin tasapainojakaumaa kohti KMC:ssä tämän lisäksi siirtymien tilasta toiseen tulee vastata todellisia systeemin siirtymiä KMC perustuu siihen, että kuvaamme systeemiä sellaisella tasolla, että voimme erottaa tietyn joukon diskreettejä tapahtumia E { e 1, e 2,, e N }, joissa systeemi siirtyy tilasta toiseen Lisäksi aikaskaala on sellainen, että mitkään tapahtumat eivät tapahdu samanaikaisesti Esimerkiksi kiteen kasvussa kaasufaasista tapahtumia ovat: adsorptio, desorptio ja atomin hypyt pinnalla erilaisissa geometrioissa Olkoon tapahtuman a todennäköisyys aikayksikköä kohti (rate) R a Yleensä todennäköisyydet { R a } N a 1 ja N riippuvat konfiguraatiosta C
145 Määritellään kokonaistodennäköisyys siirtymälle (total rate) tietyssä konfiguraatiossa Q N QC ( ) R a a 1 (839) Muodollisesti siirtymätodennäköisyys W voidaan kirjoittaa muodossa N W( C C' ) R a V a ( C C' ) a 1, (840) missä V a on tavallaan stokastinen yritematriisi Se kertoo, onko siirtymä C C' mahdollinen tapahtuman a kautta Simulaatiossa tapahtuma a pitäisi valita todennäköisyydellä R a QC ( ) eli verrannollisesti todennäköisyyteen aikayksikkö kohti Suoraviivainen algoritmi tämän toteuttamiseksi olisi seuraava Simulaation alussa etsimme tapahtuman, jolla on suurin mahdollinen todennäköisyys aikayksikköä kohti R max Laskemme kaikille mahdollisille tapahtumille suhteelliset todennäköisyydet P a R a ---------- R max, (841) ja luomme listan alkukonfiguraatiossa mahdollisista tapahtumista Algoritmin sisin silmukka askeleella k voisi olla seuraavanlainen: P e i Valitse satunnaisesti yksi konfiguraatiossa mahdollinen tapahtuma olkoon sen suhteellinen todennäköisyys ii Generoi tasaisesti jakautunut satunnaisluku ξ [ 01), iii Jos ξ P e, päivitä systeemin tila C k + 1 C' ja mahdollisten tapahtumien lista Muuten pysy entisessä tilassa Tämä algoritmi ei ole kovin käyttökelpoinen, koska kaikkia tapahtumia yritetään samalla todennäköisyydellä Usein systeemissä on tapahtumia, joiden todennäköisyydet aikayksikköä kohti eroavat jopa kertaluvuilla Tällöin epätodennäköisiä tapahtumia yritetään ja hylätään usein Esimerkiksi diffuusiosimulaatiossa atomeja, joilla on suuri tai pieni koordinaatio 1 yritetään siirtää yhtä usein, mutta atomi, jolla on pieni koordinaatio liikkuu paljon enemmän Usein mallista voidaan unohtaa tapahtumat, joiden todennäköisyys on kovin pieni Aina tämä ei kuitenkaan ole mahdollista Esimerkkinä voisi mainita nukleaation kiteen kasvun simulaatiossa Usein adatomin 2 desorption todennäköisyys on paljon suurempi kuin useamman adato- C k 1 Todennäköisyyksien suhde on e β E, missä E on atomien sidosenergioiden ero 2 Materiaalin pintaan tarttunut (vieras)atomi
min liityminen klusteriksi Kuitenkin, kun klusteri on saavuttanut tietyn kriittisen koon, se alkaa kasvaa Nopeampi algoritmi, jossa vältetään tuloksettomat yiritykset on ns BKL-algoritmi 1 Siinä tapahtuma alunperin valitaan oikealla todennäköisyydellä ja toteutetaan i Generoi tasaisesti jakautunut satunnaisluku ξ [ 0, QC ( k )) ii Valitse tätä vastaava tapahtuma: valitse ensimmäinen indeksi s, jolle pätee a 1 R a ( C) iii Etene uuteen konfiguraatioon toteuttamalla tapahtuma iv Päivitä niitä todennäköisyyksiä, jotka ovat muuttuneet tapahtuman s seurauksena Päivitä Q ja muut tarvittavat tietorakenteet s ξ C k + 1 s R a Tarkastellaan algoritmin CPU-ajankäytön riippuvuutta systeemin koosta N Askeleiden i ja iii ajankäyttö ei riipu N :stä Askel ii vaatii ajan ON ( ) Useimmiten askeleen iv suoritusaika ei riipu systeemin koosta, vaikkakin se vaatii huolellista ohjelmointia Vielä nopeammaksi algoritmin saadaan, jos tapahtumat ryhmitellään 2 Niputetaan tapahtumat n :ään ryhmään ja indeksoidaan ryhmiä α:lla: α 1 n Ryhmittely voidaan tehdä ottamalla jokaiseen ryhmään sama määrä tapahtumia (tehokkainta) tai luokittelemalla fysikaalisesti samantyyppiset prosessit samoihin ryhmiin (adatomin diffuusio tietyn energiavallin yli, tietyn sidosenergiaisen adatomin desoprtio, jne) Oletetaan, että ryhmittely on tehty jälkimmäisellä tavalla siten, että kaikilla ryhmän tapahtumilla on sama todennäköisyys ρ α Nyt jokaisessa konfiguraatiossa C on mahdollisia prosesseja, jotka voidaan realisoida monella eri tavalla Prosessi α voidaan realisoida n α ( C) eri tavalla Suuretta n α ( C) kutsutaan multiplisiteetiksi Esimerkiksi systeemissä voi olla n adatom ( C) diffundoituvaa adatomia, joilla on samanlainen ympäristö Joka prosessille määritellään osittaistodennäköisyydet aikayksikköä kohti (partial rate) 146 q α ( C) n α ( C)ρ α (842) ja suhteelliset osittaistodennäköisyydet p α ( C) q α ( C) ------------- QC ( ) (843) Konfiguraation C kokonaissiirtymätodennäköisyys aikayksikköä kohti on nyt 1 A B Bortz, M H Kalos, J L Lebowitz, J Comput Phys 17 (1975) 10 2 P A Maksym, Semicond Sci Tech 3 (1988) 594
147 n Q( C) n α ( C)ρ α α 1 (844) Algoritmi näyttää seuraavalta: i Generoi tasaisesti jakautunut satunnaisluku ξ 1 [ 0, QC ( k )) ii Valitse toteutettava prosessi: valitse ensimmäinen indeksi σ, jolle pätee σ q ( α C ) ξ 1 α 1 iii Valitse prosessin σ toteutustapa Esimerkiksi käytössä voi olla lista atomeista ( 1 n σ ( C) ), joille prosessi voidaan toteuttaa Generoidaan tasaisesti jakautunut satunnaisluku (kokonaisluku) väliltä [ 1, n σ ( C)) ja valitaan luvun osoittama atomi iv Toteutetaan prosessi (siirretään atomia) v Päivitetään multiplisiteetteja n α ja todennäköisyyksiä q α ja Q Arvioidaan algoritmin ajankäyttöä Jos oletamme, että multiplisiteetit ovat samansuuruisia n α N n Tapahtuman etsintä on kaksivaiheinen Ryhmän etsintä vie aikaa ON ( n) ja etsintä ryhmän sisällä On ( ) Optimaalinen tilanne on, jos ryhmien määrä n N 12 / Tällöin laskenta-ajan riippuvuus systeemin koosta on O( N 12 / ) Askel v voi edelleenkin viedä aikaa enimmillään ON ( ) Algoritmin tehokkuutta voidaan parantaa edelleen tekemällä ryhmittely useammalla tasolla 1 Periaatteessa optimaalinen tilanne saavutetaan, kun alimman tason ryhmissä on jokaisessa vain kaksi alkiota Tällöin aikaa kuluu O( ln 2 N) Ylläolevissa algoritmeissa ei ollut aikaa eksplisiittisesti mukana Joskus kuitenkin haluamme kiinnittä systeemin kehityksen aikaskaalan Emme voi suoraan olettaa, että MC-askel (MCS) kertoo ajan: t MCS Jos voimme olettaa, että vain yksi tapahtuma voi tapahtua kerrallaan (eli aikaskaala, jolla systeemiä tutkitaan on tarpeeksi pieni) ja että tapahtumat ovat Poisson-jakautuneita saamme laskuihimme aikaskaalan Todennäköisyys, että aikavälillä [ 0, t] on p kappaletta tapahtumia on P( p) ( Qt) -------------e p p! Qt, (845) N missä edelleen Q QC ( ) R Todennäköisyys, että ko välillä ei ole yhtään tapahtumaa on a 1 a siten P() 0 e Qt (846) 1 J L Blue, I Beichl, F Sullivan, Phys Rev E 51 (1995) R867
148 Tapahtumien välisen ajan τ (odotusaika, waiting time) (oikein normitettu) todennäköisyysjakauma on siten P() τ Qe Qτ, (847) ja sen odotusarvo on τ 1 --- Q (848) Simulaatioissa aika saadaan siis generoimalla ylimääräinen satunnaisluku ja laskemalla siitä aikaväli seuraavaan tapahtumaan: ξ 3 lnξ t 3 k ------------- QC ( k ) (849) Erilaiset aikakeskiarvot lasketaan simulaatioissa seuraavasti: A M 1 -- t t k AC ( k ) k 1, (850) missä kokonaisaika on t M k 1 t k (851)
149 842 Pinnan kasvu ja pintadiffuusio 1 Pinnan kasvun simuloinnissa käytetään usein ns solid-on-solid-mallia (SOS-malli) Siinä pintaa voidaan kuvata funktiolla hx (, y), joka kertoo pinnan korkeuden kielletty Kuva 822: Pinnan kasvun sollid-on-solid -malli Vakansseja ja ns overhang-atomeja ei mallissa sallita Hyvin usein mallitetaan kidettä yksinkertaisella kuutiollisella hilalla Yksinkertaisimmillaan mallissa kaasufaasin atomi yrittää säännöllisin väliajoin kiinnittyä satunnaiseen hilapaikkaan pinnalla Tarttumistodennäköisyys riippuu hilapaikan naapureista; esimerkiksi syntyvien sidosten lukumäärästä Mallin toteuttaminen MC-simulointina on varsin yksinkertainen tehtävä Koska mallista puuttuu adatomien diffuusio pinnalla, se ei ole kovin realistinen Tartuttuaan pintaan atomi 2 voi desorptoitua eli palata kaasufaasiin Tämän tapahtuman todennäköisyys on yleensä pieni kemisorption tapauksessa, koska atomin sidosenergia pinnalla on kemiallisen sidosenergian suuruusluokkaa eli muutama ev Atomi voi kuitenkin kulkeutua pinnalla termisen virityksen seurauksena: on kyse pintadiffuusiosta y x Vx () E B A C x Kuva 823: Adatomin mahdollisia paikkoja tilakeskisen kuution (100)-pinnalla Potentiaalienergiavalli E on adatomin A kuvaan piirretyn hyppäyksen aktivaatioenergia 1 Lisätietoa pintafysiikasta saat esimekiksi kirjoista: MManninen, RNieminen, Pintafysiikka, AZangwill, Physics at Surfaces 2 Adsorboitunut atomi eli adatomi
Yksinkertaisin pintadiffuusion malli lienee hilakaasu, jossa pinta koostuu hilapaikoista, jotka ovat tai eivät ole diffundoituvan atomin miehittämiä t 1 t 2 > t 1 150 Kuva 824: Pintadifuusion hilakaasumalli Diffuusio koostuu adatomien hypäyksistä naapuripaikkoihinsa Hyppyjä rajoittavana ehtona on se, että yhdessä hilapaikassa voi olla vain yksi atomi kerrallaan Puhutaan korreloituneesta satunnaiskävelystä Jos adatomien konsentraatio pinnalla on hyvin pieni, on todennäköisyys, että naapuripakka on miehitetty, pieni Tällöin on kyseessa normaali satunnaiskävely, jolle pätee 1 [ r() t r( 0) ] 2 t (852) Difuusioprosessia voidaan kuvata yhtälöllä P( r, t) D t 2 P( r, t), (853) missä P( r, t) on todennäköisyys, että adatomi on paikassa r ajanhetkellä t Diffuusiovakio D kuvaa adatomien liikkuvuutta Se voidaan määrittää esimerkiksi Einsteinin relaation avulla: D lim t 1 ------- [ r() t r( 0) ] 2dt 2 (854) Hilakaasumallissa difuusiovakio riippuu adatomien konsentraatiosta On odotettavissa, että mitä suurempi tämä konsentraatio on, sitä vaikeampi atomien on tehdä hyppyjä ja difuusiovakio on pieni Tämän systeemin simulointi MC-menetelmällä on suoraviivainen tehtävä Koska systeemissä on vain yhdenlaisia siirtymiä, voimme tehdä rinnastuksen t n MC Systeemi koostuu L L:n suuruisesta neliöhilasta, johon asetetaan haluttu määrä adatomeja, jotka yrittävät hyppyjä naapuripaikkoihinsa Algoritmi on seuraavanlainen: i Arvo satunnaisesti adatomien paikat pinnalla ii Arvo siirrettävän adatomin indeksi iii Arvo uusi hilapaikka adatomin naapuripaikoista (ylös, alas, vasemmalle, oikealle) iv Jos uusi hilapaikka on tyhjä, siirrä adatomi sinne Jos se on miehitetty, älä tee mitään 1 Ks kappale 33
151 v Päivitä haluttuja laskureita vi Mene askeleeseen ii C-ohjelmana algoritmi näyttää seuraavalta: /* Käännös ja linkkaus: cc -o diffusion diffusionc getseedc lcgc */ #include <stdioh> #include <stdlibh> #include <mathh> #define REAL double #define INT long int #define INFOOUT 20 #define I(x,y) (x + L*y) long INT getseed(); REAL lcg(long int *seed); REAL badlcg(long int *seed); main (int argc, char **argv) { long int seed; INT Natom,Ntime,Nsample,L,itime,i,j,k,n,step,next,Nodump,Nodist; INT lsize,*lattice,x,y,xp,yp,dx,dy; INT *atomx,*atomy,*atomx0,*atomy0,*atomx1,*atomy1; INT sample,infoint; INT left,right,up,down; REAL *norm; REAL *R2,r,d; REAL trials,accepts; FILE *fd; int s,pp[5]{0,0,0,0,0}; if (argc!8) { fprintf (stderr, Usage: %s L Natom Ntime seed Nodist Nodump Nsample\n,argv[0]); return (1); } Latoi(*++argv); Natomatoi(*++argv); Ntimeatoi(*++argv); seedatol(*++argv); Nodistatoi(*++argv); Nodumpatoi(*++argv); Nsampleatoi(*++argv); fprintf(stderr, \ninput parameters\n ); fprintf(stderr, System size: %d\n,l); fprintf(stderr, Number of atoms: %d\n,natom); fprintf(stderr, Number of time steps: %d\n,ntime); fprintf(stderr, RNG seed number: %d\n,seed); fprintf(stderr, R2 output interval: %d\n,nodist); fprintf(stderr, Atom dump interval: %d\n,nodump); fprintf(stderr, Number of samples: %d\n,nsample); fprintf(stderr, \n ); if (seed<0) { seedgetseed();
152 fprintf(stderr, Seed calculated from time %d\n,seed); } lsizel*l; lattice(int *) malloc((size_t) (lsize*sizeof(int))); atomx (INT *) malloc((size_t) (Natom*sizeof(INT)) ); atomy (INT *) malloc((size_t) (Natom*sizeof(INT)) ); atomx0(int *) malloc((size_t) (Natom*sizeof(INT)) ); atomy0(int *) malloc((size_t) (Natom*sizeof(INT)) ); atomx1(int *) malloc((size_t) (Natom*sizeof(INT)) ); atomy1(int *) malloc((size_t) (Natom*sizeof(INT)) ); R2(REAL *) malloc((size_t) (Ntime*sizeof(REAL)) ); norm(real *) malloc((size_t) (Ntime*sizeof(REAL)) ); for (i0;i<ntime;i++) {R2[i]00;norm[i]00;}; infointnsample/infoout; if (infoint0) infoint1; trialsaccepts00; if (Nodump) fdfopen( diffusiondump, w ); for (sample0;sample<nsample;sample++) { if (sample%infoint0) fprintf(stderr, %d,sample); /* set up the lattice */ for (i0;i<lsize;i++) lattice[i]0; for (i0;i<natom;i++) { xlcg(&seed)*l; ylcg(&seed)*l; while (lattice[i(x,y)]>0) { xlcg(&seed)*l; ylcg(&seed)*l; } lattice[i(x,y)]1; atomx[i]atomx0[i]atomx1[i]x; atomy[i]atomy0[i]atomy1[i]y; } /* main loop */ for (itime0;itime<ntime;itime++) { for (k0;k<natom;k++) { trials+10; nlcg(&seed)*natom; xxpatomx[n]; yypatomy[n]; dxdy0; s40*lcg(&seed); if (s>3) s3; pp[s]++; switch (s) { case 0: x--; dx-1; if (x<0) xl-1; break; case 1: x++; dx1; if (x>l) x0; break; case 2: y--; dy-1; if (y<0) yl-1;
153 } break; case 3: y++; dy1; if (y>l) y0; break; } if (lattice[i(x,y)]0) { accepts+10; atomx[n]x; atomy[n]y; atomx1[n]+dx; atomy1[n]+dy; lattice[i(xp,yp)]0; lattice[i(x,y)]1; } if (itime%nodist0) { R2[itime]+(pow((double)(atomx1[n]-atomx0[n]),(double)2)+ pow((double)(atomy1[n]-atomy0[n]),(double)2) ); norm[itime]+10; } if (itime%nodump0 && sample0) fprintf(fd, %d %d %d\n,atomx1[0],atomy1[0],itime); } } fprintf(stderr, \nr2 normalization %g\n,norm[0]); fprintf(stderr, Acceptance ratio %g\n\n,accepts/trials); for (j0;j<ntime;j++) if (j%nodist0) fprintf(stdout, %d %g\n,j,r2[j]/norm[j]); fprintf(stderr, pp: %d %d %d %d %d\n,pp[0],pp[1],pp[2],pp[3],pp[4]); return(0); } Tällä ohjelmalla määritettiin diffuusiovakio D adatomien konsentraation 1 θ funktiona käyttäen kaavaa (854) Systeemin koko oli 100 100 1 θ n adatom ---------------------- n lattice sites
154 12000 10000 00001 0001 001 < r (t) 2 > 8000 6000 4000 005 01 02 03 04 05 2000 06 07 08 0 0 2000 4000 6000 8000 10000 t Kuva 825: Adatomien paikkojen neliöllinen keskiarvo ajan funktiona laskettuna erilaisille adatomikonsentraatioille 09 095 099 Kuvassa 825 on esitetty adatomien paikkojen neliöllinen poikkeama ajan funktiona Huomataan, että kaikki käyrät noudattavat relaatiota (852) Kuvassa 826 on esitetty muutamia adatomien ratoja eri konsentraatiolle laskettuna
155 00001 005 02 05 08 099 Kuva 826: Tyypillisiä adatomien ratoja muutamalle eri konsentraation arvolle Näissä simulaatioissa käytettiin R250-astunnaislukugeneraattoria 1 Jos laskut tehdään käyttäen allaesitettyjä LC-generaatoreita lcg1 ja lcg2, saadaan vääriä tuloksia 1 Ks kappale 661
156 double lcg1(long int *ix) { double ret; static long int k1,a127773,b16807,c2836,d2147483647; double xx4656612875e-10; k1 *ix / a; *ix (*ix - k1 * a) * b - k1 * c; if (*ix < 0) *ix + d; ret *ix * xx; return ret ; } double lcg2(long int *seed) { static long int a69069,c1,m4294967296; static double rm42949672960; *seed(*seed*a+c)%m; return (double)*seed/rm; } 40000 35000 30000 lcg1 lcg2 r250 < r (t) 2 > 25000 20000 15000 10000 5000 0 0 2000 4000 6000 8000 10000 t Kuva 827: Adatomin paikan neliöllinen poikkema konsentraatiolla θ 025 laskettuna eri satunnaislukugeneraattoreilla Huomaa, että LC-generaattoreiden tulokset eivät edes noudata kaavaa (852) Diffuusiovakio laskettiin kaavalla (854) laskemalla keskiarvo 2000 viimeisestä simulaatioaskeleesta Tulokset on esitetty kuvassa 828
157 025 02 D ( ) 015 01 005 00 00 02 04 06 08 10 Kuva 828: Diffuusiovakio adatomien konsentraation funktiona Tälläinen yksinkertainen hilakaasumalli voi kuvata pintadiffuusiota matalissa lämpötiloissa melko hyvinkin On kuitenkin mahdollista, että adatomit esimerkiksi hyppävät kauemmas kuin naapuripaikkaan Lisäksi diffuusiomekanismeja voi olla erilaisia, ja johinkin voi osallistua useampia atomeja Yksi esimerkki on kuvassa 829 Lisäksi adatomien konsentraatio voi vaikuttaa substraatin pinnan rakenteeseen Tällöin oletus täysin staattisesta pinnasta ei päde Kuva 829: Vaihtomekanismiin perustuva diffuusio tilakeskisen hilan (100)-pinnalla Huomaa, että edelläesitetyssä mallissa ei ollut ollenkaan mukana lämpötilaa
Useimmiten diffuusiohypyn todennäköisyys aikayksikköä kohti voidaan kuvata ns siirtymätilateorian (transition state theory, TST) antamalla Arrhenius-tyyppisellä muodolla E b 158 E b, j R ij νe E b i, k B T, (855) E b, i E j missä ν on oleellisesti diffundoituvan atomin keskimääräinen värähtelytaajuus ( ν 10 13 s 1 ) ja E b, i on difuusiovallin E i korkeus katsottuna tilasta i TST perustuu olettamukseen, että kunhan atomi Kuva 830: Diffuusiovalli pääsee potentiaalienergiavallin huipulle ( E b ), se todennäköisyydellä yksi päätyy tilaan j Huomaa, että yhtälön (855) mukainen siirtymätodennäköisyys toteuttaa detaljibalanssin (418) olettaen, että tekijä ν on sama kaikille tiloille:, k B T e E i k B T R ij P i νe E b i ------------------ Z ν ( -- e E b E i ) k B T e E i k B T ν -- e E b k B T Z Z, R ji P j, k B T e E j k B T νe E b j ------------------- Z ν -- e E b k B T Z Huomaa, että siirtyumätodennäköisyys ei riipu lopputilasta j! Edelläesitettyä yksinkertaista mallia voidaan parantaa myös ottamalla adatomien vuorovaikutukset 1 mukaan Tämä voidaan toteuttaa olettamalla adatomin i diffuusiovallin korkeudeksi 2 E b i, E S + n i E N, (856) missä E S on substraatin aiheuttama potentiaalienergia, n i on atomin i naapureiden lukumäärä (pinnan suunnassa) ja E N on vuorovaikutusenergia naapurin kanssa Tällöin hyppytodennäköisyys atomille i on R i νexp[ ( E s + n i E N ) k B T] (857) 1 Muutenkin kuin ehtona, että samassa hilapaikassa voi olla vain yksi adatomi 2 DDVvedensky ym, Fluctutations and Order, toim MMillonas, Springer 1996
159 Kuva 831: Pinnan kasvun MC-simulaatio Adatomikonsentraatio on 02, depositionopeus 01 atomikerrosta/s, T 800 K ja energiaparametrit E S 13 ev, E N 10 ev (yläkuva), 13 ev, E N 03 ev (alakuva) E S Kuvassa 831 on esimerkkejä erilaisilla simulaatioåparametreilla syntyvistä pintarakenteista Kuvassa 832 esitetty saarekkeiden kokojakaumia erilaisille adatomikonsentraatioille Kuva 832: Simulaatiossa syntyvien saarekkeiden kokojakautumat adatomikonsentraatioille 5, 15 ja 25% Energiaparametrit olivat 13 ev ja E N 10 ev Lämpötila oli 700 K ja E S depositionopeus 01 atomikerrrosta/s Yhtenäiset viivat ovat analyyttisen mallin tuloksia
160 Esitellään lopuksi MC-simulaatioiden sovellutusta eri kiteenkasvumoodien mallinnuksessa Pinnan kasvatus on tärkeä osa esimerkiksi uusien puolijohdekomponenttien ja varsinkin nanorakenteiden valmistuksessa Alla esimerkkinä bulk-puolijohteen, kvanttikaivon, kvanttilangan ja kvanttipisteen elektronitilojen tiheydet Kuva 833: Erilaisten puolijohderakenteiden energian tilatiheyksiä Esimerkiksi puolijohdelasereiden tapauksessa on kvanttipisteeseen perustuvilla komponenteilla hyviä ominaisuuksia Näiden rakenteiden valmistaminen on jossain määrin hankalaa ja vaatii kasvatusprosessin hyvän tuntemisen Ohutkalvojen kasvatuksessa on useita menetelmiä joilla päästään varsin puhtaisiin materiaaleihin: LPE, VPE, MBE, ALE 1 Kiteen kasvussa voidaan erottaa kolme erilaista moodia: 1 Markku Sopanen, Self-organized growth and optical spectroscopy of semiconductor nanostructures, väitöskirja, TKK, 1997
161 (FM) (VW) Kuva 834: Kiteen kasvumoodit FM-moodissa kide kasvaa tasaisesti kerros kerrokselta VW-moodissa substraatin pinnalle syntyy saarekkeita SK-kasvu on näiden väliltä Yleensä muutaman tasaisesti kasvaneen kerroksen päälle alkaa syntyä saarekkeita Saarekkeiden koko tietysti vaihtelee systeemistä toiseen, mutta yleensä niiden koko on nanometrialueella Saarekekasvua hyväksikäyttäen pystytään valmistamaan edellämainittuja kvanttipisteitä Eri moodit voidaan karkeasti selittää energetiikalla γ 0 γ 0 γ i γ s γ i FM VW Kuva 835: Eri kasvumoodien energetiikkaa Olkoon meillä ylläkuvatut tilanteet Pintajännitykset (tai vapaat energiat/pinta-alayksikkö) ovat γ 0 : kasvukerros-vakuumi; γ i : kasvukerros substraatti; γ s : substraatti-vakuumi Oletetaan, että VW-kasvussa saarekkeet täyttävät puolet substraatin pinnasta voimme laskea eri konfiguraatioiden energiaeron:
162 E E FM E VW ( γ 0 + γ i )A 1 2 -- ( γ 0 + γ i + γ s )A (858) Täydellinen kastuminen eli FM-kasvu toteutuu, kun γ γ 0 + γ i γ s < 0, (859) VW-kasvu, kun γ > 0, (860) js SK-kasvu, kun γ 0 (861) Kuten jo aikaisemmin oli puhetta, kiteen kasvun simuloinnissa tärkeimmät tapahtumat ovat kuvan 836 mukaiset adsorptio diffuusio desorptio diffuusio diffuusio Kuva 836: Pinnan kasvun tärkeimmät tapahtumat Kuvassa 837 on esitetty kaavamaisesti kasvavan pinnan erilaisia atomitason rakenteita Adsorption nopeuteen vaikuttaa epätasapaino kemiallisessa potentiaalissa: R ads R eq ads e β µ ; µ µ µ eq (862) Desorptionopeus riippuu irtoavan atomin sidoksista: Kuva 837: Materiaalin pinnan erilaisia atomikonfiguraatioita R des νe βe b ; E b mε, (863) missä ε on energia sidosta kohti ja m on atomin lähinaapureiden lukumäärä