Re: Problems with NDSolve and SymplecticPartitionedRungeKutta method
- To: mathgroup at smc.vnet.net
- Subject: [mg102304] Re: Problems with NDSolve and SymplecticPartitionedRungeKutta method
- From: "marks at wolfram.com" <marks at wolfram.com>
- Date: Tue, 4 Aug 2009 04:31:08 -0400 (EDT)
- References: <h4rp91$l0g$1@smc.vnet.net>
Your differential system does not appear to arise from a separable
Hamiltonian
H(p, q) = T(p) + V(q).
This is becoming a more frequent question so I have improved the error
message
from NDSolve in the development version to reflect this:
NDSolve::sprksep:
The Hamiltonian of the differential system in the method
SymplecticPartitionedRungeKutta
does not appear to be in separable form. Try using the method
ImplicitRungeKutta with coefficients
ImplicitRungeKuttaGaussCoefficients.
If you are sure the system is indeed Hamiltonian and is not separable
the method ImplicitRungeKutta with coefficients suggested above is a good
choice yielding a symplectic integrator. It is implicit, which is the price
to pay for a more general solver. Used fixed point iteration for the
nonlinear system solver at each step with tight tolerances (near
MachinePrecision).
There are examples of how to do this in the NDSolve advanced documentation.
Mark Sofroniou
Wolfram Research