//! The `Advector` trait for the 6D transport step.
//! Advances f by one sub-step using the given force field.
use PhaseSpaceRepr;
use AccelerationField;
/// Trait for all phase-space advection schemes.
///
/// # Examples
///
/// ```no_run
/// use caustic::{Advector, SemiLagrangian, PhaseSpaceRepr};
///
/// let advector = SemiLagrangian::new();
/// // In a typical splitting step:
/// // advector.drift(repr, dt); // spatial half-step
/// // advector.kick(repr, &accel, dt); // velocity full-step
/// // advector.drift(repr, dt); // spatial half-step
/// ```