Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::gravity::j2 Namespace Reference

Functions

template<typename Scalar>
Vec3< Scalar > acceleration (const Vec3< Scalar > &r_ecef, double mu=constants::earth::mu, double J2_coeff=constants::earth::J2, double R_eq=constants::earth::R_eq)
 J2 gravitational acceleration (oblate Earth).
template<typename Scalar>
Scalar potential (const Vec3< Scalar > &r_ecef, double mu=constants::earth::mu, double J2_coeff=constants::earth::J2, double R_eq=constants::earth::R_eq)
 J2 gravitational potential.

Function Documentation

◆ acceleration()

template<typename Scalar>
Vec3< Scalar > vulcan::gravity::j2::acceleration ( const Vec3< Scalar > & r_ecef,
double mu = constants::earth::mu,
double J2_coeff = constants::earth::J2,
double R_eq = constants::earth::R_eq )

J2 gravitational acceleration (oblate Earth).

Accounts for Earth's equatorial bulge. The J2 term is the dominant perturbation for low and medium Earth orbits.

Mathematical form: a_x = -μx/r³ · [1 - 1.5·J2·(R_eq/r)²·(5(z/r)² - 1)] a_y = -μy/r³ · [1 - 1.5·J2·(R_eq/r)²·(5(z/r)² - 1)] a_z = -μz/r³ · [1 - 1.5·J2·(R_eq/r)²·(5(z/r)² - 3)]

Template Parameters
Scalardouble or casadi::MX
Parameters
r_ecefPosition in ECEF frame [m]
muGravitational parameter [m³/s²]
J2_coeffJ2 zonal harmonic coefficient
R_eqEquatorial radius [m]
Returns
Gravitational acceleration in ECEF [m/s²]

◆ potential()

template<typename Scalar>
Scalar vulcan::gravity::j2::potential ( const Vec3< Scalar > & r_ecef,
double mu = constants::earth::mu,
double J2_coeff = constants::earth::J2,
double R_eq = constants::earth::R_eq )

J2 gravitational potential.

U = -μ/r · [1 - J2·(R_eq/r)²·P₂(sin φ)]

where P₂(x) = (3x² - 1)/2 is the Legendre polynomial of degree 2.

Template Parameters
Scalardouble or casadi::MX
Parameters
r_ecefPosition in ECEF frame [m]
muGravitational parameter [m³/s²]
J2_coeffJ2 zonal harmonic coefficient
R_eqEquatorial radius [m]
Returns
Gravitational potential [m²/s²]