pub trait Advector {
// Required methods
fn step(
&self,
repr: &mut dyn PhaseSpaceRepr,
acceleration: &AccelerationField,
dt: f64,
);
fn drift(&self, repr: &mut dyn PhaseSpaceRepr, dt: f64);
fn kick(
&self,
repr: &mut dyn PhaseSpaceRepr,
acceleration: &AccelerationField,
dt: f64,
);
}Expand description
Trait for all phase-space advection schemes.
Required Methods§
Sourcefn step(
&self,
repr: &mut dyn PhaseSpaceRepr,
acceleration: &AccelerationField,
dt: f64,
)
fn step( &self, repr: &mut dyn PhaseSpaceRepr, acceleration: &AccelerationField, dt: f64, )
Advance f in phase space by Δt using the given acceleration. Returns nothing — mutates the representation in place.
Sourcefn drift(&self, repr: &mut dyn PhaseSpaceRepr, dt: f64)
fn drift(&self, repr: &mut dyn PhaseSpaceRepr, dt: f64)
Spatial-only drift step (free streaming): advance f by v·Δt in position at constant v.
Sourcefn kick(
&self,
repr: &mut dyn PhaseSpaceRepr,
acceleration: &AccelerationField,
dt: f64,
)
fn kick( &self, repr: &mut dyn PhaseSpaceRepr, acceleration: &AccelerationField, dt: f64, )
Velocity-only kick step: advance f by g·Δt in velocity at constant x.