Skip to main content

ks_strang_step

Function ks_strang_step 

Source
pub fn ks_strang_step<R, A>(
    position: [R; 3],
    velocity: [R; 3],
    gm: R,
    dt: R,
    accel: A,
) -> Result<([R; 3], [R; 3]), PhysicsError>
Expand description

One Strang-split perturbed step (the B1 between-step perturbation hook): half-kick the velocity with the caller-supplied non-conformal Cartesian acceleration, drift exactly along the KS conformal core for dt, then half-kick again. The perturbation is never expressed inside the KS algebra (FS-2). 2nd-order accurate; the exact core is untouched when accel returns zero.

accel(position, velocity) -> acceleration is the non-conformal force per unit mass (e.g. the ④ aero force + J2).

§Errors

As KsPropagator::from_state / KsPropagator::propagate (the half-kicked state must stay bound).