Articulo de referencia

El algoritmo de Beeman

El algoritmo de Beeman es un método para integrar numéricamente ecuaciones diferenciales ordinarias de segundo orden, más específicamente las ecuaciones de movimiento de Newton....

El algoritmo de Beeman es un método para integrar numéricamente ecuaciones diferenciales ordinarias de segundo orden, más específicamente las ecuaciones de movimiento de Newton.incógnita¨=A(incógnita){\displaystyle {\ddot {x}}=A(x)}Fue diseñado para permitir un gran número de partículas en simulaciones de dinámica molecular. Existe una variante directa o explícita y una implícita del método. La variante directa fue publicada por Schofield en 1973 [ 1 ] como una comunicación personal de Beeman. Esto es lo que comúnmente se conoce como el método de Beeman . Es una variante del método de integración de Verlet . Produce posiciones idénticas, pero utiliza una fórmula diferente para las velocidades. Beeman publicó en 1976 [ 2 ] una clase de métodos implícitos (predictor-corrector) de múltiples pasos, donde el método de Beeman es la variante directa del método de tercer orden en esta clase.

Ecuación

La fórmula utilizada para calcular las posiciones en el tiempot+Δt{\displaystyle t+\Delta t}En el esquema completo predictor-corrector [ 2 ] es:

  • Predecirincógnita(t+Δt){\displaystyle x(t+\Delta t)}a partir de datos en ocasionest{\displaystyle t}ytΔt{\displaystyle t-\Delta t}incógnita(t+Δt)=incógnita(t)+v(t)Δt+16[4a(t)a(tΔt)]Δt2+O(Δt4).{\displaystyle x(t+\Delta t)=x(t)+v(t)\Delta t+{\frac {1}{6}}{\bigl [}4a(t)-a(t-\Delta t){\bigr ]}\Delta t^{2}+O(\Delta t^{4}).}
  • Posición y velocidades correctas en el momentot+Δt{\displaystyle t+\Delta t}a partir de datos en ocasionest{\displaystyle t}yt+Δt{\displaystyle t+\Delta t}mediante la evaluación repetida de la ecuación diferencial para obtener la aceleracióna(t+Δt){\displaystyle a(t+\Delta t)}y de las ecuaciones del sistema implícitoincógnita(t+Δt)=incógnita(t)+v(t)Δt+16[a(t+Δt)+2a(t)]Δt2+O(Δt4);v(t+Δt)Δt=incógnita(t+Δt)incógnita(t)+16[2a(t+Δt)+a(t)]Δt2+O(Δt4);{\displaystyle {\begin{aligned}x(t+\Delta t)&=x(t)+v(t)\Delta t+{\frac {1}{6}}{\bigl [}a(t+\Delta t)+2a(t){\bigr ]}\Delta t^{2}+O(\Delta t^{4});\\[1ex]v(t+\Delta t)\Delta t&=x(t+\Delta t)-x(t)+{\frac {1}{6}}{\bigl [}2a(t+\Delta t)+a(t){\bigr ]}\Delta t^{2}+O(\Delta t^{4});\end{aligned}}}En las pruebas se comprobó que este paso corrector debe repetirse como máximo dos veces. Los valores de la derecha son los valores anteriores de las últimas iteraciones, lo que da como resultado los nuevos valores de la izquierda.

Utilizando únicamente la fórmula predictora y el corrector para las velocidades se obtiene un método directo o explícito [ 1 ] que es una variante del método de integración de Verlet: [ 3 ]incógnita(t+Δt)=incógnita(t)+v(t)Δt+16[4a(t)a(tΔt)]Δt2+O(Δt4)v(t+Δt)=v(t)+16[2a(t+Δt)+5a(t)a(tΔt)]Δt+O(Δt3);{\displaystyle {\begin{aligned}x(t+\Delta t)&=x(t)+v(t)\Delta t+{\frac {1}{6}}{\bigl [}4a(t)-a(t-\Delta t){\bigr ]}\Delta t^{2}+O(\Delta t^{4})\\v(t+\Delta t)&=v(t)+{\frac {1}{6}}{\bigl [}2a(t+\Delta t)+5a(t)-a(t-\Delta t){\bigr ]}\Delta t+O(\Delta t^{3});\end{aligned}}}

Esta es la variante que se suele entender como el método de Beeman .

Beeman [ 2 ] también propuso reemplazar alternativamente la actualización de velocidad en la última ecuación por el método de Adams-Moulton de segundo orden :

v(t+Δt)=v(t)+112[5a(t+Δt)+8a(t)a(tΔt)]Δt+O(Δt3){\displaystyle v(t+\Delta t)=v(t)+{\frac {1}{12}}{\bigl [}5a(t+\Delta t)+8a(t)-a(t-\Delta t){\bigr ]}\Delta t+O(\Delta t^{3})}

