diffrax icon indicating copy to clipboard operation
diffrax copied to clipboard

Add the Störmer-Verlet method + symplectic test changes

Open packquickly opened this issue 2 years ago • 0 comments

Changes:

  • Add the Störmer-Verlet method
  • Add all_symplectic_solvers to test/helpers.
  • Change test_semi_implicit_euler to a parameterised test test_symplectic_solvers which includes Störmer-Verlet
  • Add an order test test_symplectic_ode_order similar to test_ode_order using a simple harmonic oscillator as the base problem instead of the linear equation in test_ode_order.

Störmer-Verlet is implemented in the general partitioned form updating p and q with generic vector fields f(p) and g(q) rather than the more common version which assumes g(q) = q. This is consistent with the Diffrax implementation of SemiImplicitEuler.

packquickly avatar Aug 31 '23 11:08 packquickly