Non-Gravitational Forces
Not every trajectory change comes from gravity. Darksun layers drag, solar pressure, and thrust so you can model complex regimes.
Atmospheric Drag
- Density profiles come from the body configuration (
atmosphereblock exposed viaCelestialBodyRegistry). GravitationalSolver.computeAtmosphericDragevaluatesF_drag = 0.5 * ρ * v_rel^2 * C_d * A, using:ρ– interpolated density at altitude,v_rel– velocity relative to rotating atmosphere,C_d,A– spacecraft coefficients fromModelBasedAreaCalculatoror mission overrides.
- Suitable for LEO passes, aerobraking, or entry/descent simulations. Disable when operating well above atmosphere tops to save compute.
Solar Radiation Pressure (SRP)
SolarRadiationPressureServiceassumes sun-facing orientation by default. Supply attitude data to refine cross-sectional area if available.- Force magnitude follows
F_srp = (P_0 / c) * A_eff * (1 + q)where:P_0– solar flux at 1 AU scaled by distance,A_eff– effective area facing the Sun,q– reflectivity term (0 = fully absorbing, 1 = specular).
- Works in tandem with eclipse detection; SRP is suppressed automatically during umbra periods.
Thrust Modelling
Finite burns are integrated through
ThrustIntegrator, slicing each burn into four segments to approximate mass flow.PropulsionSystemServicesupplies thrust (T), specific impulse (I_sp), and dry-mass limits for the active stage.Mass flow obeys the rocket equation:
m(t) = m0 - m_dot * t m_dot = T / (Isp * g0) delta_v = integral(T / m(t) dt) = Isp * g0 * ln(m0 / m1)If a burn requests more delta-v than remaining propellant, the integrator truncates the node and surfaces a warning in the mission planner.
Tune non-gravitational terms from Settings → Simulation or via mission planner directives to match the fidelity the scenario demands.