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§
Sourcefn advance(
&mut self,
repr: &mut dyn PhaseSpaceRepr,
solver: &dyn PoissonSolver,
advector: &dyn Advector,
dt: f64,
)
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.
Sourcefn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64
fn max_dt(&self, repr: &dyn PhaseSpaceRepr, cfl_factor: f64) -> f64
Compute the maximum stable Δt given current state and CFL constraints.