Newer
Older
This module contains 2 integrators, which is at least
of second consistency order and approrimately preserves
from collections.abc import Callable
import numpy as np
def verlet(F: Callable, q0: np.ndarray, p0: np.ndarray, m: np.ndarray, dt: float):
"""
Velocity-Verlet integrator for one time step
"""
p = p0
q = q0
p = p + 1 / 2 * F(q) * dt
q = q + 1 / m * p * dt
p = p + 1 / 2 * F(q) * dt
return p, q