6 votos

¿Cómo puedo incluir un número variable de partículas en una simulación de dinámica browniana?

He programado una simulación de dinámica browniana en dos dimensiones. (Proteínas de grano grueso sobre superficies con potenciales de interacción, es decir, partículas parcheadas). Ahora quiero permitir que las partículas salgan o entren en el sistema, en otras palabras, el número de partículas no tiene que ser conservado.

¿Alguien conoce una buena manera de hacerlo? ¿Cuáles son las dificultades más comunes?


La base de mi simulación es la ecuación de Langevin sobreamortiguada $$ \frac{d x}{dt} = \frac{D}{k_{B}T}(F^{int} + F^{s}).$$ En mi caso tengo difusión anisotrópica, así que básicamente tengo una ecuación de langevin para cada grado de libertad de cada partícula; 2 direccionales y 1 rotacional. El movimiento aleatorio de las partículas está incluido en la fuerza estocástica generada a partir de un proceso Wiener estándar. Los parches puntuales unidos a las partículas median las interacciones atractivas, mientras que la repulsión se describe mediante un potencial estándar de esfera blanda. El sistema se mantiene a temperatura constante (incluida en los momentos del movimiento aleatorio). Me interesan las estructuras autoensambladas al final de la simulación, es decir, grupos de diferentes tamaños.

Hasta ahora mi simulación ha superado importantes pruebas y coincide con las predicciones analíticas de los cálculos estadísticos (conjunto canónico). En los experimentos reales no es tan fácil fijar el número de partículas, ya que las partículas se difunden hacia la superficie a lo largo del experimento. Quiero incluir esta observación en mi simulación por ordenador, lo que significa que tengo que eliminar partículas y añadir partículas a mi sistema.

Tuve la idea de definir un ritmo en el que se eliminan y se añaden al sistema partículas seleccionadas al azar. Ahora me temo que este enfoque es demasiado ingenuo y quería saber si alguien tiene una sugerencia para una solución adecuada a esto o al menos algunas pistas. Tal vez hay algo que se me escapa.

Preferiría tener un respaldo teórico para mi idea como el que tienen, por ejemplo, las grandes simulaciones canónicas de Monte Carlo.

0 votos

¿Estás haciendo una pregunta de programación? ¿O una pregunta de física?

1 votos

En realidad, una combinación de ambos. Sé que hay algoritmos para conjuntos de gran canon para enfoques de Monte-Carlo. Estoy buscando algo similar para las simulaciones de BD.

0 votos

Sólo estoy pensando en voz alta. Si hasta ahora has trabajado con un área cuadrada o rectangular, quizá podrías probar con un toroide: una molécula que atravesara el borde derecho reaparecería en el borde izquierdo. Lo mismo ocurre con los bordes superior e inferior. Entonces podrías recortar un rectángulo más pequeño de la superficie del toro, y obtendrías un número variable de partículas.

7voto

LonelyProf Puntos 171

La introducción de la creación y aniquilación de partículas en la dinámica browniana implicará cuestiones similares a las de la dinámica molecular. Se pueden añadir los movimientos estándar del gran canon de Monte Carlo (GCMC) a su esquema dinámico. El peligro práctico es que, habiendo aceptado un movimiento, las consecuencias para la dinámica serán a veces dramáticas: fuerzas muy grandes entre las partículas, y por tanto desplazamientos muy grandes. Para evitar esto, se han inventado esquemas para insertar partículas gradualmente, o incluso introducir un parámetro continuo en el Lagrangiano que controla la aparición de la partícula extra. En Agarwal et al, Nuevo J Phys , 17 , 083042 (2015) que es de libre acceso, revisan algunos de estos métodos. Sin embargo, como señalan, estos enfoques no se han utilizado de forma generalizada y son algo engorrosos. Creo que lo mismo ocurre con el enfoque propuesto por Agarwal. Yo no recomendaría seguir ese camino, pero al menos puedes considerar estas alternativas, con una adaptación adecuada de dinámica molecular a la dinámica browniana.

Aquí hay otra posibilidad. Utilizar Monte Carlo en lugar de la dinámica browniana. La escala de tiempo es algo ficticia, pero las partículas seguirán difundiéndose por de manera realista, y podría decirse que estás abandonando la dinámica completamente realista de todos modos al añadir movimientos GCMC que permiten que las partículas aparezcan y desaparezcan.

Hay una solución intermedia. Dinámica browniana sin inercia utiliza un algoritmo $$ \vec{r}(t+\delta t) = \vec{r} + \frac{D}{kT} \vec{f}\delta t + \sqrt{2D\delta t}\vec{G} $$ donde $D$ es el coeficiente de difusión, $T$ la temperatura, $\vec{f}$ la fuerza que actúa sobre la(s) partícula(s), y $\vec{G}$ un conjunto de números aleatorios gaussianos normalizados e independientes. Se puede demostrar que esto es (casi) equivalente al "Smart Monte Carlo" (SMC), volviendo a un viejo artículo de Rossky et al, J Chem Phys , 69 , 4628 (1978) . La diferencia esencial es que el SMR aplica una etapa de aceptación/rechazo al paso anterior, basada en una fórmula ligeramente complicada que implica las fuerzas al principio y al final. Esto garantiza el muestreo del conjunto correcto, y puede ser la forma de salvar su simulación de las consecuencias de grandes fuerzas si acaba de añadir/eliminar partículas mediante el procedimiento GCMC habitual. Depende de si está preparado para rechazar un (pequeño, $\mathcal{O}(\delta t^2)$ ) fracción de pasos de avance.

