pub trait HamiltonianSystem<F: IntegrateFloat> {
// Required methods
fn ndof(&self) -> usize;
fn dq_dt(
&self,
t: F,
q: &Array1<F>,
p: &Array1<F>,
) -> IntegrateResult<Array1<F>>;
fn dp_dt(
&self,
t: F,
q: &Array1<F>,
p: &Array1<F>,
) -> IntegrateResult<Array1<F>>;
// Provided method
fn hamiltonian(&self, _t: F, _q: &Array1<F>, _p: &Array1<F>) -> Option<F> { ... }
}Expand description
Trait representing a Hamiltonian system for symplectic integration.
The system is described by Hamilton’s equations: dq/dt = dH/dp dp/dt = -dH/dq
Required Methods§
Provided Methods§
Sourcefn hamiltonian(&self, _t: F, _q: &Array1<F>, _p: &Array1<F>) -> Option<F>
fn hamiltonian(&self, _t: F, _q: &Array1<F>, _p: &Array1<F>) -> Option<F>
Optionally compute the Hamiltonian H(t, q, p) for energy monitoring.
Returns None if no closed-form Hamiltonian is available.