1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Tier 3 propagation helpers shared by `recipes` and Tier 3 tests.
//!
//! Phase 8 of #101 hoisted these utilities out of
//! `crates/astrodyn_runner/tests/sim_test_helpers/mod.rs` so that
//! archetype-B tests (those with bespoke per-step measurement loops:
//! periapsis detection, energy conservation, integrator agreement,
//! attach/detach event scheduling, etc.) can consume them through the
//! same `recipes::*` namespace as their setup.
//!
//! These are **propagation utilities** only — schema-flexible CSV
//! readers (which are reference-data plumbing, not propagation) live
//! in `astrodyn_verif_jeod::tier3_csv` (the typed Phase 7 catalogue, with
//! `dyncomp_csv` as its current entry). Tests that don't fit a
//! standard scenario but share these mid-loop bookkeeping patterns
//! reach for the corresponding submodule below.
//!
//! Submodules:
//!
//! - [`state_helpers`]: quaternion / matrix angular-error metrics, the
//! 2π-wraparound `angle_diff`, and a `state_from_elements` shortcut
//! that builds a [`TranslationalState`](crate::TranslationalState)
//! from raw Keplerian elements (handles e ≥ 1).
//! - [`energy_conservation`]: extract specific orbital energy each
//! step, accumulate `max |relative error|` against the t = 0 value.
//! - [`periapsis_detection`]: zero-crossing of radial velocity for
//! Kepler / GR perihelion-advance studies.
//! - [`integrator_agreement`]: propagate the same scenario through two
//! integrators and report the per-component divergence.
//! - [`force_torque_profiles`]: piecewise step / ramp / sinusoid input
//! shapes for force–torque response tests.
//! - [`orbinit_case`]: bundle of (orbital elements, tolerance) for
//! parametric orbital-init roundtrip suites.
//! - [`attach_detach_helpers`]: time-stamped mass-tree event schedule
//! wrapper for attach / detach tests.
//! - [`custom_csv`]: schema-flexible CSV reader for ad-hoc test
//! formats that don't yet have a dedicated typed loader in
//! `astrodyn_verif_jeod::tier3_csv`.
pub use ;
pub use read_lines;
pub use ;
pub use ;
pub use ;
pub use OrbInitCase;
pub use ;
pub use ;