Source code for ssapy_toolkit.Accelerations.accel_uniform_earth

# ssapy_toolkit/Accelerations/accel_uniform_earth.py

import numpy as np
from ..constants import EARTH_RADIUS, EARTH_MU


[docs] def accel_uniform_earth(r): """ Piecewise gravity model: - Outside Earth: point-mass gravity ~ -mu r / |r|^3 - Inside Earth (uniform-density sphere): linear gravity ~ -mu r / R^3 Parameters ---------- r : array_like, shape (3,) Position vector (m). Returns ------- a : ndarray, shape (3,) Acceleration (m/s^2). """ x, y, z = r r_mag = np.sqrt(x**2 + y**2 + z**2) if r_mag < EARTH_RADIUS: factor = -EARTH_MU / (EARTH_RADIUS**3) else: factor = -EARTH_MU / (r_mag**3) return np.array([factor * x, factor * y, factor * z])