SuperNOVAS v1.5
The NOVAS C library, made better
Loading...
Searching...
No Matches
nutation.c File Reference

Functions

int iau2000a (double jd_tt_high, double jd_tt_low, double *restrict dpsi, double *restrict deps)
 
int iau2000b (double jd_tt_high, double jd_tt_low, double *restrict dpsi, double *restrict deps)
 
int nu2000k (double jd_tt_high, double jd_tt_low, double *restrict dpsi, double *restrict deps)
 
int nutation_angles (double t, enum novas_accuracy accuracy, double *restrict dpsi, double *restrict deps)
 

Detailed Description

Author
G. Kaplan and A. Kovacs

SuperNOVAS implementations for the IAU2000 nutation series calculations, with varying trade-offs between computational cost and precision. It provides support for both the IAU 2000A, a truncated version with ~1 mas precision in the cureent epoch, and a NOVAS-specific reduced precision series with intermediate accuracy.

Based on the NOVAS C Edition, Version 3.1:

U. S. Naval Observatory
Astronomical Applications Dept.
Washington, DC
http://www.usno.navy.mil/USNO/astronomical-applications

Function Documentation

◆ iau2000a()

int iau2000a ( double  jd_tt_high,
double  jd_tt_low,
double *restrict  dpsi,
double *restrict  deps 
)

Computes the IAU 2000A high-precision nutation series for the specified date, to 0.1 μas accuracy. It is rather expensive computationally.

NOTES:

  1. As of SuperNOVAS v1.4.2, this function has been modified to replace the original IAU2000A model coefficients with the IAU2006 (a.k.a. IAU2000A R06) model coefficients, to provide an updated nutation model, which is dynamically consistent with the IAU2006 (P03) precesion model of Capitaine et al. 2003. This is now the same model with respect to which the IERS Earth orinetation parameters are computed and published.

REFERENCES:

  1. IERS Conventions (2003), Chapter 5.
  2. Simon et al. (1994) Astronomy and Astrophysics 282, 663-683, esp. Sections 3.4-3.5.
  3. Capitaine, N. et al. (2003), Astronomy And Astrophysics 412, pp. 567-586.
  4. https://hpiers.obspm.fr/eop-pc/models/nutations/nut.html
Parameters
jd_tt_high[day] High-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the integer part of a split date for the highest precision, or the full date for normal (reduced) precision.
jd_tt_low[day] Low-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the fractional part of a split date for the highest precision, or 0.0 for normal (reduced) precision.
[out]dpsi[rad] δψ Nutation (luni-solar + planetary) in longitude, in radians. It may be NULL if not required.
[out]deps[rad] δε Nutation (luni-solar + planetary) in obliquity, in radians. It may be NULL if not required.
Returns
0
See also
iau2000b()
nu2000k()
nutation_angles()
novas_nutation_provider

◆ iau2000b()

int iau2000b ( double  jd_tt_high,
double  jd_tt_low,
double *restrict  dpsi,
double *restrict  deps 
)

Computes the forced nutation of the non-rigid Earth based at reduced precision. It reproduces the IAU 2000A (R06) model to a precision of 1 milliarcsecond in the interval 1995-2020, while being about 15x faster than iau2000a().

NOTES

  1. Originally this was the IAU2000B series of McCarthy & Luzum (2003), consistent with the original IAU2000 precession model

  2. As of SuperNOVAS v1.4.2, this function has been modified to use a truncated series for the IAU2006 (a.k.a. IAU 2000A R06) nutation model, whereby terms with amplitudes larger than 100 μas are omitted, resulting in 102 terms for the longitude and 57 terms the obliquity. This results in similar, or slightly better, precision than the original IAU2000B series of McCarthy & Luzum (2003), and it is now dynamically consistent with the IAU2006 (P03) precession model (Capitaine et al. 2005).

REFERENCES:

  1. McCarthy, D. and Luzum, B. (2003). "An Abridged Model of the Precession & Nutation of the Celestial Pole," Celestial Mechanics and Dynamical Astronomy, Volume 85, Issue 1, Jan. 2003, p. 37. (IAU 2000B) IERS Conventions (2003), Chapter 5.
  2. Capitaine, N. et al. (2003), Astronomy And Astrophysics 412, pp. 567-586.
