Force Models¶
Force models compute accelerations applied to a spacecraft during numerical propagation. Community models cover standard perturbations; Pro models add radiation effects.
Community Force Models¶
GravitationalAcceleration¶
Central-body two-body gravity. Always present as the primary force.
ThirdBodyPerturbation¶
Third-body gravitational perturbation using Battin's numerically stable formula to avoid catastrophic cancellation when the perturbing body is distant.
AtmosphericDrag¶
Atmosphere-relative velocity with co-rotation of the central body's atmosphere.
| Property | Default | Description |
|---|---|---|
DragCoefficient (Cd) |
2.2 | Set on the Spacecraft constructor |
SectionalArea |
-- | Cross-sectional area (m2) |
SolarRadiationPressure¶
Cannonball SRP model with configurable reflectivity coefficient and continuous shadow fraction for penumbra transitions.
| Property | Default | Description |
|---|---|---|
SolarRadiationCoeff (Cr) |
1.0 | Set on the Spacecraft constructor |
GeopotentialGravitationalField¶
EGM2008 spherical harmonics up to degree 70 with geodesy-normalized Legendre functions (no Condon-Shortley phase).
| Degree | Use Case |
|---|---|
| 2 | Fast J2-only preliminary analysis |
| 10 | Good LEO production baseline |
| 20-30 | Higher-fidelity geodesy and mission analysis |
| 70 | Maximum supported EGM2008 fidelity |
Thread Safety
GeopotentialGravitationalField is not thread-safe. Create one CelestialBody with geopotential per propagation task.
Pro Force Models¶
AlbedoRadiationPressure¶
Pro
AlbedoRadiationPressure is a Pro feature.
Models sunlight reflected off a celestial body using a Lambertian sphere approximation. The acceleration is:
Where f(phi) = (pi - phi) * cos(phi) + sin(phi) is the Lambertian visibility function. Acceleration is zero on the dark side.
Configuration: Set albedo on the CelestialBody constructor, then call IncludeAlbedo() on the builder.
| Body | Bond Albedo |
|---|---|
| Earth | 0.306 |
| Moon | 0.12 |
| Venus | 0.77 |
| Mars | 0.25 |
ThermalRadiationPressure¶
Pro
ThermalRadiationPressure is a Pro feature.
Models infrared radiation emitted by a celestial body using an isotropic emitter model. Always present regardless of Sun geometry or eclipse state.
Configuration: Set thermalEffectiveTemperature (Kelvin) and thermalEmissivity on the CelestialBody constructor, then call IncludeThermalRadiation() on the builder.
| Body | T_eff (K) | Emissivity |
|---|---|---|
| Earth | 254 | 0.95 |
| Moon | 270 | 0.95 |
Atmosphere Models¶
| Model | Description |
|---|---|
IAtmosphericModel |
Common interface for density queries |
EarthStandardAtmosphere |
Low-altitude analytical Earth model |
MarsStandardAtmosphere |
Simple Mars atmospheric model |
Nrlmsise00Model |
Time-varying Earth model for drag analysis (thread-safe) |
Example¶
var earth = new CelestialBody(PlanetsAndMoons.EARTH,
new GeopotentialModelParameters("Data/SolarSystem/EGM2008_to70_TideFree", 10),
albedo: 0.306, thermalEffectiveTemperature: 254.0, thermalEmissivity: 0.95);