Class OrbitalMechanics

java.lang.Object
org.episteme.natural.physics.astronomy.mechanics.OrbitalMechanics

public class OrbitalMechanics extends Object
Orbital mechanics calculations.

Provides Kepler's laws, vis-viva equation, and orbital maneuvers. All methods use type-safe Quantity measurements and arbitrary precision Real numbers.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • orbitalPeriod

      public static Quantity<Time> orbitalPeriod(Real semiMajorAxis, Real mu)
      Kepler's Third Law: Orbital period from semi-major axis. T = 2π√(a³/μ)
      Parameters:
      semiMajorAxis - orbital semi-major axis in meters
      mu - gravitational parameter (m³/s²)
      Returns:
      orbital period
    • orbitalPeriodEarth

      public static Quantity<Time> orbitalPeriodEarth(Real semiMajorAxis)
      Orbital period for Earth-orbiting satellite.
      Parameters:
      semiMajorAxis - in meters
      Returns:
      period
    • orbitalVelocity

      public static Quantity<Velocity> orbitalVelocity(Real r, Real semiMajorAxis, Real mu)
      Vis-viva equation: Orbital velocity at distance r. v = √[μ(2/r - 1/a)]
      Parameters:
      r - current distance from central body (m)
      semiMajorAxis - semi-major axis (m)
      mu - gravitational parameter
      Returns:
      orbital velocity
    • circularVelocity

      public static Quantity<Velocity> circularVelocity(Real radius, Real mu)
      Circular orbit velocity. v = √(μ/r)
    • escapeVelocity

      public static Quantity<Velocity> escapeVelocity(Real radius, Real mu)
      Escape velocity from distance r. v_esc = √(2μ/r)
    • hohmannDeltaV

      public static Quantity<Velocity> hohmannDeltaV(Real r1, Real r2, Real mu)
      Hohmann transfer delta-v (from circular to circular).
      Parameters:
      r1 - initial orbit radius (m)
      r2 - final orbit radius (m)
      mu - gravitational parameter
      Returns:
      total delta-v required
    • hohmannTransferTime

      public static Quantity<Time> hohmannTransferTime(Real r1, Real r2, Real mu)
      Hohmann transfer time (half the period of transfer orbit).
    • specificOrbitalEnergy

      public static Quantity<?> specificOrbitalEnergy(Real semiMajorAxis, Real mu)
      Specific orbital energy. ε = -μ/(2a)
    • altitudeFromPeriod

      public static Quantity<Length> altitudeFromPeriod(Real periodSeconds)
      Calculates orbital altitude from period (for Earth).
      Parameters:
      periodSeconds - orbital period in seconds
      Returns:
      altitude above Earth surface in meters
    • geostationaryAltitude

      public static Quantity<Length> geostationaryAltitude()
      Geostationary orbit altitude (period = 24 hours).
      Returns:
      altitude above Earth surface
    • hillSphereRadius

      public static Quantity<Length> hillSphereRadius(Real semiMajorAxis, Real smallerMass, Real largerMass)
      Hill sphere radius.
    • synodicPeriod

      public static Quantity<Time> synodicPeriod(Real period1, Real period2)
      Synodic period between two orbiting bodies. 1/T_syn = |1/T1 - 1/T2|
    • solveLambert

      public static OrbitalMechanics.LambertResult solveLambert(Real[] r1, Real[] r2, Real dt, Real mu, boolean prograde)