Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Universal-variable Kepler propagation

Owner import path

jaxstro.numerics.kepler

Purpose

Propagate one relative Cartesian two-body state with one nondimensional universal-variable solve across elliptic, parabolic-limit, and hyperbolic conics.

Public records and callables

universal_kepler_step(...) returns UniversalKeplerResult. The exhaustive KEPLER_STATUS_CONVERGED, KEPLER_STATUS_INVALID_INPUT, KEPLER_STATUS_NONFINITE_ITERATION, KEPLER_STATUS_SINGULAR_RADIUS, and KEPLER_STATUS_MAX_STEPS identifiers.

Shape and dtype expectations

Position and velocity are length-three floating arrays. mu and dt are scalars; their units must be consistent with the Cartesian state.

JAX transforms and AD classification

jit and vmap are supported. JVP and VJP evidence is smooth-pathwise only while shape, iteration budget, status path, Stumpff branch, and conic regime stay fixed. This is not an implicit-root derivative.

Failure behavior

Invalid inputs, non-finite iteration, singular radius, and exhausted steps have typed statuses. A failed result retains the original Cartesian state.

See the generated Scientific contract registry entry and the owner tests in tests/unit/test_kepler.py and tests/validation/test_kepler_gradients.py.

Canonical import example

from jaxstro.numerics.kepler import universal_kepler_step