Skip to main content

TimeIntegrator

Trait TimeIntegrator 

Source
pub trait TimeIntegrator {
    // Required methods
    fn advance(
        &mut self,
        repr: &mut dyn PhaseSpaceRepr,
        solver: &dyn PoissonSolver,
        advector: &dyn Advector,
        dt: f64,
    );
    fn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64;
}
Expand description

Trait for all time integration / operator splitting strategies.

Required Methods§

Source

fn advance( &mut self, repr: &mut dyn PhaseSpaceRepr, solver: &dyn PoissonSolver, advector: &dyn Advector, dt: f64, )

Advance the simulation by one timestep Δt. Calls advector drift/kick sub-steps in the correct order for this splitting scheme.

Source

fn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64

Compute the maximum stable Δt given current state and CFL constraints.

Implementors§