Kinetisk Monte Carlo
Den kinetiska Monte Carlo- metoden (KMC) är en datorsimulering av Monte Carlo-metoden avsedd att simulera tidsutvecklingen för vissa processer som förekommer i naturen. Vanligtvis är dessa processer som sker med kända övergångshastigheter mellan stater. Det är viktigt att förstå att dessa hastigheter är indata till KMC-algoritmen, metoden i sig kan inte förutsäga dem.
KMC - metoden är i huvudsak densamma som den dynamiska Monte Carlo - metoden och Gillespie - algoritmen .
Algoritmer
En möjlig klassificering av KMC-algoritmer är som rejection-KMC (rKMC) och rejection-free-KMC (rfKMC).
Avslagsfri KMC
En rfKMC-algoritm, ofta bara kallad KMC, för simulering av tidsutvecklingen i ett system, där vissa processer kan inträffa med kända hastigheter r, kan exempelvis skrivas på följande sätt:
- Ställ in tiden .
- Välj ett initialtillstånd k .
- Bilda listan över alla möjliga övergångshastigheter i systemet från tillstånd k till ett generiskt tillstånd i . Tillstånd som inte kommunicerar med k kommer att ha .
- Beräkna den kumulativa funktionen för . Den totala hastigheten är .
- Få ett enhetligt slumptal .
- Hitta händelsen för att utföra i genom att hitta i för vilket (detta kan uppnås effektivt med binär sökning ).
- Utför händelse i (uppdatera det aktuella tillståndet ).
- Få ett nytt enhetligt slumptal .
- Uppdatera tiden med , där .
- Gå tillbaka till steg 3.
(Obs: eftersom medelvärdet för är lika med enhet, kan samma medeltidsskala erhållas genom att istället använda i steg 9. I detta fall kommer dock fördröjningen i samband med övergång i inte att hämtas från Poisson-fördelningen som beskrivs av hastigheten , men kommer istället att vara medelvärdet för den fördelningen.)
Denna algoritm är känd i olika källor på olika sätt som uppehållstidsalgoritmen eller n -faldigt sätt eller Bortz-Kalos-Lebowitz (BKL) algoritmen. Det är viktigt att notera att det inblandade tidssteget är en funktion av sannolikheten för att alla händelser i inte inträffade.
Avslag KMC
Avslag KMC har vanligtvis fördelen av en enklare datahantering och snabbare beräkningar för varje försökt steg, eftersom den tidskrävande åtgärden att få all inte behövs. Å andra sidan är tiden som utvecklas vid varje steg mindre än för rfKMC. Den relativa vikten av för- och nackdelar varierar med det aktuella fallet och med tillgängliga resurser.
En rKMC associerad med samma övergångshastigheter som ovan kan skrivas på följande sätt:
- Ställ in tiden .
- Välj ett initialtillstånd k .
- Få talet av alla möjliga övergångshastigheter, från tillstånd k till ett generiskt tillstånd i .
- Hitta kandidathändelsen att utföra i genom att likformigt sampla från övergångarna ovan.
- Acceptera händelsen med sannolikhet där är en lämplig övre gräns för . Det är ofta lätt att hitta utan att behöva beräkna alla (t.ex. för Metropolis övergångshastighetssannolikheter).
- Om det accepteras, utför händelse i (uppdatera det aktuella tillståndet .
- Få ett nytt enhetligt slumptal .
- Uppdatera tiden med , där .
- Gå tillbaka till steg 3.
(Obs: kan ändras från ett MC-steg till ett annat.) Denna algoritm kallas vanligtvis en standardalgoritm .
Teoretiska och numeriska jämförelser mellan algoritmerna tillhandahölls.
Tidsberoende algoritmer
Om hastigheterna är tidsberoende måste steg 9 i rfKMC modifieras av:
- .
Reaktionen (steg 6) måste väljas efter detta av
En annan mycket liknande algoritm kallas First Reaction Method (FRM). Den består av att välja den första reaktionen, vilket betyder att välja den minsta tiden och motsvarande reaktionsnummer i , från formeln
- ,
där är N slumptal.
Kommentarer om algoritmen
Nyckelegenskapen för KMC-algoritmen (och för FRM-algoritmen) är att om hastigheterna är korrekta, om processerna som är associerade med hastigheterna är av Poisson-processtypen, och om olika processer är oberoende (dvs inte korrelerade) så är KMC:n Algoritmen ger den korrekta tidsskalan för utvecklingen av det simulerade systemet. Det fanns en del debatt om riktigheten av tidsskalan för rKMC-algoritmer, men detta visades också rigoröst vara korrekt.
Om övergångarna dessutom följer detaljerad balans , kan KMC-algoritmen användas för att simulera termodynamisk jämvikt. KMC används dock i stor utsträckning för att simulera icke-jämviktsprocesser, i vilket fall detaljerad balans inte behöver följas.
rfKMC-algoritmen är effektiv i den meningen att varje iteration garanterat producerar en övergång. Men i formen som presenteras ovan kräver det operationer för varje övergång, vilket inte är alltför effektivt. I många fall kan detta förbättras avsevärt genom att lägga in samma typer av övergångar till lagerplatser och/eller bilda en träddatastruktur för händelserna. En konstanttidsskalningsalgoritm av denna typ har nyligen utvecklats och testats.
Den stora nackdelen med rfKMC är att alla möjliga hastigheter och reaktioner måste vara kända i förväg. Metoden i sig kan inte göra något åt att förutsäga dem. Hastigheterna och reaktionerna måste erhållas från andra metoder, såsom diffusionsexperiment (eller andra) experiment, molekylär dynamik eller densitetsfunktionella teorisimuleringar .
Exempel på användning
KMC har använts i simuleringar av följande fysiska system:
- Ytdiffusion
- Dislokationsrörlighet
- Yttillväxt
- Vakansdiffusion i legeringar (detta var den ursprungliga användningen)
- Förgrovning av domänevolution
- Defektmobilitet och klustring i jon- eller neutronbestrålade fasta ämnen inklusive, men inte begränsat till, skadeackumulering och modeller för amorfisering/omkristallisering.
- Viskoelasticitet hos fysiskt tvärbundna nätverk
För att ge en uppfattning om vad "objekten" och "händelserna" kan vara i praktiken, följer här ett konkret enkelt exempel, motsvarande exempel 2 ovan.
Betrakta ett system där individuella atomer deponeras på en yta en i taget (typiskt för fysisk ångavsättning ), men också kan migrera på ytan med någon känd hopphastighet w { . I detta fall är "objekten" för KMC-algoritmen helt enkelt de individuella atomerna.
Om två atomer kommer precis bredvid varandra blir de orörliga. Sedan bestämmer flödet av inkommande atomer en rate r insättning , och systemet kan simuleras med KMC med hänsyn till alla deponerade mobila atomer som (ännu) inte har träffat en motsvarighet och blivit orörliga. På så sätt finns följande händelser möjliga vid varje KMC-steg:
- En ny atom kommer in med rate 'r insättning
- En redan avsatt atom hoppar ett steg med hastigheten w .
Efter att en händelse har valts ut och genomförts med KMC-algoritmen behöver man sedan kontrollera om den nya eller just hoppade atomen har hamnat omedelbart intill någon annan atom. Om detta har hänt måste atomen/atomerna som nu är intilliggande flyttas bort från listan över mobila atomer, och på motsvarande sätt deras hopphändelser tas bort från listan över möjliga händelser.
Naturligtvis när man tillämpar KMC på problem inom fysik och kemi, måste man först överväga om det verkliga systemet följer de antaganden som ligger till grund för KMC tillräckligt bra. Verkliga processer har inte nödvändigtvis väldefinierade hastigheter, övergångsprocesserna kan vara korrelerade, vid atom- eller partikelhopp kanske hoppen inte sker i slumpmässiga riktningar, och så vidare. När man simulerar vitt skilda tidsskalor måste man också överväga om nya processer kan finnas på längre tidsskalor. Om något av dessa problem är giltigt, kan tidsskalan och systemutvecklingen som förutspås av KMC vara skev eller till och med helt fel.
Historia
Den första publikationen som beskrev de grundläggande egenskaperna hos KMC-metoden (nämligen att använda en kumulativ funktion för att välja en händelse och en tidsskaleberäkning av formen 1/ R ) var av Young och Elcock 1966. Uppehållstidsalgoritmen publicerades också ungefär samtidigt.
Tydligen oberoende av Youngs och Elcocks arbete utvecklade Bortz, Kalos och Lebowitz en KMC-algoritm för att simulera Ising-modellen , som de kallade det n-faldiga sättet . Grunderna i deras algoritm är desamma som Young, men de ger mycket mer detaljer om metoden.
Året därpå publicerade Dan Gillespie vad som nu är känt som Gillespie-algoritmen för att beskriva kemiska reaktioner. Algoritmen är liknande och tidsförloppsschemat i huvudsak detsamma som i KMC.
Det finns vid skrivningen av detta (juni 2006) ingen definitiv avhandling om teorin om KMC, men Fichthorn och Weinberg har diskuterat teorin för termodynamiska jämvikts-KMC-simuleringar i detalj. En bra introduktion ges också av Art Voter, [1] och av APJ Jansen, [2] , och en ny recension är (Chatterjee 2007) eller (Chotia 2008). Berättigandet av KMC som en grovkorning av Langevin-dynamiken med användning av den kvasistationära distributionsmetoden har utvecklats av T. Lelièvre och medarbetare.
I mars 2006 släpptes den förmodligen första kommersiella programvaran som använder Kinetic Monte Carlo för att simulera diffusion och aktivering/deaktivering av dopämnen i kisel- och kiselliknande material av Synopsys , rapporterat av Martin-Bragado et al.
Sorter av KMC
KMC-metoden kan delas in efter hur objekten rör sig eller reaktioner som uppstår. Åtminstone följande underavdelningar används:
- Gitter KMC ( LKMC ) betyder KMC utförd på ett atomiskt gitter . Ofta kallas denna sort också atomistisk KMC, ( AKMC ). Ett typiskt exempel är simulering av vakansdiffusion i legeringar , där en vakans tillåts hoppa runt gittret med hastigheter som beror på den lokala elementsammansättningen .
- Objekt KMC ( OKMC ) betyder KMC utförd för defekter eller föroreningar , som hoppar antingen i slumpmässiga eller gitterspecifika riktningar. Endast positionerna för de hoppande objekten ingår i simuleringen, inte de för "bakgrunds" gitteratomerna. Det grundläggande KMC-steget är ett objekthopp.
- Event KMC ( EKMC ) eller First-passage KMC ( FPKMC ) betecknar en OKMC-variant där följande reaktion mellan objekt (t.ex. klustring av två föroreningar eller vakans - interstitiell förintelse) väljs med KMC-algoritmen, med hänsyn till objektpositionerna, och denna händelse genomförs sedan omedelbart.
externa länkar
- Kinetisk Monte Carlo-simulering med 3D-gitter i "bitspråk"
- KMC-simulering av Plateau-Rayleigh-instabiliteten
- KMC-simulering av fcc vicinal (100)-ytdiffusion
- Stokastisk kinetisk medelfältsmodell (ger liknande resultat som gitterkinetisk Monte Carlo, men mycket mer kostnadseffektiv och enklare att förverkliga - programkod med öppen källkod tillhandahålls)