Este enfoque también puede relacionarse con el "Monte Carlo híbrido" (HMC), Duane et al, Phys Lett B , 195 , 216 (1987) . Simplemente sustituya $D=(kT/2m)\delta t$ en la ecuación anterior para dar $$ \vec{r}(t+\delta t) = \vec{r} + \tfrac{1}{2}(\delta t^2/m) \vec{f} + \sqrt{\frac{kT}{m}}\delta t\vec{G} $$ Esto tiene la forma de un algoritmo estándar (velocidad Verlet) para la dinámica molecular, donde el último término corresponde a la elección de velocidades aleatorias al inicio de cada paso, a partir de la distribución Maxwell-Boltzmann. En HMC, también se escribe el resto del algoritmo de velocidad Verlet, para hacer avanzar las velocidades, calcula el cambio de energía cinética en el paso, sumarlo al cambio en la energía potencial, y utilizar la resultante total energía en un criterio de aceptación/rechazo de Metrópolis. A continuación, las velocidades se desechan y se generan de nuevo al comienzo del siguiente paso. Esto resulta ser exactamente lo mismo que el SMC, pero más sencillo de escribir. La razón de la pequeña fracción de movimientos rechazados, $\mathcal{O}(\delta t^2)$ , es más evidente: la energía total se conserva en este orden.

Si su dinámica browniana es del tipo no inercial, esta podría ser la enfoque que recomendaría:

  1. Insertar/eliminar partículas a intervalos (entre los pasos de avance del tiempo) utilizando la función método estándar de Monte Carlo gran canónico
  2. Incluir una decisión de aceptación/rechazo de Metrópolis en los pasos de avance del tiempo, como se ha descrito anteriormente, lo que significa que se rechazará una pequeña fracción de movimientos, pero garantizando que se muestreará el conjunto correcto.

Tengo una sugerencia más sencilla, que puede ser preferible o no dependiendo de tus circunstancias. Siga con su dinámica browniana actual, pero haga su simulación tridimensional, en lugar de bidimensional, con una superficie plana que atraiga sus partículas de grano grueso. El resto del sistema sería un gas de baja densidad que actuaría como depósito de partículas. Mucho dependerá de que puedas ajustar los parámetros para que el estado termodinámicamente estable de tu sistema sea un monocapa adsorbida en la superficie. Si esto es posible, debería ver las partículas que llegan y salen de la superficie en un manera físicamente razonable.

0 votos

Muchas gracias por tomarse el tiempo de responder a mi pregunta. Decidí hacer una simulación en BD para tener fácil acceso a la posición de cada partícula. Con la BD también es posible tener en cuenta la flexibilidad de la interfaz de unión de forma natural. Tu última sugerencia podría funcionar, pero creo que la implementación (cambios en mi código fuente) llevará mucho tiempo. Sin embargo, has mencionado algunas cosas interesantes y las reviso una por una.

2voto

sven Puntos 361

Su pregunta es bastante amplia. Así que mi respuesta va a ser bastante amplia.

Algunas de las cosas habituales de las que hay que preocuparse en los cálculos de Monte-Carlo son las siguientes. Pero hay más.

  • ¿Ha registrado cuidadosamente las hipótesis que utilizará para realizar sus cálculos? Quizá cosas como temperatura constante, ausencia de flujo de fluido, desprecio de la gravedad, etc. Deberías buscar opciones que afecten a la forma de hacer los cálculos, en lugar de detalles triviales que no supongan ninguna diferencia.
  • ¿Ha prestado la debida atención a las habituales cuestiones mundanas de calidad y corrección del software? Yada yada, nombres de variables útiles, programa estructurado, pruebas básicas, al menos una documentación mínima del comportamiento del programa, facilidad de entrada, disposición sensata de la salida, etc.
  • ¿Ha normalizado correctamente su cálculo? Puede que tengas 1 millón de partículas en tu cálculo, pero hay muchas más moléculas implicadas en un experimento real. ¿Tienes una forma razonable de escalar eso? Esto se aplica a cada aspecto de tu cálculo. ¿Cómo fijas la temperatura del material de trabajo? ¿Cómo fijas la densidad? ¿Cómo escalar los cálculos? Y así sucesivamente.
  • ¿Ha conservado las cantidades que debe conservar? Quieres cambiar el número de partículas. ¿Coincide con el proceso físico de tu experimento? Por ejemplo, las partículas que pasan por el borde de tu experimento. O puede que tengas un lugar en el que inyectas partículas. Tal vez usted necesita preocuparse por la energía o la masa total o la relación de tipo de partícula.
  • ¿Ha comprendido cómo cambian realmente las cosas que deberían cambiar? Así que inyectas nuevas partículas y las ves pasar por un movimiento browniano. ¿Cambia eso las condiciones locales de alguna manera importante? Densidad, viscosidad, temperatura, etc.
  • ¿Tienes cuentas que tengan sentido? Tal vez esté buscando la densidad del número de partículas en varios lugares. ¿Estás contando las cosas correctas, y las cuentas razonablemente?
  • ¿Tiene las condiciones del sistema en valores razonables? Así que las partículas se mueven en movimiento browniano. ¿Tienes valores razonables para la velocidad a la que se mueven? ¿La distancia media que recorren antes de colisionar? ¿El ángulo en el que se mueven después? ¿El cambio de energía en una colisión?
  • ¿Tiene algún tipo de fuente de datos autorizada para la validación? Algunas fuentes que se utilizan con frecuencia son los experimentos, los cálculos de algún otro programa que se sabe que es preciso, o los cálculos manuales que son de precisión conocida.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X