Orbis.Propagator (Orbis v0.9.0)

Copy Markdown View Source

High-precision numerical orbit propagation.

Supports high-order adaptive numerical integration (DP54) of orbital states using various force models via Rust NIF.

Summary

Functions

Adaptive step propagation using Dormand-Prince 5(4) via Rust NIF. Returns the state at exactly t_end.

Legacy RK4 fixed-step implementation in pure Elixir. Maintained for baselines.

Types

force_model()

@type force_model() :: (vec3(), vec3() -> vec3())

state()

@type state() :: {r :: vec3(), v :: vec3()}

vec3()

@type vec3() :: {float(), float(), float()}

Functions

propagate(arg, dt, opts \\ [])

@spec propagate(state(), float(), keyword()) :: {:ok, state()} | {:error, any()}

Adaptive step propagation using Dormand-Prince 5(4) via Rust NIF. Returns the state at exactly t_end.

Options

  • :tolerance — Integration tolerance (default: 1.0e-12)
  • :forces — List of active force models: ["twobody", "j2"] (default: ["twobody"])

propagate_rk4(arg, dt, force_funs)

@spec propagate_rk4(state(), float(), [force_model()]) :: state()

Legacy RK4 fixed-step implementation in pure Elixir. Maintained for baselines.