CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
astro::earth::nutation Namespace Reference

Classes

struct  θCoeffs
struct  ψCoeffs
struct  εCoeffs
struct  NutationCoeffs

Enumerations

enum class  Model : uint8_t { MEEUS , IAU_1980 }
 Specify Earth's nutation model. More...

Functions

auto find_model (const Model model) -> std::span< const NutationCoeffs >
 Find the nutation coefficients for the given model.
auto gen_eval_θ (const double jc)
 Return the function to calculate the θ values, for the given julian century.
auto longitude (const double jde, const Model model=Model::IAU_1980) -> toolbox::AngleDeg
 Calculates the nutation in longitude (Δψ) for the given julian day.
auto obliquity (const double jde, const Model model=Model::IAU_1980) -> toolbox::AngleDeg
 Calculates the nutation in obliquity (Δε) for the given julian day.

Variables

constexpr std::array< NutationCoeffs, 63 > MEEUS_NUTATION_COEFFS
constexpr std::array< NutationCoeffs, 106 > IAU1980_NUTATION_COEFFS

Enumeration Type Documentation

◆ Model

enum class astro::earth::nutation::Model : uint8_t
strong

Specify Earth's nutation model.

Enumerator
MEEUS 
IAU_1980 

Function Documentation

◆ find_model()

auto astro::earth::nutation::find_model ( const Model model) ->std::span< constNutationCoeffs >
inlinenodiscard

Find the nutation coefficients for the given model.

◆ gen_eval_θ()

auto astro::earth::nutation::gen_eval_θ ( const double jc)
inlinenodiscard

Return the function to calculate the θ values, for the given julian century.

Parameters
jcThe julian century since J2000.
Returns
The function to calculate the θ values, which takes θCoeffs as input and returns the θ value in degrees.
Note
Handed back as auto, not std::function: this evaluator runs once per coefficient row of the nutation table, so type erasure here buys an indirect call on every single term of every nutation evaluation (#98).
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, Chapter 22.

◆ longitude()

auto astro::earth::nutation::longitude ( const double jde,
const Model model = Model::IAU_1980 )->toolbox::AngleDeg
inlinenodiscard

Calculates the nutation in longitude (Δψ) for the given julian day.

Parameters
jdeThe julian ephemeris day number, which is based on TT.
modelThe model to use when calculating the nutation. Defaults to Model::IAU_1980.
Returns
The nutation in longitude (Δψ) in degrees.
Note
Omission retains the fixed IAU 1980 convention.
Twin of nutation::obliquity, which sums the same table and differs in exactly two places: it reads coeffs.Δε and it takes the cosine. The duplication is deliberate — each body mirrors its own Meeus summation — so fix both or neither (#49).
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, Chapter 22.

◆ obliquity()

auto astro::earth::nutation::obliquity ( const double jde,
const Model model = Model::IAU_1980 )->toolbox::AngleDeg
inlinenodiscard

Calculates the nutation in obliquity (Δε) for the given julian day.

Parameters
jdeThe julian ephemeris day number, which is based on TT.
modelThe model to use when calculating the nutation. Defaults to Model::IAU_1980.
Returns
The nutation in obliquity (Δε) in degrees.
Note
Omission retains the fixed IAU 1980 convention.
Twin of nutation::longitude, which sums the same table and differs in exactly two places: it reads coeffs.Δψ and it takes the sine. The duplication is deliberate — each body mirrors its own Meeus summation — so fix both or neither (#49).
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, Chapter 22.

Variable Documentation

◆ IAU1980_NUTATION_COEFFS

std::array<NutationCoeffs, 106> astro::earth::nutation::IAU1980_NUTATION_COEFFS
inlineconstexpr

◆ MEEUS_NUTATION_COEFFS

std::array<NutationCoeffs, 63> astro::earth::nutation::MEEUS_NUTATION_COEFFS
inlineconstexpr