dónde

  • t{\displaystyle t}es el tiempo presente (es decir, variable independiente)
  • Δt{\displaystyle \Delta t}es el tamaño del paso de tiempo
  • incógnita(t){\displaystyle x(t)}es la posición en el tiempo t
  • v(t){\displaystyle v(t)}es la velocidad en el instante t
  • a(t){\displaystyle a(t)}es la aceleración en el instante t, calculada como una función deincógnita(t){\displaystyle x(t)}
  • El último término es el término de error, utilizando la notación de la gran O.

Modificaciones predictor-corrector

En sistemas donde las fuerzas son función de la velocidad además de la posición, las ecuaciones anteriores deben modificarse a una forma predictor-corrector en la que las velocidades en el tiempot+Δt{\displaystyle t+\Delta t}Se predicen las velocidades y se calculan las fuerzas, antes de producir una forma corregida de las mismas.

Un ejemplo es:

incógnita(t+Δt)=incógnita(t)+v(t)Δt+23a(t)Δt216a(tΔt)Δt2+O(Δt4).{\displaystyle x(t+\Delta t)=x(t)+v(t)\Delta t+{\frac {2}{3}}a(t)\Delta t^{2}-{\frac {1}{6}}a(t-\Delta t)\Delta t^{2}+O(\Delta t^{4}).}

Las velocidades en el tiempot=t+Δt{\displaystyle t=t+\Delta t}Luego se calculan (predicen) a partir de las posiciones.

v(t+Δt) (previsto)=v(t)+32a(t)Δt12a(tΔt)Δt+O(Δt3).{\displaystyle v(t+\Delta t)~{\text{(predicho)}}=v(t)+{\frac {3}{2}}a(t)\Delta t-{\frac {1}{2}}a(t-\Delta t)\Delta t+O(\Delta t^{3}).}

Las aceleracionesa(t+Δt){\displaystyle a(t+\Delta t)}en ese momentot=t+Δt{\displaystyle t=t+\Delta t}Luego se calculan a partir de las posiciones y las velocidades previstas, y se corrigen las velocidades.

v(t+Δt) (corregido)=v(t)+512a(t+Δt)Δt+23a(t)Δt112a(tΔt)Δt+O(Δt3).{\displaystyle v(t+\Delta t)~{\text{(corregido)}}=v(t)+{\frac {5}{12}}a(t+\Delta t)\Delta t+{\frac {2}{3}}a(t)\Delta t-{\frac {1}{12}}a(t-\Delta t)\Delta t+O(\Delta t^{3}).}

Término de error

Como se muestra arriba, el término de error local esO(Δt4){\displaystyle O(\Delta t^{4})}para el puesto yO(Δt3){\displaystyle O(\Delta t^{3})}velocidad, lo que resulta en un error global deO(Δt3){\displaystyle O(\Delta t^{3})}En comparación, Verlet esO(Δt2){\displaystyle O(\Delta t^{2})}para la posición y la velocidad. A cambio de una mayor precisión, el algoritmo de Beeman es moderadamente más costoso en términos computacionales.

Requisitos de memoria

La simulación debe realizar un seguimiento de la posición, la velocidad, la aceleración y los vectores de aceleración anteriores por partícula (aunque son posibles algunas soluciones ingeniosas para almacenar el vector de aceleración anterior), manteniendo sus requisitos de memoria a la par con el método de Verlet de velocidad y siendo ligeramente más costoso que el método de Verlet original.

Referencias

  1. 1 2 Schofield, P. (1973), "Estudios de simulación por computadora del estado líquido", Computer Physics Communications , 5 (1): 17– 23, Bibcode : 1973CoPhC...5...17S , doi : 10.1016/0010-4655(73)90004-0
  2. 1 2 3 Beeman, David (1976), "Algunos métodos de pasos múltiples para su uso en cálculos de dinámica molecular", Journal of Computational Physics , vol. 20, n.º 2, págs. 130–139 , Bibcode : 1976JCoPh..20..130B , doi : 10.1016/0021-9991(76)90059-0   
  3. Levitt, Michael; Meirovitch, Hagai; Huber, R. (1983), "Integración de las ecuaciones de movimiento", Journal of Molecular Biology , 168 (3): 617– 620, doi : 10.1016/S0022-2836(83)80305-2 , PMID 6193281 
  • Sadus, Richard J. (2002), Teoría molecular de fluidos: teoría, algoritmos y orientación a objetos , Elsevier, pág.  231, ISBN 0-444-51082-6