Constants Module

The constants module provides physical constants and celestial body data for astrodynamics simulations.

This module contains fundamental physical constants and system-specific values for use in astrodynamics simulations. All constants are defined in SI units and stored as numpy float64 data types for precision and consistency in numerical computations.

The module includes: - Universal physical constants (gravitational constant) - Planetary and lunar masses - Characteristic distances for common systems - Body radii

These constants provide the foundation for various dynamical calculations including the Circular Restricted Three-Body Problem (CR3BP) and orbital mechanics problems.

Constants

Class containing physical constants for astrodynamics simulations.

class hiten.utils.constants.Constants[source]

Bases: object

Class containing physical constants for astrodynamics simulations.

G: float = np.float64(6.6743e-11)
bodies: Dict[str, Dict[str, Any]] = {'callisto': {'mass': np.float64(1.076e+23), 'radius': np.float64(2410300.0)}, 'deimos': {'mass': np.float64(1476000000000000.0), 'radius': np.float64(6200.0)}, 'earth': {'mass': np.float64(5.972e+24), 'radius': np.float64(6378137.0)}, 'europa': {'mass': np.float64(4.8e+22), 'radius': np.float64(1560800.0)}, 'ganymede': {'mass': np.float64(1.482e+23), 'radius': np.float64(2631200.0)}, 'io': {'mass': np.float64(8.932e+22), 'radius': np.float64(1821600.0)}, 'jupiter': {'mass': np.float64(1.898e+27), 'radius': np.float64(69911000.0)}, 'mars': {'mass': np.float64(6.417e+23), 'radius': np.float64(3396200.0)}, 'mercury': {'mass': np.float64(3.302e+23), 'radius': np.float64(2439700.0)}, 'moon': {'mass': np.float64(7.348e+22), 'radius': np.float64(1737400.0)}, 'neptune': {'mass': np.float64(1.024e+26), 'radius': np.float64(24622000.0)}, 'phobos': {'mass': np.float64(1.072e+16), 'radius': np.float64(11269.0)}, 'pluto': {'mass': np.float64(1.0887e+22), 'radius': np.float64(1188300.0)}, 'saturn': {'mass': np.float64(5.683e+26), 'radius': np.float64(58232000.0)}, 'sun': {'mass': np.float64(1.989e+30), 'radius': np.float64(696340000.0)}, 'titan': {'mass': np.float64(1.345e+23), 'radius': np.float64(2574700.0)}, 'triton': {'mass': np.float64(2.14e+22), 'radius': np.float64(1737400.0)}, 'uranus': {'mass': np.float64(8.681e+25), 'radius': np.float64(25362000.0)}, 'venus': {'mass': np.float64(4.867e+24), 'radius': np.float64(6051800.0)}}
orbital_distances: Dict[str, Dict[str, float]] = {'earth': {'moon': np.float64(384400000.0)}, 'jupiter': {'callisto': np.float64(1882700000.0), 'europa': np.float64(671100000.0), 'ganymede': np.float64(1070400000.0), 'io': np.float64(421700000.0)}, 'mars': {'deimos': np.float64(23460000.0), 'phobos': np.float64(9248000.0)}, 'neptune': {'triton': np.float64(354759000.0)}, 'saturn': {'titan': np.float64(1221870000.0)}, 'sun': {'earth': np.float64(149600000000.0), 'jupiter': np.float64(778500000000.0), 'mars': np.float64(227900000000.0), 'mercury': np.float64(57910000000.0), 'neptune': np.float64(4498250000000.0), 'pluto': np.float64(5906380000000.0), 'saturn': np.float64(1426700000000.0), 'uranus': np.float64(2870970000000.0), 'venus': np.float64(108200000000.0)}}
classmethod get_mass(body)[source]

Get the mass of a celestial body.

Parameters:

body (str) – Name of the celestial body

Returns:

Mass in kg

Return type:

float

classmethod get_radius(body)[source]

Get the radius of a celestial body.

Parameters:

body (str) – Name of the celestial body

Returns:

Radius in m

Return type:

float

classmethod get_orbital_distance(primary, secondary)[source]

Get the orbital distance between a primary and secondary body.

Parameters:
  • primary (str) – Name of the primary body (e.g., “sun”, “earth”)

  • secondary (str) – Name of the secondary body (e.g., “earth”, “moon”)

Returns:

Orbital distance (semi-major axis) in m

Return type:

float