- #1
m4r35n357
- 658
- 148
I have been attempting to modify a symplectic integrator that I wrote a while ago. It works very well for "separable" hamiltonians, but I want to use it to simulate a double pendulum.
I am using the Stormer-Verlet equation (3) from this source. From the article "Even order 2 follows from its symmetry."
In the case of a separable hamiltonian, ##\nabla q## is a function only of ##q##, and similarly for ##p##, so that the equations form a symmetrical sequence of three function calls.
For a non-separable hamiltonian, this is no longer true, and it is necessary to use the full equations, but these are no longer symmetrical (the first two are implicit whilst the last is explicit).
Anyhow, I have implemented the full non symmetrical equations, and while they are "symplectic" in the sense that there is no systematic "energy creep" in the output, they are only first order WRT step size, and my attempts to increase the order via composition are ineffective (the composition is still first order).
So, my question is this: is it possible to compose these implicit equations, or does their asymmetry prevent this? In other words, have I just made an error somewhere in my implementation?
I am using the Stormer-Verlet equation (3) from this source. From the article "Even order 2 follows from its symmetry."
In the case of a separable hamiltonian, ##\nabla q## is a function only of ##q##, and similarly for ##p##, so that the equations form a symmetrical sequence of three function calls.
For a non-separable hamiltonian, this is no longer true, and it is necessary to use the full equations, but these are no longer symmetrical (the first two are implicit whilst the last is explicit).
Anyhow, I have implemented the full non symmetrical equations, and while they are "symplectic" in the sense that there is no systematic "energy creep" in the output, they are only first order WRT step size, and my attempts to increase the order via composition are ineffective (the composition is still first order).
So, my question is this: is it possible to compose these implicit equations, or does their asymmetry prevent this? In other words, have I just made an error somewhere in my implementation?