Simulación de electrostática en pasos de tiempo discretos

Estoy tratando de simular el movimiento de varias partículas cargadas que pueden moverse libremente pero tienen fuerzas repulsivas entre sí. Estos pueden ser 10 electrones moviéndose causando una fuerza newtoniana instantánea en todas las demás partículas (sin tener en cuenta los efectos relativistas).

Quiero ejecutar la simulación en pasos de tiempo discretos (es decir, cada 10 ms). ¿Hay alguna forma de encontrar la posición y la velocidad de cada partícula después de cada paso de tiempo?

Originalmente, pensé que solo calcularía cada fuerza al comienzo del paso de tiempo y luego usaría estas fuerzas para calcular las posiciones y velocidades para el siguiente paso de tiempo. El problema es que todas las partículas se han movido durante el paso de tiempo, por lo que mi suposición de una fuerza constante que actúa sobre la partícula durante el paso de tiempo será incorrecta.

Podría hacer que los pasos de tiempo sean realmente pequeños para que el desplazamiento de las otras partículas sea casi cero para aproximarse a una fuerza estacionaria. Esto requeriría más cálculos y aún induciría pequeños errores.

¿Estoy atascado con tener que aproximar esto con error? ¿Hay alguna manera de calcular e integral sobre cada paso de tiempo para encontrar las siguientes posiciones y velocidades?

Si no encuentra la respuesta aquí, puede intentar preguntar en: scicomp.stackexchange.com

Respuestas (1)

Eso suena bien.

Siempre hay errores en la integración temporal numérica. Lo que está describiendo es un esquema de integración de tiempo explícito, donde las cantidades se calculan en el paso de tiempo actual a partir de las cantidades del paso de tiempo anterior. Dependiendo del esquema de integración de tiempo que utilice, el error puede reducirse. Por ejemplo, el cuarto orden de Runge Kutta tiene un error de cuarto orden, lo que significa que la solución es precisa hasta la cuarta potencia de la expansión de Taylor de la ecuación diferencial. Parte del error, como dijiste, proviene del uso del paso de tiempo anterior para calcular el actual.

Hay métodos implícitos que usan el paso de tiempo "actual", como Backward Euler, sin embargo, a menudo son menos precisos que los métodos explícitos y más difíciles de implementar, por lo que si su solución parece estable, le recomiendo que no use esquemas implícitos.