SymplecticIntegrator

Trait SymplecticIntegrator 

Source
pub trait SymplecticIntegrator<F: IntegrateFloat> {
    // Required method
    fn step(
        &self,
        system: &dyn HamiltonianFn<F>,
        t: F,
        q: &Array1<F>,
        p: &Array1<F>,
        dt: F,
    ) -> IntegrateResult<(Array1<F>, Array1<F>)>;

    // Provided method
    fn integrate(
        &self,
        system: &dyn HamiltonianFn<F>,
        t0: F,
        tf: F,
        dt: F,
        q0: Array1<F>,
        p0: Array1<F>,
    ) -> IntegrateResult<SymplecticResult<F>> { ... }
}
Expand description

Trait for symplectic integrators

Required Methods§

Source

fn step( &self, system: &dyn HamiltonianFn<F>, t: F, q: &Array1<F>, p: &Array1<F>, dt: F, ) -> IntegrateResult<(Array1<F>, Array1<F>)>

Perform a single integration step

§Arguments
  • system - The Hamiltonian system to integrate
  • t - Current time
  • q - Current position coordinates
  • p - Current momentum coordinates
  • dt - Step size
§Returns

Updated position and momentum coordinates

Provided Methods§

Source

fn integrate( &self, system: &dyn HamiltonianFn<F>, t0: F, tf: F, dt: F, q0: Array1<F>, p0: Array1<F>, ) -> IntegrateResult<SymplecticResult<F>>

Integrate the system over a time interval

§Arguments
  • system - The Hamiltonian system to integrate
  • t0 - Initial time
  • tf - Final time
  • dt - Step size
  • q0 - Initial position coordinates
  • p0 - Initial momentum coordinates
§Returns

Integration result containing state history

Implementors§