Parameters
jd_tt_high[day] High-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the integer part of a split date for the highest precision, or the full date for normal (reduced) precision.
jd_tt_low[day] Low-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the fractional part of a split date for the highest precision, or 0.0 for normal (reduced) precision.
[out]dpsi[rad] δψ Nutation (luni-solar + planetary) in longitude, in radians. It may be NULL if not required.
[out]deps[rad] δε Nutation (luni-solar + planetary) in obliquity, in radians. It may be NULL if not required.
Returns
0
See also
iau2000a()
nu2000k()
set_nutation_lp_provider()
nutation_angles()

◆ nu2000k()

int nu2000k ( double  jd_tt_high,
double  jd_tt_low,
double *restrict  dpsi,
double *restrict  deps 
)

Computes the forced nutation of the non-rigid Earth: Model NU2000K. This model is a modified version of the original IAU 2000A, which has been truncated for speed of execution. NU2000K agrees with IAU 2000A at the 0.1 milliarcsecond level from 1700 to 2300, while being is about 5x faster than the more precise iau2000a().

NU2000K was compared to IAU 2000A over six centuries (1700-2300). The average error in dψ is 20 microarcseconds, with 98% of the errors < 60 microarcseconds; the average error in dεis 8 microarcseconds, with 100% of the errors < 60 microarcseconds.

NU2000K was developed by G. Kaplan (USNO) in March 2004

NOTES:

  1. As of SuperNOVAS v1.4.2, this function has been modified to include a rescaling of the original IAU2000 nutation compatible values to 'IAU2006' (i.e. IAU2000A R06) compatible values, according to Coppola, Seago, and Vallado (2009). The rescaling makes this model more dynamically consistent with the IAU2006 (P03) precession model of Capitaine et al. (2003).

REFERENCES:

  1. IERS Conventions (2003), Chapter 5.
  2. Simon et al. (1994) Astronomy and Astrophysics 282, 663-683, esp. Sections 3.4-3.5.
  3. Capitaine, N. et al. (2003), Astronomy And Astrophysics 412, pp. 567-586.
  4. Coppola, V., Seago, G.H., & Vallado, D.A. (2009), AAS 09-159
Parameters
jd_tt_high[day] High-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the integer part of a split date for the highest precision, or the full date for normal (reduced) precision.
jd_tt_low[day] Low-order part of the Terrestrial Time (TT) based Julian date. Typically it may be the fractional part of a split date for the highest precision, or 0.0 for normal (reduced) precision.
[out]dpsi[rad] δψ Nutation (luni-solar + planetary) in longitude, in radians. It may be NULL if not required.
[out]deps[rad] δε Nutation (luni-solar + planetary) in obliquity, in radians. It may be NULL if not required.
Returns
0
See also
iau2000a()
iau2000b()
nutation_angles()
novas_nutation_provider

References accum_prec(), novas_delaunay_args::D, novas_delaunay_args::F, fund_args(), novas_delaunay_args::l, novas_delaunay_args::l1, NOVAS_EARTH, NOVAS_JUPITER, NOVAS_MARS, NOVAS_SATURN, NOVAS_VENUS, novas_delaunay_args::Omega, and planet_lon().

◆ nutation_angles()

int nutation_angles ( double  t,
enum novas_accuracy  accuracy,
double *restrict  dpsi,
double *restrict  deps 
)

Returns the IAU2000 / 2006 values for nutation in longitude and nutation in obliquity for a given TDB Julian date and the desired level of accuracy. For NOVAS_FULL_ACCURACY (0), the IAU 2000A R06 nutation model is used. Otherwise, the model set by set_nutation_lp_provider() is used, or else the iau2000b() by default.

REFERENCES:

  1. Kaplan, G. (2005), US Naval Observatory Circular 179.
  2. Capitaine, N., P.T. Wallace and J. Chapront (2005), “Improvement of the IAU 2000 precession model.” Astronomy & Astrophysics, Vol. 432, pp. 355–67.
  3. Coppola, V., Seago, G.H., & Vallado, D.A. (2009), AAS 09-159
Parameters
t[cy] TDB time in Julian centuries since J2000.0
accuracyNOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1)
[out]dpsi[arcsec] Nutation in longitude in arcseconds.
[out]deps[arcsec] Nutation in obliquity in arcseconds.
Returns
0 if successful, or -1 if the output pointer arguments are NULL
See also
nutation()
set_nutation_lp_provider()
iau2000a()
iau2000b()
nu2000k()
cio_basis()
NOVAS_CIRS
NOVAS_JD_J2000

References get_nutation_lp_provider(), iau2000a(), and NOVAS_FULL_ACCURACY.