Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions benchmarks/accuracyComparison/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Reference ephemerides and their manifests generated by generate_gmat_reference.py and generate_orekit_reference.py,
# and the Earth orientation kernels used by compare_with_basilisk.py
data/gmat_*.csv
data/orekit_*.csv
data/*_manifest.json
data/spice/
__pycache__/
253 changes: 253 additions & 0 deletions benchmarks/accuracyComparison/cases.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
{
"description": "Shared definition of the Basilisk vs GMAT vs Orekit accuracy-comparison cases. All quantities in SI units (m, m/s, kg, s) unless the key says otherwise. Every case is propagated in the Earth-centered inertial ICRF axes (GCRF in Orekit, EarthICRF in GMAT, J2000 of the DE430 SPICE kernels, which are ICRF-aligned, in Basilisk N); the initial states, the attitudes and the outputs are all expressed in that frame.",
"inertial_frame": "ICRF",
"epoch_utc": "2026-01-01T00:00:00.000",
"mu_m3_s2": 398600441500000.0,
"equatorial_radius_m": 6378136.3,
"earth_flattening": 0.0033528,
"gravity_coefficients_file": "data/egm96_normalized_coefficients.csv",
"spacecraft": {
"mass_kg": 1000.0,
"srp_area_m2": 10.0,
"srp_cr": 1.5,
"drag_area_m2": 10.0,
"drag_cd": 2.2
},
"srp": {
"solar_flux_w_m2": 1361.0,
"astronomical_unit_km": 149597870.693
},
"exponential_atmosphere": {
"density_at_zero_altitude_kg_m3": 2.0e-9,
"scale_height_m": 60000.0
},
"density_probe": {
"description": "Geodetic points [latitude deg, longitude deg, altitude m] at which every tool reports its own atmosphere altitude and density, so that the three exponential atmospheres are compared directly before any propagation. The points are expressed in the Earth-fixed frame, where the altitude does not depend on the epoch.",
"points_lat_lon_alt": [
[0.0, 0.0, 400000.0],
[0.0, 90.0, 200000.0],
[45.0, 30.0, 400000.0],
[45.0, 200.0, 800000.0],
[-60.0, 300.0, 300000.0],
[20.0, 150.0, 500000.0],
[80.0, 45.0, 250000.0],
[89.99, 0.0, 400000.0],
[-89.99, 0.0, 600000.0]
],
"density_rel_tolerance": 2e-5,
"altitude_tolerance_m": 1.0
},
"box": {
"size_m": [1.0, 2.0, 3.0],
"drag_cd": 2.2,
"absorption": 0.6,
"specular_reflection": 0.2,
"diffuse_reflection": 0.2
},
"duration_s": 2592000.0,
"sample_period_s": 3600.0,
"cases": {
"leo_twobody": {
"gravity": {"degree": 0, "order": 0},
"earth_rotation": false,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": false,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_zonal6": {
"gravity": {"degree": 6, "order": 0},
"earth_rotation": false,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": false,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"gto_zonal6": {
"gravity": {"degree": 6, "order": 0},
"earth_rotation": false,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": false,
"drag": false,
"r0_m": [6572319.308, 0.0, 0.0],
"v0_m_s": [0.0, 9003.3973, 4888.44588]
},
"leo_egm8x8": {
"gravity": {"degree": 8, "order": 8},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": false,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_sunmoon": {
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": ["sun", "moon"],
"srp": false,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_srp": {
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_drag": {
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": [],
"srp": false,
"drag": true,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_all": {
"gravity": {"degree": 8, "order": 8},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": ["sun", "moon"],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": true,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"gto_all": {
"gravity": {"degree": 8, "order": 8},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": ["sun", "moon"],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": false,
"r0_m": [6572319.308, 0.0, 0.0],
"v0_m_s": [0.0, 9003.3973, 4888.44588]
},
"geo_all": {
"gravity": {"degree": 8, "order": 8},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": ["sun", "moon"],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": false,
"r0_m": [42164137.0, 0.0, 0.0],
"v0_m_s": [0.0, 3074.193002, 53.660238]
},
"leo_egm70": {
"description": "EGM96 degree and order 70, rotating Earth, 7 days",
"duration_s": 604800.0,
"gravity": {"degree": 70, "order": 70},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": false,
"drag": false,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"sso_all": {
"description": "Sun-synchronous orbit at 700 km, all perturbations, spring equinox epoch",
"epoch_utc": "2026-03-20T00:00:00.000",
"gravity": {"degree": 20, "order": 20},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": ["sun", "moon"],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": true,
"r0_m": [872147.576, -503534.638, 6998976.713],
"v0_m_s": [-3755.897451, -6505.405213, 0.0]
},
"sso_drag": {
"description": "Point-mass gravity and exponential-atmosphere drag in the 700 km sun-synchronous orbit",
"epoch_utc": "2026-03-20T00:00:00.000",
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": [],
"srp": false,
"drag": true,
"r0_m": [872147.576, -503534.638, 6998976.713],
"v0_m_s": [-3755.897451, -6505.405213, 0.0]
},
"molniya_all": {
"description": "Molniya orbit, gravity, Sun and Moon, SRP, northern summer epoch",
"epoch_utc": "2026-05-20T00:00:00.000",
"gravity": {"degree": 8, "order": 8},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": ["sun", "moon"],
"srp": true,
"orekit_max_step_s": 10.0,
"drag": false,
"r0_m": [1546138.996, -2677991.296, -6175136.458],
"v0_m_s": [8678.748104, 5010.677554, 0.0]
},
"leo_box_fixed": {
"description": "Box spacecraft with a fixed inertial attitude, drag and SRP, 7 days (Orekit reference only)",
"references": ["orekit"],
"body": "box",
"attitude": {"sigma_BN": [0.1, -0.2, 0.3], "omega_BN_B_rad_s": [0.0, 0.0, 0.0]},
"duration_s": 604800.0,
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": [],
"srp": true,
"orekit_max_step_s": 2.0,
"drag": true,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"leo_box_spin": {
"description": "Box spacecraft spinning at about 1.5 deg/s, drag and SRP, 7 days (Orekit reference only)",
"references": ["orekit"],
"body": "box",
"attitude": {"sigma_BN": [0.1, -0.2, 0.3], "omega_BN_B_rad_s": [0.02, 0.01, -0.015]},
"duration_s": 604800.0,
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 0.25,
"third_bodies": [],
"srp": true,
"orekit_max_step_s": 2.0,
"drag": true,
"r0_m": [6778137.0, 0.0, 0.0],
"v0_m_s": [0.0, 4763.307887, 6009.798867]
},
"geo_box_spin": {
"description": "Box spacecraft spinning at about 1.5 deg/s in GEO, SRP only, 7 days (Orekit reference only)",
"references": ["orekit"],
"body": "box",
"attitude": {"sigma_BN": [0.1, -0.2, 0.3], "omega_BN_B_rad_s": [0.02, 0.01, -0.015]},
"duration_s": 604800.0,
"gravity": {"degree": 0, "order": 0},
"earth_rotation": true,
"basilisk_step_s": 5.0,
"third_bodies": [],
"srp": true,
"orekit_max_step_s": 2.0,
"drag": false,
"r0_m": [42164137.0, 0.0, 0.0],
"v0_m_s": [0.0, 3074.193002, 53.660238]
}
}
}
Loading
Loading