95685564 simulacion molecular de floculantes gq rev pgt[1]
TRANSCRIPT
1
Simulación molecular por métodos Monte Carlo
Gonzalo Quezada Escalona Ingeniero civil Químico
Universidad de Concepción Departamento de Ingeniería Química
sábado, 02 de junio de 2012
La simulación molecular es una importante herramienta en la actualidad debido a dos grandes
razones. Los computadores poseen una gran capacidad de cálculo y los experimentos en
laboratorios puedes significar altos costos monetarios. Obviamente un ensayo bien preparado en
laboratorio genera información muy confiable y certera. Por ende una buena estrategia es iterar
frente a estos dos puntos de vista, tanto los experimentos reales como los de computador para
una mayor eficiencia en los procedimientos y ensayos.
Método Monte Carlo
Se entiende como un método numérico no determinístico usado para resolver problemas
matemáticos de gran envergadura por medio del uso de números aleatorios. El método de
Montecarlo (MC) ha sido de gran ayuda en la simulación estocástica y es comparable a la dinámica
molecular a la hora de encontrar resultados. Ulam, von Neumann y Fermi fueron los primero en
proponer e implementar el método de MC como una técnica viable para resolver problemas
prácticos [1].
Los números aleatorios son esenciales para los métodos de Monte Carlo, por lo que a la hora de
utilizarlos se requiere una secuencia de estos números que sean independientes, reales y
uniformemente distribuidos (normalmente en un rango de 0 a 1). Dado eso, es necesario estudiar
la naturaleza de estos números y como poder generarlos para un experimento.
Números aleatorios [2]
Existen procesos físicos que se pueden llevar a cabo y generar números aleatorios, tales como:
Decaimiento radioactivo
Ruido térmico
Ruleta
Sin embargo, en simulaciones moleculares requieren una enorme cantidad de números aleatorios
dado por la cantidad de ciclos o pasos que se utilizan. Los números aleatorios reales no son
recomendables dado que: la secuencia no es repetible, los generadores son lentos y la calidad de
la distribución es imperfecta.
Por lo que en la actualidad se utilizan algoritmos determinísticos para generar números
pseudoaleatorios. Estos números son generados comúnmente en un computador y deben pasar
2
por test de aleatoriedad con el fin de obtener resultados confiables. Las características que deben
poseer estos números son:
Repetibilidad
Aleatoriedad
Periodos largos
Independiente de la semilla
Rápidos y portabilidad
En la actualidad existen varios generadores de números aleatorios incorporados en paquetes
matemáticos para utilizar en lenguajes de programación tales como:
Midsquare method
Linear congruential generator
Lagged Fibonacci
Mersenne twister
Generadores Combinados (RANMAR, RANLUX, CMRG)
Se ha observado que en los códigos estudiados de literatura prefieren el Mersenne twister debido
a que cumple bien con las características mencionadas anteriormente.
Algoritmo de Montecarlo-Metrópolis [3]
En términos generales el algoritmo de Metrópolis está basado en la noción de balance detallado
que describe el equilibrio para sistemas donde su configuración es proporcional a un factor de
Boltzmann. Esto es
Donde P es la probabilidad de que el sistema este en es estado A, Ea es la energía que posee en
ese estado, T es la temperatura y k es la constante de Boltzmann. Si queremos cambiar el estado A
a un nuevo estado B entonces podemos escribir
Al generar esta razón convierte cualquier cantidad proporcional a un numero adimensional. Esta
expresión es la base para aplicarlo como un algoritmo de Metrópolis. La receta para generar
simulaciones por medio de este método es la siguiente:
1. Comenzar por una configuración inicial denominada A con energía .
2. Generar un cambio o perturbación para así generar una nueva configuración llamada B.
3. Calcular la energía .
4. Si se acepta la nueva configuración. Donde P es un número aleatorio
uniforme entre 0 y 1.
3
En el punto cuatro esta implícito que el algoritmo cuando la energía de B es menor que la de A se
acepta el cambio, pero se le da la oportunidad de aceptar el cambio (con una probabilidad) aun si
la energía en B es mayor que la de A. Esto es solamente una estrategia de cálculo para generar
desorden configuracional y así acelerar la convergencia a estados más estables del sistema.
En el punto 2 es necesario detallar que existen varias maneras de generar un cambio para obtener
el siguiente punto. Depende en que tan realista se quiere programar el código, por ejemplo para
cadenas de polímeros se agrega cierta probabilidad para mover las moléculas de la cadena en
varias formas, como estiramiento, rotación, traslación, doblamiento, etc.
Trabajo práctico: simulación de un sistema acuoso, aceite y surfactante por medio de
Monte Carlo Metrópolis con potenciales de Lennard-Jones [4]
Para este informe se pretende estudiar la simulación a partir de un ejemplo dado con las
siguientes características.
Generar un arreglo discreto que incorpore moléculas de Agua (w), Aceite (o) y surfactante
(s) con un diámetro igual para todas. (preferiblemente unitario)
Considerar la interacción entre pares de moléculas y restringir a primeros y segundos
vecinos radiales.
Encontrar la configuración más estable por medio del algoritmo de Metrópolis.
Considerar el cambio de estados por un intercambio de posición entre 2 moléculas
escogidas al azar.
Consideraciones
Frontera periódica: Dado que el
arreglo puede ser en 1, 2 o 3
dimensiones con una longitud
definida en cada una de sus
dimensiones, es necesario definir
qué ocurre con una molécula en la
frontera del arreglo. En este caso
solo se tomara su interacción con
sus vecinos y como ejemplo para 2
dimensiones en la figura.1 se puede
observar como un arreglo cuadrado
se transforma en un toroide para
que exista continuidad en el arreglo.
Potencial Lennard-Jones[5]: Para calcular el valor de las interacciones y así calcular la energía del
sistema se utiliza el conocido potencial de Lennard-Jones que simula las interacciones entre pares
neutrales de átomos o moléculas. Su expresión es:
Figura.1
4
r
𝜇 𝜀
𝜎
Figura.2
Figura.3
[(
)
(
)
]
Donde es la profundidad del pozo potencial, es
la distancia finita a la cual el potencial entre
partículas es cero (como se observar en la figura.2).
Dado la simplicidad este potencial es ampliamente
utilizado en simulación aun cuando existen modelos
más exactos.
Los valores de a utilizar para las molecular de agua
(w), aceite (o) y surfactante (s) fueron elegido
arbitrariamente pero considerando sus
comportamientos e también fueron variando
sistemáticamente para una representación mas realista. Estos valores son:
Tipo de interacción
w-w 4.5
o-o 1
s-s 1
w-o 0
w-s 6.5
o-s 6
En este caso el parámetro se escogió 0.5 para todas las moléculas, que significaría tener a todas
las moléculas apegadas en el arreglo.
Interacciones: Dado que se aprovecha la estructura
ordenada (o en otras palabras on-lattice) se procede a
generar una estrategia simple para calcular la
interacción de una molécula de posición i,j en un arreglo
2D. Tal como muestra la figura 3 el arreglo toma en
total 20 interacciones a su alrededor.
Para el cálculo del potencial total es necesario sólo
tomar la mitad de las interacciones para no repetir
pares de moléculas (destacadas en la figura). Sin
embargo para el cálculo de cambio de estado se
procede a incluir todas las interacciones como se verá
más adelante.
Cambio de estado[6]: Para el cambio de estado se prefirió
aprovechar de nuevo el lattice y así, eliminar del cálculo las energías de interacción de moléculas
que no han sido cambiadas de lugar. Entonces, solo se calculan las interacciones de las 2
moléculas que van a ser intercambiadas dando la siguiente expresión:
i-1,j-1 i-1,j+1 i-1,j
i,j-1
i-1,j-2
i-1,j+1 i-2,j i-2,j-1
i,j-2
i+1,j-2
5
Figura.4
∑ ∑( )
Donde las dos sumatorias claramente consideran las 20 interacciones que posee con sus vecinos, y
serían para 2 moléculas. Se efectúa el cálculo antes y después de intercambiarlas, con ello se
determina entonces el cambio de energía producido por este cambio de estado.
Diagrama de flujo del algoritmo
Este diagrama explica de manera más esquemática el algoritmo de metrópolis dado a conocer más
arriba, donde Mk y Mn son los arreglos lattice anterior y nuevo respectivamente. Se destacan en
naranjo las optimizaciones que se agregaron al método.
Resultados de la simulación
Como se puede ver en la figura 4 el
algoritmo de metrópolis funciona muy bien
cuando se encuentra en un estado
metaestable A para luego llegar a un estado
B. No se muestra en la figura 4 pero las
iteraciones fueron más y se observa que es
más difícil perturbar el estado generado en
B por lo que se supone que es estable.
Numero de partículas e iteraciones Arreglo Inicial
Intercambiar 2 puntos de lugar
Números aleatorios
Mk
Mn
E<0
Potencial de Mk
E1 y E2
Mk=
Mn
pot(Mk)=pot(Mn)
No
Si
N veces
P<exp(-E/kt)
Si
No
Datos de entrada
Iteraciones
Po
ten
cial
A
B
6
Figura.5
Comparación de tiempos de cómputo: en la descripción de cambio de estado se define la
obtención del cambio de energía respecto al cambio de estado como un simple cálculo de dos
moléculas mientras que en general se debería calcular para todo el arreglo y así determinar el
cambio.
En la figura 5 se muestra la comparación
de tiempos entre el cálculo total del
arreglo y el cálculo entre dos vecinos y
evidentemente es más rápido dando un
98% de mejoras. Esto es uno de los
beneficios de tener un arreglo ordenado.
Aumento de surfactante: En este caso se
procedió a ver la diferencia del porcentaje
de surfactante en el sistema. La figura 6
muestra que al tener baja concentración de
surfactante el aceite tiende a juntarse de manera inmiscible con el agua, mientras que si se
aumenta la cantidad de surfactante se observa la formación se emulsiones y las moléculas de
aceite se solubilizan en el agua tal como se espera en la realidad.
Se compara también la diferencia de incluir más
interacciones, la figura 7 es el mismo ejemplo
de la figura 6 pero eliminando los segundos
vecinos. Solo se consideran 8 vecinos para los
cálculos en vez de los 20 y se observa que para
25% de surfactante el sistema se aglutina
debido a no considerar interacción de otros
vecinos.
Estado estable: se ha podido observar de las
5% de surfactante 25% de surfactante
~~98%
Figura.6
Figura.7
Aceite o Surfactante +
7
simulaciones que el estado estable B mencionado en la figura 4 se obtiene aproximadamente en la
misma cantidad de iteraciones. Por lo que
se varió el largo del arreglo para observar
cuando llega al estado estable, y se observa
que es prácticamente lineal en un gráfico
logarítmico en el número las iteraciones.
Se observa que para este trabajo práctico se
demostró la gran ayuda que genera la
simulación incluso cuando se utilizan
parámetros y consideraciones básicas. Se
observó que para este trabajo el
surfactante tiende a irse en la interfase de
agua y aceite y además el surfactante presenta también la tendencia de formar cadenas cuando
aumenta su concentración. Los parámetros de Lennard-Jones utilizados sin ser totalmente
ajustados al sistema pero sí dan una cierta confianza para modelar este sistema por el
comportamiento que se espera tener en la realidad.
El proyecto continúa con las siguientes actividades:
Agregar una tercera dimensión para generar simulaciones en 3D.
Traspasar los códigos efectuados en Matlab al lenguaje C para Linux.
Investigación bibliográfica y simulación de polímeros.
Referencias
[1] Eckhardt, Roger (1987). "Stan Ulam, John von Neumann, and the Monte Carlo method". Los
Alamos Science, Special Issue (15): 131–137.
[2] Kari Rummukainen, Lecture notes “Monte Carlo simulations in physics” Department of physical
sciences, University of Oulu <http://cc.oulu.fi/~tf/tiedostot/pub/montecarlo/>.
[3] Metropolis, N.; Rosenbluth, A.W.; Rosenbluth, M.N.; Teller, A.H.; Teller, E. (1953). "Equations of
State Calculations by Fast Computing Machines". Journal of Chemical Physics 21 (6): 1087–1092.
[4] Vreede J., Kranenburg M., Smit B. DPD simulations of surfactants in oil-water systems
Department of Chemical Engineering University of Amsterdam, The Netherlands 2003.
[5] Lennard-Jones, J. E. (1924), "On the Determination of Molecular Fields", Proc. R. Soc. Lond.
A 106 (738): 463–477.
[6] Physics 22: Numerical Methods III “Monte-Carlo integration and the Metropolis algorithm“,
CALTECH 2010 <http://www.pma.caltech.edu/~physlab/ph22_spring06/assignment-1.pdf>.
Figura.6