El método Monte Carlo cinético (KMC) es una simulación informática del método Monte Carlo destinada a simular la evolución temporal de algunos procesos que ocurren en la naturaleza. Por lo general, se trata de procesos que ocurren con tasas de transición conocidas entre estados. Estas tasas son datos de entrada para el algoritmo KMC; el método en sí no puede predecirlas.
Una posible clasificación de los algoritmos KMC es como KMC de rechazo (rKMC) y KMC sin rechazo (rfKMC).
KMC sin rechazo
Un algoritmo rfKMC, a menudo llamado simplemente KMC, para simular la evolución temporal de un sistema, donde algunos procesos pueden ocurrir con tasas conocidas r, se puede escribir, por ejemplo, de la siguiente manera: [1] : 13–14
Establecer la hora .
Elija un estado inicial k .
Forme la lista de todas las velocidades de transición posibles en el sistema , desde el estado k a un estado genérico i . Los estados que no se comunican con k tendrán .
Calcular la función acumulativa para . La tasa total es .
Obtenga un número aleatorio uniforme .
Encuentre el evento que llevará a cabo i encontrando el i para el cual (esto se puede lograr de manera eficiente usando la búsqueda binaria ).
Ejecutar el evento i (actualizar el estado actual ).
Obtenga un nuevo número uniforme aleatorio .
Actualice el tiempo con , donde . Tenga en cuenta que este intervalo de tiempo representa el tiempo transcurrido entre el evento anterior y este, en lugar del intervalo de tiempo entre este evento y el siguiente. [1] : 17–18
Regresar al paso 3.
(Nota: debido a que el valor promedio de es igual a la unidad, se puede obtener la misma escala de tiempo promedio utilizando en el paso 9. En este caso, sin embargo, el retraso asociado con la transición i no se extraerá de la distribución de Poisson descrita por la tasa , sino que será la media de esa distribución. [ cita requerida ] )
Este algoritmo se conoce en diferentes fuentes como algoritmo de tiempo de residencia , algoritmo de n -fold o algoritmo de Bortz-Kalos-Lebowitz (BKL) . Es importante señalar que el intervalo de tiempo involucrado es una función de la probabilidad de que todos los eventos i no hayan ocurrido. [1] : 13–14
Rechazo KMC
El método KMC de rechazo tiene la ventaja de que permite un manejo más sencillo de los datos y cálculos más rápidos para cada paso intentado, ya que no es necesaria la acción que requiere mucho tiempo para obtener todo. Por otra parte, el tiempo empleado en cada paso es menor que en el caso de rfKMC. El peso relativo de los pros y los contras varía según el caso en cuestión y los recursos disponibles.
Un rKMC asociado con las mismas tasas de transición que las anteriores se puede escribir de la siguiente manera:
Establecer la hora .
Elija un estado inicial k .
Obtenga el número de todas las tasas de transición posibles, desde el estado k a un estado genérico i .
Encuentre el evento candidato para llevar a cabo i mediante un muestreo uniforme de las transiciones anteriores.
Acepte el evento con probabilidad , donde es un límite superior adecuado para . A menudo es fácil de encontrar sin tener que calcular todo (por ejemplo, para las probabilidades de la tasa de transición de Metropolis).
Si se acepta, ejecutar el evento i (actualizar el estado actual ).
Obtenga un nuevo número uniforme aleatorio .
Actualiza la hora con , donde .
Regresar al paso 3.
(Nota: puede cambiar de un paso de MC a otro). Este algoritmo generalmente se denomina algoritmo estándar .
Se proporcionaron comparaciones teóricas [2] y numéricas [1] [3] entre los algoritmos.
Algoritmos dependientes del tiempo
Si las tasas dependen del tiempo, el paso 9 del rfKMC debe modificarse mediante: [4]
.
La reacción (paso 6) debe elegirse después de esto mediante
Otro algoritmo muy similar se denomina método de la primera reacción (MFR). Consiste en elegir la primera reacción que se produce, es decir, elegir el tiempo más pequeño y el número de reacción correspondiente i , a partir de la fórmula
,
donde son N números aleatorios.
Comentarios sobre el algoritmo
La propiedad clave del algoritmo KMC (y del FRM) es que si las tasas son correctas, si los procesos asociados con las tasas son del tipo de proceso de Poisson y si los diferentes procesos son independientes (es decir, no están correlacionados), entonces el algoritmo KMC proporciona la escala de tiempo correcta para la evolución del sistema simulado. Hubo cierto debate sobre la exactitud de la escala de tiempo para los algoritmos rKMC, pero también se demostró rigurosamente que era correcta. [2]
Si además las transiciones siguen un equilibrio detallado , el algoritmo KMC puede utilizarse para simular el equilibrio termodinámico. Sin embargo, el KMC se utiliza ampliamente para simular procesos que no están en equilibrio, [5] en cuyo caso no es necesario respetar el equilibrio detallado.
El algoritmo rfKMC es eficiente en el sentido de que se garantiza que cada iteración produzca una transición. Sin embargo, en la forma presentada anteriormente requiere operaciones para cada transición, lo que no es demasiado eficiente. En muchos casos, esto se puede mejorar mucho agrupando los mismos tipos de transiciones en contenedores y/o formando una estructura de datos de árbol de los eventos. Recientemente se ha desarrollado y probado un algoritmo de escalamiento de tiempo constante de este tipo. [6]
La principal desventaja de rfKMC es que todas las velocidades y reacciones posibles deben conocerse de antemano. El método en sí no puede hacer nada para predecirlas. Las velocidades y reacciones deben obtenerse a partir de otros métodos, como experimentos de difusión (u otros), dinámica molecular o simulaciones de la teoría funcional de la densidad .
Ejemplos de uso
KMC se ha utilizado en simulaciones de los siguientes sistemas físicos:
Movilidad y agrupamiento de defectos en sólidos irradiados con iones o neutrones, incluidos, entre otros, modelos de acumulación de daños y amorfización/recristalización.
Viscoelasticidad de redes reticuladas físicamente [9]
Para dar una idea de lo que pueden ser los "objetos" y "eventos" en la práctica, he aquí un ejemplo concreto y sencillo, correspondiente al ejemplo 2 anterior.
Consideremos un sistema en el que los átomos individuales se depositan sobre una superficie de a uno por vez (típico de la deposición física de vapor ), pero también pueden migrar sobre la superficie con una velocidad de salto conocida . En este caso, los "objetos" del algoritmo KMC son simplemente los átomos individuales.
Si dos átomos se acercan uno al otro, se vuelven inmóviles. Entonces, el flujo de átomos entrantes determina una tasa de depósito r y el sistema se puede simular con KMC considerando todos los átomos móviles depositados que (aún) no han encontrado una contraparte y se vuelven inmóviles. De esta manera, existen los siguientes eventos posibles en cada paso de KMC:
Un nuevo átomo entra con tasa de depósito
Un átomo ya depositado salta un paso con una velocidad w .
Una vez que se ha seleccionado un evento y se ha llevado a cabo con el algoritmo KMC, es necesario comprobar si el átomo nuevo o recién saltado se ha vuelto inmediatamente adyacente a algún otro átomo. Si esto ha sucedido, los átomos que ahora están adyacentes deben retirarse de la lista de átomos móviles y, en consecuencia, sus eventos de salto deben eliminarse de la lista de eventos posibles.
Naturalmente, al aplicar el método KMC a problemas de física y química, primero hay que considerar si el sistema real sigue los supuestos que lo sustentan lo suficientemente bien. Los procesos reales no tienen necesariamente velocidades bien definidas, los procesos de transición pueden estar correlacionados, en el caso de saltos de átomos o partículas, los saltos pueden no ocurrir en direcciones aleatorias, etc. Cuando se simulan escalas de tiempo muy dispares, también hay que considerar si pueden estar presentes nuevos procesos en escalas de tiempo más largas. Si alguna de estas cuestiones es válida, la escala de tiempo y la evolución del sistema predichas por el método KMC pueden estar sesgadas o incluso ser completamente erróneas.
Historia
La primera publicación que describió las características básicas del método KMC (es decir, el uso de una función acumulativa para seleccionar un evento y un cálculo de escala de tiempo de la forma 1/ R ) fue realizada por Young y Elcock en 1966. [8] El algoritmo de tiempo de residencia también se publicó aproximadamente al mismo tiempo. [10]
Aparentemente independientemente del trabajo de Young y Elcock, Bortz, Kalos y Lebowitz [1] desarrollaron un algoritmo KMC para simular el modelo de Ising , al que llamaron el método n-fold . Los conceptos básicos de su algoritmo son los mismos que los de Young [8] , pero proporcionan muchos más detalles sobre el método.
Al año siguiente, Dan Gillespie publicó lo que ahora se conoce como el algoritmo de Gillespie para describir las reacciones químicas. [11] El algoritmo es similar y el esquema de avance del tiempo es esencialmente el mismo que en KMC.
Hasta el momento de escribir este artículo (junio de 2006) no existe un tratado definitivo sobre la teoría de KMC, pero Fichthorn y Weinberg han analizado en detalle la teoría para simulaciones de KMC de equilibrio termodinámico. [12] Art Voter [13] [1] y APJ Jansen [14] [2] también ofrecen una buena introducción, y una revisión reciente es (Chatterjee 2007) [15] o (Chotia 2008). [16] T. Lelièvre y colaboradores han desarrollado la justificación de KMC como una granulación gruesa de la dinámica de Langevin utilizando el enfoque de distribución cuasiestacionaria . [17] [18]
En marzo de 2006, Synopsys lanzó probablemente el primer software comercial que utiliza Kinetic Monte Carlo para simular la difusión y activación/desactivación de dopantes en silicio y materiales similares al silicio , según informaron Martin-Bragado et al. [19].
Variedades de KMC
El método KMC se puede subdividir según el movimiento de los objetos o las reacciones que se producen. Se utilizan al menos las siguientes subdivisiones:
Lattice KMC ( LKMC ) significa KMC realizado en una red atómica . A menudo, esta variedad también se denomina KMC atomístico ( AKMC ). Un ejemplo típico es la simulación de difusión de vacantes en aleaciones , donde se permite que una vacante salte por la red a velocidades que dependen de la composición elemental local. [20]
El KMC de objetos ( OKMC ) es el KMC realizado para defectos o impurezas que saltan en direcciones aleatorias o específicas de la red. En la simulación solo se incluyen las posiciones de los objetos que saltan, no las de los átomos de la red "de fondo". El paso básico del KMC es un salto de objeto.
El evento KMC ( EKMC ) o KMC de primer paso ( FPKMC ) significa una variedad OKMC donde la siguiente reacción entre objetos (por ejemplo, agrupamiento de dos impurezas o vacancia - aniquilación intersticial ) se elige con el algoritmo KMC, teniendo en cuenta las posiciones de los objetos, y este evento se lleva a cabo inmediatamente. [21] [22]
Referencias
^ abcde Bortz, AB; Kalos, MH; Lebowitz, JL (1975). "Un nuevo algoritmo para la simulación de Monte Carlo de sistemas de espín de Ising". Journal of Computational Physics . 17 (1). Elsevier BV: 10–18. Bibcode :1975JCoPh..17...10B. doi :10.1016/0021-9991(75)90060-1. ISSN 0021-9991.
^ ab Serebrinsky, Santiago A. (31 de marzo de 2011). "Escala de tiempo físico en simulaciones cinéticas de Monte Carlo de cadenas de Markov de tiempo continuo". Physical Review E . 83 (3). American Physical Society (APS): 037701. Bibcode :2011PhRvE..83c7701S. doi :10.1103/physreve.83.037701. ISSN 1539-3755. PMID 21517635.
^ Sadiq, Abdullah (1984). "Un nuevo algoritmo para la simulación de Monte Carlo de la cinética de intercambio de espín de los sistemas de Ising". Journal of Computational Physics . 55 (3). Elsevier BV: 387–396. Bibcode :1984JCoPh..55..387S. doi :10.1016/0021-9991(84)90028-7. ISSN 0021-9991.
^ Prados, A.; Brey, JJ; Sánchez-Rey, B. (1997). "Un algoritmo dinámico de Monte Carlo para ecuaciones maestras con tasas de transición dependientes del tiempo". Journal of Statistical Physics . 89 (3–4). Springer Science and Business Media LLC: 709–734. Bibcode :1997JSP....89..709P. doi :10.1007/bf02765541. ISSN 0022-4715. S2CID 122985615.
^ Meng, B.; Weinberg, WH (1994). "Simulaciones de Monte Carlo de espectros de desorción programados por temperatura". The Journal of Chemical Physics . 100 (7). AIP Publishing: 5280–5289. Bibcode :1994JChPh.100.5280M. doi :10.1063/1.467192. ISSN 0021-9606.
^ Slepoy, Alexander; Thompson, Aidan P.; Plimpton, Steven J. (28 de mayo de 2008). "Un algoritmo Monte Carlo cinético de tiempo constante para la simulación de grandes redes de reacciones bioquímicas". The Journal of Chemical Physics . 128 (20). AIP Publishing: 205101. Bibcode :2008JChPh.128t5101S. doi :10.1063/1.2919546. ISSN 0021-9606. PMID 18513044.
^ Meng, B.; Weinberg, WH (1996). "Estudios dinámicos de Monte Carlo de modelos de crecimiento epitaxial de haces moleculares: escalamiento interfacial y morfología". Surface Science . 364 (2). Elsevier BV: 151–163. Bibcode :1996SurSc.364..151M. doi :10.1016/0039-6028(96)00597-3. ISSN 0039-6028.
^ abc Young, WM; Elcock, EW (1966). "Estudios de Monte Carlo sobre migración de vacantes en aleaciones ordenadas binarias: I". Actas de la Physical Society . 89 (3). IOP Publishing: 735–746. Bibcode :1966PPS....89..735Y. doi :10.1088/0370-1328/89/3/329. ISSN 0370-1328.
^ Baeurle, Stephan A.; Usami, Takao; Gusev, Andrei A. (2006). "Un nuevo enfoque de modelado multiescala para la predicción de propiedades mecánicas de nanomateriales basados en polímeros". Polímero . 47 (26). Elsevier BV: 8604–8617. doi :10.1016/j.polymer.2006.10.017. ISSN 0032-3861.
^ DR Cox y HD Miller, La teoría de los procesos estocásticos (Methuen, Londres), 1965, págs. 6-7.
^ Gillespie, Daniel T (1976). "Un método general para simular numéricamente la evolución temporal estocástica de reacciones químicas acopladas". Journal of Computational Physics . 22 (4). Elsevier BV: 403–434. Bibcode :1976JCoPh..22..403G. doi :10.1016/0021-9991(76)90041-3. ISSN 0021-9991.
^ Fichthorn, Kristen A. ; Weinberg, WH (15 de julio de 1991). "Fundamentos teóricos de simulaciones dinámicas de Monte Carlo". The Journal of Chemical Physics . 95 (2). AIP Publishing: 1090–1096. Bibcode :1991JChPh..95.1090F. doi :10.1063/1.461138. ISSN 0021-9606.
^ AF Voter, Introducción al método cinético de Monte Carlo, en Efectos de radiación en sólidos, editado por KE Sickafus y EA Kotomin (Springer, NATO Publishing Unit, Dordrecht, Países Bajos, 2005).
^ APJ Jansen, Introducción a las simulaciones de Monte Carlo de reacciones superficiales, materia condensada, resumen cond-mat/0303028.
^ Chatterjee, Abhijit; Vlachos, Dionisios G. (28 de febrero de 2007). "Una descripción general de los métodos de Monte Carlo cinético acelerado y microscópico espacial". Revista de diseño de materiales asistido por computadora . 14 (2). Springer Science and Business Media LLC: 253–308. Bibcode :2007JCMD...14..253C. doi :10.1007/s10820-006-9042-9. ISSN 0928-1045. S2CID 53336314.
^ Chotia, Amodsen; Viteau, Matthieu; Vogt, Thibault; Comparat, Daniel; Pillet, Pierre (30 de abril de 2008). "Modelado cinético de Monte Carlo del bloqueo dipolar en el experimento de excitación de Rydberg". New Journal of Physics . 10 (4). IOP Publishing: 045031. arXiv : 0803.4481 . Bibcode :2008NJPh...10d5031C. doi : 10.1088/1367-2630/10/4/045031 . ISSN 1367-2630.
^ Di Gesù, Giacomo; Lelièvre, Tony; Le Peutrec, Dorian; Nectoux, Boris (2016). "Modelos de Markov con saltos y teoría de estados de transición: el enfoque de distribución cuasiestacionaria". Faraday Discussions . 195 : 469–495. arXiv : 1605.02643 . Bibcode :2016FaDi..195..469D. doi :10.1039/C6FD00120C. ISSN 1364-5498. PMID 27740662. S2CID 25564764.
^ Lelièvre, Tony (2018). "Fundamentos matemáticos de los métodos de dinámica molecular acelerada". En Andreoni, Wanda; Yip, Sidney (eds.). Manual de modelado de materiales . Springer. págs. 773–803. arXiv : 1801.05347 . doi :10.1007/978-3-319-44677-6_27. ISBN978-3-319-44677-6.
^ Martin-Bragado, Ignacio; Tian, S.; Johnson, M.; Castrillo, P.; Pinacho, R.; Rubio, J.; Jaraiz, M. (2006). "Modelado de defectos cargados, difusión de dopantes y mecanismos de activación para simulaciones TCAD utilizando Monte Carlo cinético". Instrumentos y métodos nucleares en la investigación en física Sección B: Interacciones de haces con materiales y átomos . 253 (1–2). Elsevier BV: 63–67. Bibcode :2006NIMPB.253...63M. doi :10.1016/j.nimb.2006.10.035. ISSN 0168-583X.
^ Mason, DR; Hudson, TS; Sutton, AP (enero de 2005). "Recuperación rápida de la historia de estados en simulaciones cinéticas de Monte Carlo utilizando la clave Zobrist". Computer Physics Communications . 165 (1): 37–48. Bibcode :2005CoPhC.165...37M. doi :10.1016/j.cpc.2004.09.007.
^ Dalla Torre, J.; Bocquet, J.-L.; Doan, NV; Adam, E.; Barbu, A. (2005). "JERK, un modelo cinético de Monte Carlo basado en eventos para predecir la evolución de la microestructura de materiales bajo irradiación". Philosophical Magazine . 85 (4–7). Informa UK Limited: 549–558. Bibcode :2005PMag...85..549D. doi :10.1080/02678370412331320134. ISSN 1478-6435. S2CID 96878847.
^ Opplestrup, Tomas; Bulatov, Vasily V.; Gilmer, George H.; Kalos, Malvin H.; Sadigh, Babak (4 de diciembre de 2006). "Algoritmo de Monte Carlo de primer paso: difusión sin saltos". Physical Review Letters . 97 (23). American Physical Society (APS): 230602. Bibcode :2006PhRvL..97w0602O. doi :10.1103/physrevlett.97.230602. ISSN 0031-9007. PMID 17280187.
Enlaces externos
Simulación cinética de Monte Carlo en red 3D en 'lenguaje de bits'
Simulación KMC de la inestabilidad Plateau-Rayleigh
Simulación KMC de difusión de superficie vecinal (100) de fcc
Modelo de campo medio cinético estocástico (da resultados similares al modelo Monte Carlo cinético reticular, sin embargo, es mucho más rentable y más fácil de realizar; se proporciona código de programa de fuente abierta)