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
59
60
61
62
63
64
65
//! Earth gravity-source recipes.
//!
//! Each function returns a fully-populated [`GravitySourceEntry`] ready
//! for [`SimulationBuilder::add_source`](crate::SimulationBuilder::add_source).
//!
//! ```
//! use astrodyn::recipes::earth;
//! let earth = earth::point_mass();
//! assert_eq!(earth.source.mu, 3.986_004_415e14);
//! ```
//!
//! Recipes here are JEOD-source-independent — they describe Earth via
//! constants and binary fixtures the Rust port owns. The [`ggm05c`],
//! [`ggm02c`], and [`gemt1`] high-fidelity spherical-harmonics variants
//! load coefficient blobs that are embedded into the published crate
//! (via `include_bytes!` in `astrodyn_gravity`), so they work without a
//! JEOD checkout.
use crateGravitySourceEntry;
use crateEARTH;
use fixtures;
/// Earth as a point-mass central body (no spherical harmonics).
///
/// Includes the JEOD `EarthRNP` rotation model so the simulation
/// updates `t_inertial_pfix` from time each step.
/// Earth with the GGM05C spherical-harmonics gravity field
/// (degree=order=360).
///
/// JEOD-equivalent of `models/environment/gravity/data/src/earth_GGM05C.cc`.
/// Coefficient bytes are embedded at compile time via `include_bytes!`,
/// so this recipe works without a JEOD checkout and from the published
/// `.crate`.
/// Earth with the GGM02C spherical-harmonics gravity field
/// (degree=order=200).
///
/// JEOD-equivalent of `models/environment/gravity/data/src/earth_GGM02C.cc`.
/// Earth with the GEM-T1 spherical-harmonics gravity field
/// (degree=order=36).
///
/// JEOD-equivalent of `models/environment/gravity/data/src/earth_GEMT1.cc`.
/// Used by JEOD's `SIM_7_time_reversal` verification scenario.
/// Earth as a point-mass third-body perturbation source at the given
/// inertial position. No rotation model.