From 531f6d4f4aa730ba571f07aa93c20dfa986c81e3 Mon Sep 17 00:00:00 2001 From: Attila Kovacs Date: Wed, 7 Feb 2024 20:48:00 +0100 Subject: [PATCH] Fix ERA GST constant mixup, add more tests --- README-headless.md | 32 ++-- README.md | 32 ++-- include/novas.h | 24 ++- src/novas.c | 225 +++++++++++++++++------------ test/novasc3.1/cel2ter.out | 32 ++++ test/novasc3.1/equ2ecl.out | 32 ++++ test/novasc3.1/equ2gal.out | 32 ++++ test/novasc3.1/equ2hor-refract.out | 32 ++++ test/novasc3.1/equ2hor.out | 32 ++++ test/novasc3.1/frame_tie.out | 96 ------------ test/novasc3.1/grav_def.out | 96 ------------ test/novasc3.1/place.out | 24 +-- test/novasc3.1/precession.out | 96 ------------ test/novasc3.1/refract.out | 1 + test/novasc3.1/ter2cel.out | 32 ++++ test/novasc3.1/wobble.out | 96 ------------ test/reference/cel2ter.out | 32 ++++ test/reference/equ2ecl.out | 32 ++++ test/reference/equ2gal.out | 32 ++++ test/reference/equ2hor-refract.out | 32 ++++ test/reference/equ2hor.out | 32 ++++ test/reference/frame_tie.out | 96 ------------ test/reference/grav_def.out | 96 ------------ test/reference/place.out | 26 ++-- test/reference/precession.out | 96 ------------ test/reference/refract.out | 1 + test/reference/ter2cel.out | 32 ++++ test/reference/wobble.out | 96 ------------ test/src/test.c | 121 +++++++++++++++- 29 files changed, 721 insertions(+), 917 deletions(-) create mode 100644 test/novasc3.1/cel2ter.out create mode 100644 test/novasc3.1/equ2ecl.out create mode 100644 test/novasc3.1/equ2gal.out create mode 100644 test/novasc3.1/equ2hor-refract.out create mode 100644 test/novasc3.1/equ2hor.out create mode 100644 test/novasc3.1/refract.out create mode 100644 test/novasc3.1/ter2cel.out create mode 100644 test/reference/cel2ter.out create mode 100644 test/reference/equ2ecl.out create mode 100644 test/reference/equ2gal.out create mode 100644 test/reference/equ2hor-refract.out create mode 100644 test/reference/equ2hor.out create mode 100644 test/reference/refract.out create mode 100644 test/reference/ter2cel.out diff --git a/README-headless.md b/README-headless.md index e37abd25..4711662b 100644 --- a/README-headless.md +++ b/README-headless.md @@ -248,7 +248,7 @@ adjustment to convert from J2000 to ICRS coordinates. transform_cat(CHANGE_EPOCH, NOVAS_B1950, &source, NOVAS_J2000, "FK5", &source); // Then convert J2000 coordinates to ICRS (also in place). Here the dates don't matter... - transform_cat(CHANGE_J2000_TO_ICRS, 0.0, &source, 0.0, "ICR", &source); + transform_cat(CHANGE_J2000_TO_ICRS, 0.0, &source, 0.0, "ICRS", &source); ``` (Naturally, you can skip the transformation steps above if you have defined your source in ICRS coordinates from the @@ -326,15 +326,15 @@ at the specified observing location (without refraction correction): double zd, az; // Convert CIRS to horizontal using the pole offsets. - cirs_to_hor(jd_tt - ut1_to_tt, ut1_to_tt, NOVAS_FULL_ACCURACY, dx, dy, &obs.on_surf, pos.ra, pos.dec, - &zd, &az); + cirs_to_hor(jd_tt - ut1_to_tt, ut1_to_tt, NOVAS_FULL_ACCURACY, dx, dy, &obs.on_surf, + pos.ra, pos.dec, &zd, &az); ``` In the example above we first calculated the apparent coordinates in the Celestial Intermediate Reference System (CIRS). Then we used `cirs_to_hor()` function then convert first it to the Earth-fixed International Terrestrial Reference system (ITRS) using the small (arcsec-level) measured variation of the pole (dx, dy) provided explicitly since `cirs_to_hor()` does not use the values previously set via `cel_pole()`. Finally, `cirs_to_hor()` converts the -ITRScoordinates to the horizontal system at the observer location. +ITRS coordinates to the horizontal system at the observer location. You can additionally apply an optical refraction correction for the astrometric (unrefracted) zenith angle, if you want, e.g.: @@ -462,7 +462,7 @@ on how they are appropriate for the old and new methodologies respectively. invalid (unless the NOVAS C API already defined a different return value for specific cases. If so, the NOVAS C error code is returned for compatibility). - - Many SuperNOVAS functions allow NULL arguments, both for optional input values as well as outputs that are not + - Many SuperNOVAS functions allow `NULL` arguments, both for optional input values as well as outputs that are not required. See the [API Documentation](https://smithsonian.github.io/SuperNOVAS.home/apidoc/html/) for specifics). This eliminates the need to declare dummy variables in your application code. @@ -475,10 +475,9 @@ on how they are appropriate for the old and new methodologies respectively. data content being pointed at. This supports better programming practices that generally aim to avoid unintended data modifications. - - New `cirs_to_hor()` function similar to the existing `equ2hor()`. Whereas the latter converts from TOD to - to local horizontal (old methodology), the new function does the same from CIRS (new IAU standard methodology). - As such it can be used after `place()` is called with `NOVAS_CIRS` as the coordinate system. - + - Source names and catalog names can both be up to 64 bytes (including termination), up from 51 and 4 respectively + NOVAS C, while keeping `struct` layouts the same thanks to alignment. + - Runtime configurability: * The planet position calculator function used by `ephemeris` can be set at runtime via `set_planet_calc()`, and @@ -495,7 +494,20 @@ on how they are appropriate for the old and new methodologies respectively. approximation via `nutation_set_lp_calc()`. For example, the user may want to use the `iau2000b()` model instead or some custom algorithm instead. - - Added several new convenience functions to wrap `place()` for simpler specific use: `place_star()`, `place_icrs()`, + - New intutitive XYZ coordinate coversion functions: + * for GCRS - CIRS - ITRS (IAU 2000 standard): `gcrs_to_cirs()`, `cirs_to_itrs()`, and `itrs_to_cirs()`, + `cirs_to_gcrs()`. + * for J2000 - TOD - ITRS (old methodology): `j2000_to_tod()`, `tod_to_itrs()`, and `itrs_to_tod()`, + `tod_to_j2000()`. + + - New `cirs_to_hor()` function similar to the existing `equ2hor()`. Whereas the latter converts from TOD to + to local horizontal (old methodology), the new function does the same from CIRS (new IAU standard methodology). + As such it can be used after `place()` is called with `NOVAS_CIRS` as the coordinate system. + + - New `refract_astro()` function that complements the existing `refract()` but takes an unrefracted zenith angle + as its argument. + + - New convenience functions to wrap `place()` for simpler specific use: `place_star()`, `place_icrs()`, `place_gcrs()`, `place_cirs()`, `place_tod()`. - New time conversion utilities `tt2tdb()` and `get_ut1_to_tt()` make it simpler to convert between UT1, TT, and TDB diff --git a/README.md b/README.md index a2db2085..6374af15 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ adjustment to convert from J2000 to ICRS coordinates. transform_cat(CHANGE_EPOCH, NOVAS_B1950, &source, NOVAS_J2000, "FK5", &source); // Then convert J2000 coordinates to ICRS (also in place). Here the dates don't matter... - transform_cat(CHANGE_J2000_TO_ICRS, 0.0, &source, 0.0, "ICR", &source); + transform_cat(CHANGE_J2000_TO_ICRS, 0.0, &source, 0.0, "ICRS", &source); ``` (Naturally, you can skip the transformation steps above if you have defined your source in ICRS coordinates from the @@ -338,15 +338,15 @@ at the specified observing location (without refraction correction): double zd, az; // Convert CIRS to horizontal using the pole offsets. - cirs_to_hor(jd_tt - ut1_to_tt, ut1_to_tt, NOVAS_FULL_ACCURACY, dx, dy, &obs.on_surf, pos.ra, pos.dec, - &zd, &az); + cirs_to_hor(jd_tt - ut1_to_tt, ut1_to_tt, NOVAS_FULL_ACCURACY, dx, dy, &obs.on_surf, + pos.ra, pos.dec, &zd, &az); ``` In the example above we first calculated the apparent coordinates in the Celestial Intermediate Reference System (CIRS). Then we used `cirs_to_hor()` function then convert first it to the Earth-fixed International Terrestrial Reference system (ITRS) using the small (arcsec-level) measured variation of the pole (dx, dy) provided explicitly since `cirs_to_hor()` does not use the values previously set via `cel_pole()`. Finally, `cirs_to_hor()` converts the -ITRScoordinates to the horizontal system at the observer location. +ITRS coordinates to the horizontal system at the observer location. You can additionally apply an optical refraction correction for the astrometric (unrefracted) zenith angle, if you want, e.g.: @@ -474,7 +474,7 @@ on how they are appropriate for the old and new methodologies respectively. invalid (unless the NOVAS C API already defined a different return value for specific cases. If so, the NOVAS C error code is returned for compatibility). - - Many SuperNOVAS functions allow NULL arguments, both for optional input values as well as outputs that are not + - Many SuperNOVAS functions allow `NULL` arguments, both for optional input values as well as outputs that are not required. See the [API Documentation](https://smithsonian.github.io/SuperNOVAS.home/apidoc/html/) for specifics). This eliminates the need to declare dummy variables in your application code. @@ -487,10 +487,9 @@ on how they are appropriate for the old and new methodologies respectively. data content being pointed at. This supports better programming practices that generally aim to avoid unintended data modifications. - - New `cirs_to_hor()` function similar to the existing `equ2hor()`. Whereas the latter converts from TOD to - to local horizontal (old methodology), the new function does the same from CIRS (new IAU standard methodology). - As such it can be used after `place()` is called with `NOVAS_CIRS` as the coordinate system. - + - Source names and catalog names can both be up to 64 bytes (including termination), up from 51 and 4 respectively + NOVAS C, while keeping `struct` layouts the same thanks to alignment. + - Runtime configurability: * The planet position calculator function used by `ephemeris` can be set at runtime via `set_planet_calc()`, and @@ -507,7 +506,20 @@ on how they are appropriate for the old and new methodologies respectively. approximation via `nutation_set_lp_calc()`. For example, the user may want to use the `iau2000b()` model instead or some custom algorithm instead. - - Added several new convenience functions to wrap `place()` for simpler specific use: `place_star()`, `place_icrs()`, + - New intutitive XYZ coordinate coversion functions: + * for GCRS - CIRS - ITRS (IAU 2000 standard): `gcrs_to_cirs()`, `cirs_to_itrs()`, and `itrs_to_cirs()`, + `cirs_to_gcrs()`. + * for J2000 - TOD - ITRS (old methodology): `j2000_to_tod()`, `tod_to_itrs()`, and `itrs_to_tod()`, + `tod_to_j2000()`. + + - New `cirs_to_hor()` function similar to the existing `equ2hor()`. Whereas the latter converts from TOD to + to local horizontal (old methodology), the new function does the same from CIRS (new IAU standard methodology). + As such it can be used after `place()` is called with `NOVAS_CIRS` as the coordinate system. + + - New `refract_astro()` function that complements the existing `refract()` but takes an unrefracted zenith angle + as its argument. + + - New convenience functions to wrap `place()` for simpler specific use: `place_star()`, `place_icrs()`, `place_gcrs()`, `place_cirs()`, `place_tod()`. - New time conversion utilities `tt2tdb()` and `get_ut1_to_tt()` make it simpler to convert between UT1, TT, and TDB diff --git a/include/novas.h b/include/novas.h index 39dcf633..b8296b15 100644 --- a/include/novas.h +++ b/include/novas.h @@ -258,7 +258,7 @@ enum novas_accuracy { */ enum novas_refraction_model { NOVAS_NO_ATMOSPHERE = 0, ///< Do not apply atmospheric refraction correction - NOVAS_STANDARD_ATMOSPHERE, ///< Uses a standard atmospheric model, ignoring all weather values defined for the specific observing location + NOVAS_STANDARD_ATMOSPHERE, ///< Uses a standard atmospheric model, ignoring all weather values defined for the specific observing location NOVAS_WEATHER_AT_LOCATION ///< Uses the weather parameters that are specified together with the observing location. }; @@ -266,8 +266,16 @@ enum novas_refraction_model { * Constants that determine the type of rotation measure to use. */ enum novas_earth_rotation_measure { - EROT_GST = 0, ///< Use GST as the rotation measure, relative to the true equinox (before IAU 20006 standard) - EROT_ERA ///< Use Earth Rotation Angle (ERA) as the rotation measure, relative to the CIO (new IAU 2006 standard) + EROT_ERA = 0, ///< Use Earth Rotation Angle (ERA) as the rotation measure, relative to the CIO (new IAU 2006 standard) + EROT_GST ///< Use GST as the rotation measure, relative to the true equinox (before IAU 20006 standard) +}; + +/** + * Constants for ter2cel() and cel2ter() + */ +enum novas_celestial_class { + CELESTIAL_GCRS = 0, ///< Celestial coordinates are in GCRS + CELESTIAL_APPARENT ///< Celestial coordinates are apparent values (CIRS or TOD) }; /** @@ -604,10 +612,10 @@ short sidereal_time(double jd_high, double jd_low, double ut1_to_tt, enum novas_ double era(double jd_high, double jd_low); short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_earth_rotation_measure method, enum novas_accuracy accuracy, - enum novas_reference_system option, double xp, double yp, const double *vec1, double *vec2); + enum novas_celestial_class class, double xp, double yp, const double *vec1, double *vec2); short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_earth_rotation_measure method, enum novas_accuracy accuracy, - enum novas_reference_system option, double xp, double yp, const double *vec1, double *vec2); + enum novas_celestial_class class, double xp, double yp, const double *vec1, double *vec2); int spin(double angle, const double *pos1, double *pos2); @@ -733,9 +741,6 @@ int place_cirs(double jd_tt, const object *source, enum novas_accuracy accuracy, double refract_astro(const on_surface *location, enum novas_refraction_model ref_option, double zd_calc); -int cirs_to_hor(double jd_ut1, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const on_surface *location, double ra, - double dec, double *zd, double *az); - int light_time2(double jd_tdb, const object *ss_object, const double *pos_obs, double tlight0, enum novas_accuracy accuracy, double *pos, double *vel, double *tlight); @@ -769,6 +774,9 @@ int itrs_to_tod(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum no int tod_to_j2000(double jd_tt, enum novas_accuracy accuracy, const double *in, double *out); +int cirs_to_hor(double jd_ut1, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const on_surface *location, double ra, + double dec, double *zd, double *az); + #include "solarsystem.h" #endif /* _NOVAS_ */ diff --git a/src/novas.c b/src/novas.c index a4813289..9a0d71c8 100644 --- a/src/novas.c +++ b/src/novas.c @@ -838,7 +838,9 @@ short astro_planet(double jd_tt, const object *ss_body, enum novas_accuracy accu *
  • Explanatory Supplement to the Astronomical Almanac (1992), Chapter 3.
  • * * - * @deprecated Use place() with system NOVAS_CIRS is now preferred, especially for high accuracy calculations. + * @deprecated Using place() with system NOVAS_CIRS is now preferred for topocentric calculations, especially + * when high precision is required. However, you will have to follow the IAU 2000 method + * consistently to produce equivalent calculations throughout. * * @param jd_tt [day] Terrestrial Time (TT) based Julian date. * @param ut1_to_tt [s] Difference TT-UT1 at 'jd_tt', in seconds of time. @@ -934,7 +936,9 @@ short local_star(double jd_tt, double ut1_to_tt, const cat_entry *star, const on * as calling place() for the body for the same observer location and NOVAS_TOD as the reference system, * except the different set of return values used. * - * @deprecated Use place() with system NOVAS_CIRS is now preferred, especially for high accuracy calculations. + * @deprecated Using place() with system NOVAS_CIRS is now preferred for topocentric calculations, especially + * when high precision is required. However, you will have to follow the IAU 2000 method + * consistently to produce equivalent calculations throughout. * * REFERENCES: *
      @@ -1407,8 +1411,8 @@ int equ2gal(double rai, double deci, double *glon, double *glat) { * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) * @param ra [h] Right ascension in hours, referred to specified equator and equinox of date. * @param dec [deg] Declination in degrees, referred to specified equator and equinox of date. - * @param elon [deg] Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. - * @param elat [deg] Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. + * @param[out] elon [deg] Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. + * @param[out] elat [deg] Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date. * @return 0 if successful, or else 1 if the value of 'coord_sys' is invalid. */ short equ2ecl(double jd_tt, enum novas_equator_type coord_sys, enum novas_accuracy accuracy, double ra, double dec, double *elon, @@ -1583,12 +1587,12 @@ short ecl2equ_vec(double jd_tt, enum novas_equator_type coord_sys, enum novas_ac return 0; } -// Like equ2hor(), but with specifying whether from TOD or CIRS frame. -static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system app_sys, enum novas_accuracy accuracy, double xp, - double yp, const on_surface *location, double ra, double dec, enum novas_refraction_model ref_option, double *zd, double *az, - double *rar, double *decr) { +// Like equ2hor, but with the rotation measure type added as an argument. +static int equ2hor_generic(double jd_ut1, double ut1_to_tt, enum novas_earth_rotation_measure erot, enum novas_accuracy accuracy, + double xp, double yp, const on_surface *location, double ra, + double dec, enum novas_refraction_model ref_option, double *zd, double *az, double *rar, double *decr) { - double sinlat, coslat, sinlon, coslon, sindc, cosdc, sinra, cosra; + double sinlat, coslat, sinlon, coslon, cosdec; double uze[3], une[3], uwe[3], uz[3], un[3], uw[3], p[3]; double pz, pn, pw, proj, pr[3]; @@ -1608,10 +1612,13 @@ static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system ra *= HOURANGLE; dec *= DEGREE; - sindc = sin(dec); - cosdc = cos(dec); - sinra = sin(ra); - cosra = cos(ra); + cosdec = cos(dec); + + // Define unit vector 'p' toward object in celestial system + // (wrt equator and equinox of date). + p[0] = cosdec * cos(ra); + p[1] = cosdec * sin(ra); + p[2] = sin(dec); // Set up orthonormal basis vectors in local Earth-fixed system. @@ -1634,15 +1641,9 @@ static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system // Rotate Earth-fixed orthonormal basis vectors to celestial system // (wrt equator and equinox of date). - ter2cel(jd_ut1, 0.0, ut1_to_tt, EROT_ERA, accuracy, app_sys, xp, yp, uze, uz); - ter2cel(jd_ut1, 0.0, ut1_to_tt, EROT_ERA, accuracy, app_sys, xp, yp, une, un); - ter2cel(jd_ut1, 0.0, ut1_to_tt, EROT_ERA, accuracy, app_sys, xp, yp, uwe, uw); - - // Define unit vector 'p' toward object in celestial system - // (wrt equator and equinox of date). - p[0] = cosdc * cosra; - p[1] = cosdc * sinra; - p[2] = sindc; + ter2cel(jd_ut1, 0.0, ut1_to_tt, erot, accuracy, CELESTIAL_APPARENT, xp, yp, uze, uz); + ter2cel(jd_ut1, 0.0, ut1_to_tt, erot, accuracy, CELESTIAL_APPARENT, xp, yp, une, un); + ter2cel(jd_ut1, 0.0, ut1_to_tt, erot, accuracy, CELESTIAL_APPARENT, xp, yp, uwe, uw); // Compute coordinates of object w.r.t orthonormal basis. @@ -1699,17 +1700,19 @@ static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system } /** - * Transforms topocentric (TOD) right ascension and declination to zenith distance and azimuth. It uses a method - * that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also - * adjust coordinates for atmospheric refraction. + * Transforms topocentric (TOD) right ascension and declination to zenith distance and azimuth. This method should + * not be used to convert CIRS apparent coordinates (IAU 2000 standard) -- for those you should use cirs_to_hor() + * instead. + * + * It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. + * This function can also adjust coordinates for atmospheric refraction. * * NOTES: * * * REFERENCES: @@ -1729,7 +1732,7 @@ static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system * and equinox of date. * @param dec [deg] Topocentric declination of object of interest, in degrees, referred to true equator * and equinox of date. - * @param ref_option NOVAS_STANDARD_ATMOSPHERE (0), or NOVAS_WEATHER_AT_LOCATION (1) if to use the weather + * @param ref_option NOVAS_STANDARD_ATMOSPHERE (1), or NOVAS_WEATHER_AT_LOCATION (2) if to use the weather * @param[out] zd [deg] Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. * @param[out] az [deg] Topocentric azimuth (measured east from north) in degrees. * @param[out] rar [h] Topocentric right ascension of object of interest, in hours, referred to true equator and @@ -1739,25 +1742,36 @@ static int equ2hor2(double jd_ut1, double ut1_to_tt, enum novas_reference_system * @return 0 if successful, or -1 if one of the 'zd' or 'az' output pointers are NULL. * * @sa cirs_to_hor() + * @sa tod_to_itrs() + * @sa NOVAS_TOD + * */ int equ2hor(double jd_ut1, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const on_surface *location, double ra, double dec, enum novas_refraction_model ref_option, double *zd, double *az, double *rar, double *decr) { - return equ2hor2(jd_ut1, ut1_to_tt, NOVAS_TOD, accuracy, xp, yp, location, ra, dec, ref_option, zd, az, rar, decr); + return equ2hor_generic(jd_ut1, ut1_to_tt, EROT_GST, accuracy, xp, yp, location, ra, dec, ref_option, zd, az, rar, decr); } + /** - * Transforms topocentric (CIRS) right ascension and declination to zenith distance and azimuth. It uses a method - * that properly accounts for polar motion, which is significant at the sub-arcsecond level. This routine does not - * calculate refraction, but you may call refract() with the returned zenith angle value, if you want to. + * Transform topocentric (CIRS) right ascension and declination to zenith distance and azimuth. It uses a method + * that properly accounts for polar motion, which is significant at the sub-arcsecond level. + * + * This function does not include atmospheric refraction calculation. If you want you can call refract_astro() + * after with the 'zd' output of this function to obtain a suitable correction that you can subtract from 'zd' + * to apply the correction explicitly after this call. * * NOTES: * * + * REFERENCES: + *
        + *
      1. Kaplan, G. (2008). USNO/AA Technical Note of 28 Apr 2008, "Refraction as a Vector."
      2. + *
      + * * @param jd_ut1 [day] UT1 based Julian date * @param ut1_to_tt [s] TT - UT1 Time difference in seconds * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) @@ -1775,16 +1789,15 @@ int equ2hor(double jd_ut1, double ut1_to_tt, enum novas_accuracy accuracy, doubl * @return 0 if successful, or -1 if one of the 'zd' or 'az' output pointers are NULL. * * @sa equ2hor() - * @sa refract() - * - * @since 1.0 - * @author Attila Kovacs + * @sa cirs_ro_itrs() + * @sa NOVAS_CIRS */ int cirs_to_hor(double jd_ut1, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const on_surface *location, double ra, double dec, double *zd, double *az) { - return equ2hor2(jd_ut1, ut1_to_tt, NOVAS_CIRS, accuracy, xp, yp, location, ra, dec, NOVAS_NO_ATMOSPHERE, zd, az, NULL, NULL); + return equ2hor_generic(jd_ut1, ut1_to_tt, EROT_ERA, accuracy, xp, yp, location, ra, dec, NOVAS_NO_ATMOSPHERE, zd, az, NULL, NULL); } + /** * Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). * For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the @@ -2028,7 +2041,7 @@ double era(double jd_high, double jd_low) { * applying rotations for polar motion, Earth rotation (for TOD); and * nutation, precession, and the dynamical-to-GCRS frame tie (for GCRS). * - * If 'option' is NOVAS_CIRS then method EROT_ERA must be used. Similarly, if 'option' + * If 'system' is NOVAS_CIRS then method EROT_ERA must be used. Similarly, if 'system' * is NOVAS_TOD then method must be EROT_ERA. Otherwise an error 3 is returned. * * If both 'xp' and 'yp' are set to 0 no polar motion is included @@ -2039,19 +2052,19 @@ double era(double jd_high, double jd_low) { * instead. You can then follow these with other conversions to GCRS or * J2000 as appropriate. * - * REFERENCES: + * REFERENCES: *
        *
      1. Kaplan, G. H. et. al. (1989). Astron. Journ. 97, 1197-1210.
      2. *
      3. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
      4. *
      * - * @param jd_ut1_high [day] High-order part of UT1 Julian date. - * @param jd_ut1_low [day] Low-order part of UT1 Julian date. + * @param jd_ut1_high [day] High-order part of UT1 Julian date. + * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds * @param method EROT_GST (0) or EROT_ERA (1), depending on whether to use GST relative to equinox of date (pre * IAU 2006) or ERA relative to the CIO (IAU 2006 standard). * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) - * @param option NOVAS_GCRS (0) or NOVAS_TOD (1), or NOVAS_CIRS (2). Used only when method is EROT_GST (0). + * @param class Output coordinate class CELESTIAL_GCRS (0, or any value other than 1) or CELESTIAL_APPARENT (1). * @param xp [arcsec] Conventionally-defined X coordinate of celestial intermediate * pole with respect to ITRS pole, in arcseconds. * @param yp [arcsec] Conventionally-defined Y coordinate of celestial intermediate @@ -2059,13 +2072,10 @@ double era(double jd_high, double jd_low) { * @param vec1 Position vector, geocentric equatorial rectangular coordinates, * referred to ITRS axes (terrestrial system) in the normal case * where 'option' is NOVAS_GCRS (0). - * @param[out] vec2 Position vector, geocentric equatorial rectangular coordinates, - * referred to GCRS axes (celestial system) or with respect to - * the equator and equinox of date, depending on 'option'. - * It can be the same vector as the input. + * @param[out] vec2 Position vector, equatorial rectangular coordinates in the specified output system * @return 0 if successful, -1 if either of the vector arguments is NULL, 1 if 'accuracy' is invalid, - * 2 if 'method' is invalid 10--20, 3 if the method and option are mutually incompatible, or - * else 10 + the error from cio_location(), or 20 + error from cio_basis(). + * 2 if 'method' is invalid 10--20, or else 10 + the error from cio_location(), + * or 20 + error from cio_basis(). * * @sa itrs_to_cirs() * @sa cirs_to_gcrs() @@ -2075,7 +2085,7 @@ double era(double jd_high, double jd_low) { * @sa cel2ter() */ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_earth_rotation_measure method, - enum novas_accuracy accuracy, enum novas_reference_system option, double xp, double yp, const double *vec1, double *vec2) { + enum novas_accuracy accuracy, enum novas_celestial_class class, double xp, double yp, const double *vec1, double *vec2) { double jd_ut1, jd_tt, jd_tdb, gast; if(!vec1 || !vec2) { @@ -2084,7 +2094,6 @@ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova } if(accuracy != NOVAS_FULL_ACCURACY && accuracy != NOVAS_REDUCED_ACCURACY) return 1; - if(option < 0 || option >= NOVAS_ICRS) return 2; // Compute the TT Julian date corresponding to the input UT1 Julian // date. @@ -2106,14 +2115,12 @@ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova // 'CIO-TIO-THETA' method. See second reference, eq. (3) and (4). double theta; - if(option == NOVAS_TOD) return 3; - // Compute and apply the Earth rotation angle, 'theta', transforming the // vector to the celestial intermediate system. theta = era(jd_ut1_high, jd_ut1_low); spin(-theta, vec2, vec2); - if(option != NOVAS_CIRS) { + if(class != CELESTIAL_APPARENT) { int error = cirs_to_gcrs(jd_tdb, accuracy, vec2, vec2); if(error) return 10 + error; } @@ -2121,12 +2128,10 @@ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova break; } case (EROT_GST): - if(option == NOVAS_CIRS) return 3; + sidereal_time(jd_ut1_high, jd_ut1_low, ut1_to_tt, NOVAS_TRUE_EQUINOX, EROT_GST, accuracy, &gast); + spin(-15.0 * gast, vec2, vec2); - sidereal_time(jd_ut1_high, jd_ut1_low, ut1_to_tt, NOVAS_TRUE_EQUINOX, EROT_ERA, accuracy, &gast); - spin(-gast * 15.0, vec2, vec2); - - if(option != NOVAS_TOD) { + if(class != CELESTIAL_APPARENT) { tod_to_gcrs(jd_tdb, accuracy, vec2, vec2); } break; @@ -2144,6 +2149,12 @@ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova * * If both 'xp' and 'yp' are set to 0 no polar motion is included in the transformation. * + * REFERENCES: + *
        + *
      1. Kaplan, G. H. et. al. (1989). Astron. Journ. 97, 1197-1210.
      2. + *
      3. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
      4. + *
      + * * @param jd_ut1_high [day] High-order part of UT1 Julian date. * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds @@ -2168,7 +2179,7 @@ short ter2cel(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova */ int itrs_to_cirs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const double *vec1, double *vec2) { - return ter2cel(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, NOVAS_CIRS, xp, yp, vec1, vec2); + return ter2cel(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, CELESTIAL_APPARENT, xp, yp, vec1, vec2); } /** @@ -2176,6 +2187,12 @@ int itrs_to_cirs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum n * * If both 'xp' and 'yp' are set to 0 no polar motion is included in the transformation. * + * REFERENCES: + *
        + *
      1. Kaplan, G. H. et. al. (1989). Astron. Journ. 97, 1197-1210.
      2. + *
      3. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
      4. + *
      + * * @param jd_ut1_high [day] High-order part of UT1 Julian date. * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds @@ -2200,15 +2217,16 @@ int itrs_to_cirs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum n */ int itrs_to_tod(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const double *vec1, double *vec2) { - return ter2cel(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_GST, accuracy, NOVAS_TOD, xp, yp, vec1, vec2); + return ter2cel(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_GST, accuracy, CELESTIAL_APPARENT, xp, yp, vec1, vec2); } /** - * Rotates a vector from the celestial to the terrestrial system. Specifically, it transforms a vector in the - * GCRS, or the dynamcal CIRS or TOD frames to the ITRS (a rotating earth-fixed system) by applying rotations for the - * GCRS-to-dynamical frame tie, precession, nutation, Earth rotation, and polar motion. + * Rotates a vector from the celestial to the terrestrial system. Specifically, it transforms + * a vector in the GCRS, or the dynamcal CIRS or TOD frames to the ITRS (a rotating earth-fixed + * system) by applying rotations for the GCRS-to-dynamical frame tie, precession, nutation, Earth + * rotation, and polar motion. * - * If 'option' is NOVAS_CIRS then method EROT_ERA must be used. Similarly, if 'option' + * If 'system' is NOVAS_CIRS then method EROT_ERA must be used. Similarly, if 'system' * is NOVAS_TOD then method must be EROT_ERA. Otherwise an error 3 is returned. * * If both 'xp' and 'yp' are set to 0 no polar motion is included in the transformation. @@ -2224,25 +2242,25 @@ int itrs_to_tod(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum no *
    1. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
    2. *
    * + * + * * @param jd_ut1_high [day] High-order part of UT1 Julian date. * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds * @param method EROT_GST (0) or EROT_ERA (1), depending on whether to use GST relative to equinox of date (pre * IAU 2006) or ERA relative to the CIO (IAU 2006 standard). * @param accuracy NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) - * @param option NOVAS_GCRS (0) or NOVAS_TOD (1) or NOVAS_CIRS (2). Used only when method is EROT_GST (0). + * @param class Input coordinate class, CELESTIAL_GCRS (0, or any value other than 1) or CELESTIAL_APPARENT (1). * @param xp [arcsec] Conventionally-defined X coordinate of celestial intermediate * pole with respect to ITRS pole, in arcseconds. * @param yp [arcsec] Conventionally-defined Y coordinate of celestial intermediate * pole with respect to ITRS pole, in arcseconds. - * @param vec1 Position vector, geocentric equatorial rectangular coordinates, - * referred to GCRS axes (celestial system) or with respect to - * the equator and equinox of date, depending on 'option' + * @param vec1 Position vector, geocentric equatorial rectangular coordinates in the specified + * input coordinate system. * @param[out] vec2 Position vector, geocentric equatorial rectangular coordinates, * referred to ITRS axes (terrestrial system). It can be the same vector as the input. * @return 0 if successful, -1 if either of the vector arguments is NULL, 1 if 'accuracy' is invalid, - * 2 if 'method' is invalid, 3 if the 'method' is incompatible with the 'option', or else - * 10 + the error from cio_location(), or 20 + error from cio_basis(). + * 2 if 'method' is invalid, or else 10 + the error from cio_location(), or 20 + error from cio_basis(). * * @sa gcrs_to_cirs() * @sa cirs_to_itrs() @@ -2252,10 +2270,9 @@ int itrs_to_tod(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum no * @sa ter2cel() */ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_earth_rotation_measure method, - enum novas_accuracy accuracy, enum novas_reference_system option, double xp, double yp, const double *vec1, double *vec2) { + enum novas_accuracy accuracy, enum novas_celestial_class class, double xp, double yp, const double *vec1, double *vec2) { double jd_ut1, jd_tt, jd_tdb, gast, theta; - short error = 0; if(!vec1 || !vec2) { errno = EINVAL; @@ -2272,11 +2289,13 @@ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova jd_tdb = jd_tt + tt2tdb(jd_tt) / DAY; switch(method) { - case (EROT_GST): + case (EROT_ERA): // IAU 2006 standard method - // See second reference, eq. (3) and (4). - error = gcrs_to_cirs(jd_tdb, accuracy, vec1, vec2); - if(error) return 10 + error; + if (class != CELESTIAL_APPARENT) { + // See second reference, eq. (3) and (4). + int error = gcrs_to_cirs(jd_tdb, accuracy, vec1, vec2); + if(error) return 10 + error; + } // Compute and apply the Earth rotation angle, 'theta', transforming the // vector to the terrestrial intermediate system. @@ -2285,9 +2304,9 @@ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova break; - case (EROT_ERA): + case (EROT_GST): // Pre IAU 2006 method - if(option == NOVAS_TOD) { + if(class == CELESTIAL_APPARENT) { if(vec2 != vec1) memcpy(vec2, vec1, XYZ_VECTOR_SIZE); } else { @@ -2295,7 +2314,7 @@ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova } // Apply Earth rotation. - sidereal_time(jd_ut1_high, jd_ut1_low, ut1_to_tt, NOVAS_TRUE_EQUINOX, EROT_ERA, accuracy, &gast); + sidereal_time(jd_ut1_high, jd_ut1_low, ut1_to_tt, NOVAS_TRUE_EQUINOX, EROT_GST, accuracy, &gast); spin(gast * 15.0, vec2, vec2); break; @@ -2316,6 +2335,12 @@ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova * * If both 'xp' and 'yp' are set to 0 no polar motion is included in the transformation. * + * REFERENCES: + *
      + *
    1. Kaplan, G. H. et. al. (1989). Astron. Journ. 97, 1197-1210.
    2. + *
    3. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
    4. + *
    + * * @param jd_ut1_high [day] High-order part of UT1 Julian date. * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds @@ -2341,7 +2366,7 @@ short cel2ter(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum nova */ int cirs_to_itrs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const double *vec1, double *vec2) { - return cel2ter(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, NOVAS_CIRS, xp, yp, vec1, vec2); + return cel2ter(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, CELESTIAL_APPARENT, xp, yp, vec1, vec2); } /** @@ -2349,6 +2374,12 @@ int cirs_to_itrs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum n * * If both 'xp' and 'yp' are set to 0 no polar motion is included in the transformation. * + * REFERENCES: + *
      + *
    1. Kaplan, G. H. et. al. (1989). Astron. Journ. 97, 1197-1210.
    2. + *
    3. Kaplan, G. H. (2003), 'Another Look at Non-Rotating Origins', Proceedings of IAU XXV Joint Discussion 16.
    4. + *
    + * * @param jd_ut1_high [day] High-order part of UT1 Julian date. * @param jd_ut1_low [day] Low-order part of UT1 Julian date. * @param ut1_to_tt [s] TT - UT1 Time difference in seconds @@ -2374,7 +2405,7 @@ int cirs_to_itrs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum n */ int tod_to_itrs(double jd_ut1_high, double jd_ut1_low, double ut1_to_tt, enum novas_accuracy accuracy, double xp, double yp, const double *vec1, double *vec2) { - return cel2ter(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, NOVAS_CIRS, xp, yp, vec1, vec2); + return cel2ter(jd_ut1_high, jd_ut1_low, ut1_to_tt, EROT_ERA, accuracy, CELESTIAL_APPARENT, xp, yp, vec1, vec2); } /** @@ -5240,24 +5271,28 @@ int limb_angle(const double *pos_obj, const double *pos_obs, double *limb_ang, d * * @param location Pointer to structure containing observer's location. It may also contains weather * data (optional) for the observer's location. - * @param ref_option NOVAS_STANDARD_ATMOSPHERE (0), or NOVAS_WEATHER_AT_LOCATION (1) if to use the weather + * @param ref_option NOVAS_STANDARD_ATMOSPHERE (1), or NOVAS_WEATHER_AT_LOCATION (2) if to use the weather * values contained in the 'location' data structure. - * @param zd_calc [deg] Astrometric (unrefracted) zenith distance angle of the source. - * @return [deg] the calculated optical refraction. (to ~0.1 arcsec accuracy) + * @param zd_astro [deg] Astrometric (unrefracted) zenith distance angle of the source. + * @return [deg] the calculated optical refraction. (to ~0.1 arcsec accuracy), ot 0.0 if + * the location is NULL or the ref_option is invalid. * * @sa refract() * * @since 1.0 * @author Attila Kovacs */ -double refract_astro(const on_surface *location, enum novas_refraction_model ref_option, double zd_calc) { +double refract_astro(const on_surface *location, enum novas_refraction_model ref_option, double zd_astro) { double refr = 0.0; int i; + if(!location) return 0.0; + if(ref_option != NOVAS_STANDARD_ATMOSPHERE && ref_option != NOVAS_WEATHER_AT_LOCATION) return 0.0; + for(i = 0; i < 30; i++) { - double zd_obs = zd_calc - refr; + double zd_obs = zd_astro - refr; refr = refract(location, ref_option, zd_obs); - if(fabs(refr - (zd_calc - zd_obs)) < 3.0e-5) break; + if(fabs(refr - (zd_astro - zd_obs)) < 3.0e-5) break; } return refr; @@ -5280,10 +5315,11 @@ double refract_astro(const on_surface *location, enum novas_refraction_model ref * * @param location Pointer to structure containing observer's location. It may also contains weather * data (optional) for the observer's location. - * @param ref_option NOVAS_STANDARD_ATMOSPHERE (0), or NOVAS_WEATHER_AT_LOCATION (1) if to use the weather + * @param ref_option NOVAS_STANDARD_ATMOSPHERE (1), or NOVAS_WEATHER_AT_LOCATION (2) if to use the weather * values contained in the 'location' data structure. * @param zd_obs [deg] Observed (already refracted!) zenith distance through the armosphere. - * @return [deg] the calculated optical refraction. + * @return [deg] the calculated optical refraction or 0.0 if the location is NULL or the + * ref_option is invalid. * * @sa refract_astro() */ @@ -5292,6 +5328,9 @@ double refract(const on_surface *location, enum novas_refraction_model ref_optio const double s = 9.1e3; double p, t, h, r; + if(!location) return 0.0; + if(ref_option != NOVAS_STANDARD_ATMOSPHERE && ref_option != NOVAS_WEATHER_AT_LOCATION) return 0.0; + // Compute refraction only for zenith distances between 0.1 and 91 degrees. if((zd_obs < 0.1) || (zd_obs > 91.0)) return 0.0; @@ -5460,7 +5499,7 @@ short make_cat_entry(const char *star_name, const char *catalog, long star_num, * @param type The type of object. NOVAS_MAJOR_PLANET (0), NOVAS_MINOR_PLANET (1) or NOVAS_DISTANT_OBJECT (2) * @param number The novas ID number (for solar-system bodies only, otherwise ignored) * @param name The name of the object (case insensitive). It should be shorter than SIZE_OF_OBJ_NAME - * or else an error will be returned. + * or else an error will be returned. The name is converted to upper internally. * @param star_data Pointer to structure to populate with the catalog data for a celestial object located outside the solar system. Used only if type is NOVAS_DISTANT_OBJECT, otherwise ignored and can be NULL. * @param[out] cel_obj Pointer to the celestial object data structure to be populated. Used only if 'type' is NOVAS_MAJOR_PLANET or NOVAS_MINOR_PLANET, otherwise ignored and may be NULL. * @return 0 if successful, or else 1 if 'type' is invalid, 2 if 'number' is out of range, diff --git a/test/novasc3.1/cel2ter.out b/test/novasc3.1/cel2ter.out new file mode 100644 index 00000000..c43e9be8 --- /dev/null +++ b/test/novasc3.1/cel2ter.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: -0.935838202 -0.093233512 0.339874054 -0.935838202 -0.093233512 0.339874054 + +-10000.0 16-20 S2 O0 A0: -0.091982636 0.935627673 -0.340793270 -0.091982636 0.935627673 -0.340793270 + + 0.0 22+20 S2 O0 A0: 0.609782519 0.714977972 0.342011372 0.609782519 0.714977972 0.342011372 + + 0.0 16-20 S2 O0 A0: 0.714974915 -0.609801066 -0.341984692 0.714974915 -0.609801066 -0.341984692 + + 10000.0 22+20 S2 O0 A0: 0.055487012 -0.937259006 0.344189987 0.055487012 -0.937259006 0.344189987 + + 10000.0 16-20 S2 O0 A0: -0.937510307 -0.056762399 -0.343296453 -0.937510307 -0.056762399 -0.343296453 + + 10000.0 22+20 S2 O0 A0: 0.055487012 -0.937259006 0.344189987 0.055487012 -0.937259006 0.344189987 + + 10000.0 16-20 S2 O0 A0: -0.937510307 -0.056762399 -0.343296453 -0.937510307 -0.056762399 -0.343296453 + +-10000.0 22+20 S2 O0 A1: -0.935838 -0.093234 0.339874 -0.935838 -0.093234 0.339874 + +-10000.0 16-20 S2 O0 A1: -0.091983 0.935628 -0.340793 -0.091983 0.935628 -0.340793 + + 0.0 22+20 S2 O0 A1: 0.609783 0.714978 0.342011 0.609783 0.714978 0.342011 + + 0.0 16-20 S2 O0 A1: 0.714975 -0.609801 -0.341985 0.714975 -0.609801 -0.341985 + + 10000.0 22+20 S2 O0 A1: 0.055487 -0.937259 0.344190 0.055487 -0.937259 0.344190 + + 10000.0 16-20 S2 O0 A1: -0.937510 -0.056762 -0.343296 -0.937510 -0.056762 -0.343296 + + 10000.0 22+20 S2 O0 A1: 0.055487 -0.937259 0.344190 0.055487 -0.937259 0.344190 + + 10000.0 16-20 S2 O0 A1: -0.937510 -0.056762 -0.343296 -0.937510 -0.056762 -0.343296 diff --git a/test/novasc3.1/equ2ecl.out b/test/novasc3.1/equ2ecl.out new file mode 100644 index 00000000..57c3669b --- /dev/null +++ b/test/novasc3.1/equ2ecl.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: 340.074726 30.046968 340.075337 30.047351 340.072793 30.045749 + +-10000.0 16-20 S2 O0 A0: 241.974181 0.567960 241.974159 0.572097 241.974183 0.567964 + + 0.0 22+20 S2 O0 A0: 340.072789 30.045754 340.071917 30.045208 340.072793 30.045749 + + 0.0 16-20 S2 O0 A0: 241.974181 0.567960 241.974188 0.566545 241.974183 0.567964 + + 10000.0 22+20 S2 O0 A0: 340.070852 30.044540 340.071803 30.045136 340.072793 30.045749 + + 10000.0 16-20 S2 O0 A0: 241.974197 0.564815 241.974189 0.566359 241.974183 0.567964 + + 10000.0 22+20 S2 O0 A0: 340.070852 30.044540 340.071803 30.045136 340.072793 30.045749 + + 10000.0 16-20 S2 O0 A0: 241.974197 0.564815 241.974189 0.566359 241.974183 0.567964 + +-10000.0 22+20 S2 O0 A1: 340.074726 30.046968 340.075337 30.047351 340.072793 30.045749 + +-10000.0 16-20 S2 O0 A1: 241.974164 0.571104 241.974159 0.572097 241.974183 0.567964 + + 0.0 22+20 S2 O0 A1: 340.072789 30.045754 340.071917 30.045208 340.072793 30.045749 + + 0.0 16-20 S2 O0 A1: 241.974181 0.567960 241.974188 0.566545 241.974183 0.567964 + + 10000.0 22+20 S2 O0 A1: 340.070852 30.044540 340.071803 30.045136 340.072793 30.045749 + + 10000.0 16-20 S2 O0 A1: 241.974197 0.564815 241.974189 0.566359 241.974183 0.567964 + + 10000.0 22+20 S2 O0 A1: 340.070852 30.044540 340.071803 30.045136 340.072793 30.045749 + + 10000.0 16-20 S2 O0 A1: 241.974197 0.564815 241.974189 0.566359 241.974183 0.567964 diff --git a/test/novasc3.1/equ2gal.out b/test/novasc3.1/equ2gal.out new file mode 100644 index 00000000..c86be2d9 --- /dev/null +++ b/test/novasc3.1/equ2gal.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + +-10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 0.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 0.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + +-10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + +-10000.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 0.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 0.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A1: 352.071012 24.387655 diff --git a/test/novasc3.1/equ2hor-refract.out b/test/novasc3.1/equ2hor-refract.out new file mode 100644 index 00000000..c9bf1fd0 --- /dev/null +++ b/test/novasc3.1/equ2hor-refract.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A0: 60.200402 77.812648 21.998001 20.006084 + + 0.0 16-20 S2 O1 A0: 47.114316 213.442328 16.000697 -19.985117 + + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A1: 60.200402 77.812648 21.998001 20.006084 + + 0.0 16-20 S2 O1 A1: 47.114316 213.442328 16.000697 -19.985117 + + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/novasc3.1/equ2hor.out b/test/novasc3.1/equ2hor.out new file mode 100644 index 00000000..88452252 --- /dev/null +++ b/test/novasc3.1/equ2hor.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A0: 60.229234 77.812648 22.000000 20.000000 + + 0.0 16-20 S2 O1 A0: 47.132152 213.442328 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A1: 60.229234 77.812648 22.000000 20.000000 + + 0.0 16-20 S2 O1 A1: 47.132152 213.442328 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/novasc3.1/frame_tie.out b/test/novasc3.1/frame_tie.out index 749bf6a2..4e298b10 100644 --- a/test/novasc3.1/frame_tie.out +++ b/test/novasc3.1/frame_tie.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 --10000.0 SUN S0 O0 A0: -0.002224780 0.916089503 0.400967670 - --10000.0 SUN S0 O1 A0: -0.002224780 0.916089503 0.400967670 - --10000.0 SUN S0 O2 A0: -0.002224780 0.916089503 0.400967670 - --10000.0 EARTH S0 O0 A0: 0.801881661 -0.548172434 -0.237682108 - --10000.0 EARTH S0 O1 A0: 0.801881661 -0.548172434 -0.237682108 - --10000.0 EARTH S0 O2 A0: 0.801881661 -0.548172434 -0.237682108 - 0.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 0.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 0.0 SUN S0 O0 A0: -0.930944085 -0.344821932 -0.120170486 - - 0.0 SUN S0 O1 A0: -0.930944085 -0.344821932 -0.120170486 - - 0.0 SUN S0 O2 A0: -0.930944085 -0.344821932 -0.120170486 - - 0.0 EARTH S0 O0 A0: -0.187669218 0.901096981 0.390902155 - - 0.0 EARTH S0 O1 A0: -0.187669218 0.901096981 0.390902155 - - 0.0 EARTH S0 O2 A0: -0.187669218 0.901096981 0.390902155 - 10000.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 10000.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 10000.0 SUN S0 O0 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 SUN S0 O1 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 SUN S0 O2 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 EARTH S0 O0 A0: -0.529131424 -0.778568460 -0.337418272 - - 10000.0 EARTH S0 O1 A0: -0.529131424 -0.778568460 -0.337418272 - - 10000.0 EARTH S0 O2 A0: -0.529131424 -0.778568460 -0.337418272 - 10000.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 10000.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 10000.0 SUN S0 O0 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 SUN S0 O1 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 SUN S0 O2 A0: -0.002282973 -0.923499521 -0.383592781 - - 10000.0 EARTH S0 O0 A0: -0.529131424 -0.778568460 -0.337418272 - - 10000.0 EARTH S0 O1 A0: -0.529131424 -0.778568460 -0.337418272 - - 10000.0 EARTH S0 O2 A0: -0.529131424 -0.778568460 -0.337418272 - -10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 -10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 --10000.0 SUN S0 O0 A1: -0.002225 0.916090 0.400968 - --10000.0 SUN S0 O1 A1: -0.002225 0.916090 0.400968 - --10000.0 SUN S0 O2 A1: -0.002225 0.916090 0.400968 - --10000.0 EARTH S0 O0 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O1 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801882 -0.548172 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778568 -0.337418 - 10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469846 -0.813798 -0.342020 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778568 -0.337418 diff --git a/test/novasc3.1/grav_def.out b/test/novasc3.1/grav_def.out index 43c2e61a..d749454a 100644 --- a/test/novasc3.1/grav_def.out +++ b/test/novasc3.1/grav_def.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: ERROR 13 --10000.0 SUN S0 O0 A0: ERROR 13 - --10000.0 SUN S0 O1 A0: ERROR 13 - --10000.0 SUN S0 O2 A0: ERROR 13 - --10000.0 EARTH S0 O0 A0: ERROR 13 - --10000.0 EARTH S0 O1 A0: ERROR 13 - --10000.0 EARTH S0 O2 A0: ERROR 13 - 0.0 22+20 S2 O0 A0: ERROR 13 0.0 22+20 S2 O1 A0: ERROR 13 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: ERROR 13 - 0.0 SUN S0 O0 A0: ERROR 13 - - 0.0 SUN S0 O1 A0: ERROR 13 - - 0.0 SUN S0 O2 A0: ERROR 13 - - 0.0 EARTH S0 O0 A0: ERROR 13 - - 0.0 EARTH S0 O1 A0: ERROR 13 - - 0.0 EARTH S0 O2 A0: ERROR 13 - 10000.0 22+20 S2 O0 A0: ERROR 13 10000.0 22+20 S2 O1 A0: ERROR 13 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: ERROR 13 - 10000.0 SUN S0 O0 A0: ERROR 13 - - 10000.0 SUN S0 O1 A0: ERROR 13 - - 10000.0 SUN S0 O2 A0: ERROR 13 - - 10000.0 EARTH S0 O0 A0: ERROR 13 - - 10000.0 EARTH S0 O1 A0: ERROR 13 - - 10000.0 EARTH S0 O2 A0: ERROR 13 - 10000.0 22+20 S2 O0 A0: ERROR 13 10000.0 22+20 S2 O1 A0: ERROR 13 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: ERROR 13 - 10000.0 SUN S0 O0 A0: ERROR 13 - - 10000.0 SUN S0 O1 A0: ERROR 13 - - 10000.0 SUN S0 O2 A0: ERROR 13 - - 10000.0 EARTH S0 O0 A0: ERROR 13 - - 10000.0 EARTH S0 O1 A0: ERROR 13 - - 10000.0 EARTH S0 O2 A0: ERROR 13 - -10000.0 22+20 S2 O0 A1: 0.813797 -0.469849 0.342018 -10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 --10000.0 SUN S0 O0 A1: -0.002225 0.916090 0.400968 - --10000.0 SUN S0 O1 A1: -0.002225 0.916090 0.400968 - --10000.0 SUN S0 O2 A1: -0.002225 0.916090 0.400968 - --10000.0 EARTH S0 O0 A1: 0.801880 -0.548174 -0.237683 - --10000.0 EARTH S0 O1 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801882 -0.548172 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469845 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187667 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.813799 -0.469841 0.342023 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529145 -0.778561 -0.337415 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778569 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778569 -0.337418 - 10000.0 22+20 S2 O0 A1: 0.813799 -0.469841 0.342023 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469846 -0.813798 -0.342020 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529145 -0.778561 -0.337415 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778569 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778569 -0.337418 diff --git a/test/novasc3.1/place.out b/test/novasc3.1/place.out index 072cad8c..f6e79699 100644 --- a/test/novasc3.1/place.out +++ b/test/novasc3.1/place.out @@ -217,10 +217,10 @@ 0.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 0.0 EARTH S0 O2 A1: 0 13.113551 -5.473370 0.000001 9.534761 - 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471430 0.000001 9.534761 - 0.0 EARTH S0 O2 A1: 2 13.113558 -5.471430 0.000001 9.534761 - 0.0 EARTH S0 O2 A1: 3 13.113562 -5.473327 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 0 13.113551 -5.473369 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471429 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 2 13.113558 -5.471429 0.000001 9.534761 + 0.0 EARTH S0 O2 A1: 3 13.113562 -5.473326 0.000001 9.534761 0.0 EARTH S0 O2 A1: 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.844753 @@ -281,10 +281,10 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323631 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 1 13.113311 -5.471371 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471371 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321903 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323630 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321902 0.000001 9.534770 10000.0 EARTH S0 O2 A1: 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.844753 @@ -345,8 +345,8 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323631 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 1 13.113311 -5.471371 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471371 0.000001 9.534770 - 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321903 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323630 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471370 0.000001 9.534770 + 10000.0 EARTH S0 O2 A1: 3 13.089174 -5.321902 0.000001 9.534770 10000.0 EARTH S0 O2 A1: diff --git a/test/novasc3.1/precession.out b/test/novasc3.1/precession.out index a3fd9c64..dad48053 100644 --- a/test/novasc3.1/precession.out +++ b/test/novasc3.1/precession.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.463944364 -0.816655773 -0.343262256 --10000.0 SUN S0 O0 A0: -0.008899235 0.916055482 0.400952811 - --10000.0 SUN S0 O1 A0: -0.008899235 0.916055482 0.400952811 - --10000.0 SUN S0 O2 A0: -0.008899235 0.916055482 0.400952811 - --10000.0 EARTH S0 O0 A0: 0.805851724 -0.543251557 -0.235543509 - --10000.0 EARTH S0 O1 A0: 0.805851724 -0.543251557 -0.235543509 - --10000.0 EARTH S0 O2 A0: 0.805851724 -0.543251557 -0.235543509 - 0.0 22+20 S2 O0 A0: 0.813797681 -0.469846310 0.342020143 0.0 22+20 S2 O1 A0: 0.813797681 -0.469846310 0.342020143 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469846310 -0.813797681 -0.342020143 - 0.0 SUN S0 O0 A0: -0.930944070 -0.344822002 -0.120170400 - - 0.0 SUN S0 O1 A0: -0.930944070 -0.344822002 -0.120170400 - - 0.0 SUN S0 O2 A0: -0.930944070 -0.344822002 -0.120170400 - - 0.0 EARTH S0 O0 A0: -0.187669250 0.901096981 0.390902140 - - 0.0 EARTH S0 O1 A0: -0.187669250 0.901096981 0.390902140 - - 0.0 EARTH S0 O2 A0: -0.187669250 0.901096981 0.390902140 - 10000.0 22+20 S2 O0 A0: 0.811812765 -0.474822696 0.339857974 10000.0 22+20 S2 O1 A0: 0.811812765 -0.474822696 0.339857974 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.475728039 -0.810903045 -0.340762504 - 10000.0 SUN S0 O0 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 SUN S0 O1 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 SUN S0 O2 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 EARTH S0 O0 A0: -0.534783875 -0.775311603 -0.336003162 - - 10000.0 EARTH S0 O1 A0: -0.534783875 -0.775311603 -0.336003162 - - 10000.0 EARTH S0 O2 A0: -0.534783875 -0.775311603 -0.336003162 - 10000.0 22+20 S2 O0 A0: 0.811812765 -0.474822696 0.339857974 10000.0 22+20 S2 O1 A0: 0.811812765 -0.474822696 0.339857974 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.475728039 -0.810903045 -0.340762504 - 10000.0 SUN S0 O0 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 SUN S0 O1 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 SUN S0 O2 A0: -0.008957310 -0.923465112 -0.383577832 - - 10000.0 EARTH S0 O0 A0: -0.534783875 -0.775311603 -0.336003162 - - 10000.0 EARTH S0 O1 A0: -0.534783875 -0.775311603 -0.336003162 - - 10000.0 EARTH S0 O2 A0: -0.534783875 -0.775311603 -0.336003162 - -10000.0 22+20 S2 O0 A1: 0.815746 -0.464859 0.344188 -10000.0 22+20 S2 O1 A1: 0.815746 -0.464859 0.344188 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.463944 -0.816656 -0.343262 --10000.0 SUN S0 O0 A1: -0.008899 0.916055 0.400953 - --10000.0 SUN S0 O1 A1: -0.008899 0.916055 0.400953 - --10000.0 SUN S0 O2 A1: -0.008899 0.916055 0.400953 - --10000.0 EARTH S0 O0 A1: 0.805852 -0.543252 -0.235544 - --10000.0 EARTH S0 O1 A1: 0.805852 -0.543252 -0.235544 - --10000.0 EARTH S0 O2 A1: 0.805852 -0.543252 -0.235544 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.811813 -0.474823 0.339858 10000.0 22+20 S2 O1 A1: 0.811813 -0.474823 0.339858 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.475728 -0.810903 -0.340763 - 10000.0 SUN S0 O0 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O1 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O2 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 EARTH S0 O0 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O1 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O2 A1: -0.534784 -0.775312 -0.336003 - 10000.0 22+20 S2 O0 A1: 0.811813 -0.474823 0.339858 10000.0 22+20 S2 O1 A1: 0.811813 -0.474823 0.339858 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.475728 -0.810903 -0.340763 10000.0 16-20 S2 O2 A1: -0.475728 -0.810903 -0.340763 - - 10000.0 SUN S0 O0 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O1 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O2 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 EARTH S0 O0 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O1 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O2 A1: -0.534784 -0.775312 -0.336003 diff --git a/test/novasc3.1/refract.out b/test/novasc3.1/refract.out new file mode 100644 index 00000000..5e8b9043 --- /dev/null +++ b/test/novasc3.1/refract.out @@ -0,0 +1 @@ + 0.355146 0.436021 diff --git a/test/novasc3.1/ter2cel.out b/test/novasc3.1/ter2cel.out new file mode 100644 index 00000000..fa406f52 --- /dev/null +++ b/test/novasc3.1/ter2cel.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: -0.388158782 0.856188052 0.340990879 -0.388158782 0.856188052 0.340990879 + +-10000.0 16-20 S2 O0 A0: 0.857080260 0.387257004 -0.339772632 0.857080260 0.387257004 -0.339772632 + + 0.0 22+20 S2 O0 A0: -0.314293815 -0.885587023 0.341986874 -0.314293815 -0.885587023 0.341986874 + + 0.0 16-20 S2 O0 A0: -0.885568229 0.314294178 -0.342035204 -0.885568229 0.314294178 -0.342035204 + + 10000.0 22+20 S2 O0 A0: 0.841265068 0.420521494 0.339756911 0.841265068 0.420521494 0.339756911 + + 10000.0 16-20 S2 O0 A0: 0.419595615 -0.840358868 -0.343127518 0.419595615 -0.840358868 -0.343127518 + + 10000.0 22+20 S2 O0 A0: 0.841265068 0.420521494 0.339756911 0.841265068 0.420521494 0.339756911 + + 10000.0 16-20 S2 O0 A0: 0.419595615 -0.840358868 -0.343127518 0.419595615 -0.840358868 -0.343127518 + +-10000.0 22+20 S2 O0 A1: -0.388159 0.856188 0.340991 -0.388159 0.856188 0.340991 + +-10000.0 16-20 S2 O0 A1: 0.857080 0.387257 -0.339773 0.857080 0.387257 -0.339773 + + 0.0 22+20 S2 O0 A1: -0.314294 -0.885587 0.341987 -0.314294 -0.885587 0.341987 + + 0.0 16-20 S2 O0 A1: -0.885568 0.314294 -0.342035 -0.885568 0.314294 -0.342035 + + 10000.0 22+20 S2 O0 A1: 0.841265 0.420521 0.339757 0.841265 0.420521 0.339757 + + 10000.0 16-20 S2 O0 A1: 0.419596 -0.840359 -0.343128 0.419596 -0.840359 -0.343128 + + 10000.0 22+20 S2 O0 A1: 0.841265 0.420521 0.339757 0.841265 0.420521 0.339757 + + 10000.0 16-20 S2 O0 A1: 0.419596 -0.840359 -0.343128 0.419596 -0.840359 -0.343128 diff --git a/test/novasc3.1/wobble.out b/test/novasc3.1/wobble.out index 0d2273f3..78468f2d 100644 --- a/test/novasc3.1/wobble.out +++ b/test/novasc3.1/wobble.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 --10000.0 SUN S0 O0 A0: -0.002228700 0.916083684 0.400980942 - --10000.0 SUN S0 O1 A0: -0.002228700 0.916083684 0.400980942 - --10000.0 SUN S0 O2 A0: -0.002228700 0.916083684 0.400980942 - --10000.0 EARTH S0 O0 A0: 0.801883986 -0.548168928 -0.237682352 - --10000.0 EARTH S0 O1 A0: 0.801883986 -0.548168928 -0.237682352 - --10000.0 EARTH S0 O2 A0: 0.801883986 -0.548168928 -0.237682352 - 0.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 0.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 0.0 SUN S0 O0 A0: -0.930942905 -0.344820254 -0.120184442 - - 0.0 SUN S0 O1 A0: -0.930942905 -0.344820254 -0.120184442 - - 0.0 SUN S0 O2 A0: -0.930942905 -0.344820254 -0.120184442 - - 0.0 EARTH S0 O0 A0: -0.187673041 0.901091296 0.390913426 - - 0.0 EARTH S0 O1 A0: -0.187673041 0.901091296 0.390913426 - - 0.0 EARTH S0 O2 A0: -0.187673041 0.901091296 0.390913426 - 10000.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 10000.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 10000.0 SUN S0 O0 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 SUN S0 O1 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 SUN S0 O2 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 EARTH S0 O0 A0: -0.529128124 -0.778563601 -0.337434658 - - 10000.0 EARTH S0 O1 A0: -0.529128124 -0.778563601 -0.337434658 - - 10000.0 EARTH S0 O2 A0: -0.529128124 -0.778563601 -0.337434658 - 10000.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 10000.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 10000.0 SUN S0 O0 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 SUN S0 O1 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 SUN S0 O2 A0: -0.002279219 -0.923493955 -0.383606204 - - 10000.0 EARTH S0 O0 A0: -0.529128124 -0.778563601 -0.337434658 - - 10000.0 EARTH S0 O1 A0: -0.529128124 -0.778563601 -0.337434658 - - 10000.0 EARTH S0 O2 A0: -0.529128124 -0.778563601 -0.337434658 - -10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 -10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 --10000.0 SUN S0 O0 A1: -0.002229 0.916084 0.400981 - --10000.0 SUN S0 O1 A1: -0.002229 0.916084 0.400981 - --10000.0 SUN S0 O2 A1: -0.002229 0.916084 0.400981 - --10000.0 EARTH S0 O0 A1: 0.801884 -0.548169 -0.237682 - --10000.0 EARTH S0 O1 A1: 0.801884 -0.548169 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801884 -0.548169 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 0.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - 0.0 SUN S0 O0 A1: -0.930943 -0.344820 -0.120184 - - 0.0 SUN S0 O1 A1: -0.930943 -0.344820 -0.120184 - - 0.0 SUN S0 O2 A1: -0.930943 -0.344820 -0.120184 - - 0.0 EARTH S0 O0 A1: -0.187673 0.901091 0.390913 - - 0.0 EARTH S0 O1 A1: -0.187673 0.901091 0.390913 - - 0.0 EARTH S0 O2 A1: -0.187673 0.901091 0.390913 - 10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - 10000.0 SUN S0 O0 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O1 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O2 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 EARTH S0 O0 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O1 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O2 A1: -0.529128 -0.778564 -0.337435 - 10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469843 -0.813793 -0.342037 10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - - 10000.0 SUN S0 O0 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O1 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O2 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 EARTH S0 O0 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O1 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O2 A1: -0.529128 -0.778564 -0.337435 diff --git a/test/reference/cel2ter.out b/test/reference/cel2ter.out new file mode 100644 index 00000000..71f6c8af --- /dev/null +++ b/test/reference/cel2ter.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: -0.935838184 -0.093233329 0.339874154 -0.935838184 -0.093233329 0.339874154 + +-10000.0 16-20 S2 O0 A0: -0.091982535 0.935627635 -0.340793399 -0.091982535 0.935627635 -0.340793399 + + 0.0 22+20 S2 O0 A0: 0.609782633 0.714977827 0.342011472 0.609782633 0.714977827 0.342011472 + + 0.0 16-20 S2 O0 A0: 0.714974817 -0.609801109 -0.341984822 0.714974817 -0.609801109 -0.341984822 + + 10000.0 22+20 S2 O0 A0: 0.055486830 -0.937258980 0.344190086 0.055486830 -0.937258980 0.344190086 + + 10000.0 16-20 S2 O0 A0: -0.937510265 -0.056762300 -0.343296583 -0.937510265 -0.056762300 -0.343296583 + + 10000.0 22+20 S2 O0 A0: 0.055486830 -0.937258980 0.344190086 0.055486830 -0.937258980 0.344190086 + + 10000.0 16-20 S2 O0 A0: -0.937510265 -0.056762300 -0.343296583 -0.937510265 -0.056762300 -0.343296583 + +-10000.0 22+20 S2 O0 A1: -0.935838 -0.093233 0.339874 -0.935838 -0.093233 0.339874 + +-10000.0 16-20 S2 O0 A1: -0.091983 0.935628 -0.340793 -0.091983 0.935628 -0.340793 + + 0.0 22+20 S2 O0 A1: 0.609783 0.714978 0.342011 0.609783 0.714978 0.342011 + + 0.0 16-20 S2 O0 A1: 0.714975 -0.609801 -0.341985 0.714975 -0.609801 -0.341985 + + 10000.0 22+20 S2 O0 A1: 0.055487 -0.937259 0.344190 0.055487 -0.937259 0.344190 + + 10000.0 16-20 S2 O0 A1: -0.937510 -0.056762 -0.343297 -0.937510 -0.056762 -0.343297 + + 10000.0 22+20 S2 O0 A1: 0.055487 -0.937259 0.344190 0.055487 -0.937259 0.344190 + + 10000.0 16-20 S2 O0 A1: -0.937510 -0.056762 -0.343297 -0.937510 -0.056762 -0.343297 diff --git a/test/reference/equ2ecl.out b/test/reference/equ2ecl.out new file mode 100644 index 00000000..8ef46a34 --- /dev/null +++ b/test/reference/equ2ecl.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: 340.074726 30.046968 340.075337 30.047351 340.072785 30.045759 + +-10000.0 16-20 S2 O0 A0: 241.974181 0.567960 241.974159 0.572097 241.974179 0.567955 + + 0.0 22+20 S2 O0 A0: 340.072789 30.045754 340.071917 30.045208 340.072785 30.045759 + + 0.0 16-20 S2 O0 A0: 241.974181 0.567960 241.974188 0.566545 241.974179 0.567955 + + 10000.0 22+20 S2 O0 A0: 340.070852 30.044540 340.071803 30.045136 340.072785 30.045759 + + 10000.0 16-20 S2 O0 A0: 241.974197 0.564815 241.974189 0.566359 241.974179 0.567955 + + 10000.0 22+20 S2 O0 A0: 340.070852 30.044540 340.071803 30.045136 340.072785 30.045759 + + 10000.0 16-20 S2 O0 A0: 241.974197 0.564815 241.974189 0.566359 241.974179 0.567955 + +-10000.0 22+20 S2 O0 A1: 340.074726 30.046968 340.075337 30.047351 340.072785 30.045759 + +-10000.0 16-20 S2 O0 A1: 241.974164 0.571104 241.974159 0.572097 241.974179 0.567955 + + 0.0 22+20 S2 O0 A1: 340.072789 30.045754 340.071917 30.045208 340.072785 30.045759 + + 0.0 16-20 S2 O0 A1: 241.974181 0.567960 241.974188 0.566545 241.974179 0.567955 + + 10000.0 22+20 S2 O0 A1: 340.070852 30.044540 340.071803 30.045136 340.072785 30.045759 + + 10000.0 16-20 S2 O0 A1: 241.974197 0.564815 241.974189 0.566359 241.974179 0.567955 + + 10000.0 22+20 S2 O0 A1: 340.070852 30.044540 340.071803 30.045136 340.072785 30.045759 + + 10000.0 16-20 S2 O0 A1: 241.974197 0.564815 241.974189 0.566359 241.974179 0.567955 diff --git a/test/reference/equ2gal.out b/test/reference/equ2gal.out new file mode 100644 index 00000000..c86be2d9 --- /dev/null +++ b/test/reference/equ2gal.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + +-10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 0.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 0.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A0: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A0: 352.071012 24.387655 + +-10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + +-10000.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 0.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 0.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A1: 352.071012 24.387655 + + 10000.0 22+20 S2 O0 A1: 76.989060 -27.199078 + + 10000.0 16-20 S2 O0 A1: 352.071012 24.387655 diff --git a/test/reference/equ2hor-refract.out b/test/reference/equ2hor-refract.out new file mode 100644 index 00000000..c9bf1fd0 --- /dev/null +++ b/test/reference/equ2hor-refract.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A0: 60.200402 77.812648 21.998001 20.006084 + + 0.0 16-20 S2 O1 A0: 47.114316 213.442328 16.000697 -19.985117 + + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A1: 60.200402 77.812648 21.998001 20.006084 + + 0.0 16-20 S2 O1 A1: 47.114316 213.442328 16.000697 -19.985117 + + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.958900 283.939460 22.002662 20.009308 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/reference/equ2hor.out b/test/reference/equ2hor.out new file mode 100644 index 00000000..88452252 --- /dev/null +++ b/test/reference/equ2hor.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O1 A0: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A0: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A0: 60.229234 77.812648 22.000000 20.000000 + + 0.0 16-20 S2 O1 A0: 47.132152 213.442328 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A0: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A0: 163.034601 266.888368 16.000000 -20.000000 + +-10000.0 22+20 S2 O1 A1: 135.019352 331.536703 22.000000 20.000000 + +-10000.0 16-20 S2 O1 A1: 115.693174 103.225975 16.000000 -20.000000 + + 0.0 22+20 S2 O1 A1: 60.229234 77.812648 22.000000 20.000000 + + 0.0 16-20 S2 O1 A1: 47.132152 213.442328 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 + + 10000.0 22+20 S2 O1 A1: 66.997559 283.939460 22.000000 20.000000 + + 10000.0 16-20 S2 O1 A1: 163.034601 266.888368 16.000000 -20.000000 diff --git a/test/reference/frame_tie.out b/test/reference/frame_tie.out index c8b8149b..4e298b10 100644 --- a/test/reference/frame_tie.out +++ b/test/reference/frame_tie.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 --10000.0 SUN S0 O0 A0: -0.002224351 0.916089507 0.400967664 - --10000.0 SUN S0 O1 A0: -0.002224351 0.916089507 0.400967664 - --10000.0 SUN S0 O2 A0: -0.002224351 0.916089507 0.400967664 - --10000.0 EARTH S0 O0 A0: 0.801881629 -0.548172474 -0.237682125 - --10000.0 EARTH S0 O1 A0: 0.801881629 -0.548172474 -0.237682125 - --10000.0 EARTH S0 O2 A0: 0.801881629 -0.548172474 -0.237682125 - 0.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 0.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 0.0 SUN S0 O0 A0: -0.930944078 -0.344821950 -0.120170493 - - 0.0 SUN S0 O1 A0: -0.930944078 -0.344821950 -0.120170493 - - 0.0 SUN S0 O2 A0: -0.930944078 -0.344821950 -0.120170493 - - 0.0 EARTH S0 O0 A0: -0.187669221 0.901096981 0.390902155 - - 0.0 EARTH S0 O1 A0: -0.187669221 0.901096981 0.390902155 - - 0.0 EARTH S0 O2 A0: -0.187669221 0.901096981 0.390902155 - 10000.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 10000.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 10000.0 SUN S0 O0 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 SUN S0 O1 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 SUN S0 O2 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 EARTH S0 O0 A0: -0.529131372 -0.778568489 -0.337418285 - - 10000.0 EARTH S0 O1 A0: -0.529131372 -0.778568489 -0.337418285 - - 10000.0 EARTH S0 O2 A0: -0.529131372 -0.778568489 -0.337418285 - 10000.0 22+20 S2 O0 A0: 0.813797621 -0.469846379 0.342020193 10000.0 22+20 S2 O1 A0: 0.813797621 -0.469846379 0.342020193 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.469846340 -0.813797637 -0.342020208 - 10000.0 SUN S0 O0 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 SUN S0 O1 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 SUN S0 O2 A0: -0.002282676 -0.923499522 -0.383592783 - - 10000.0 EARTH S0 O0 A0: -0.529131372 -0.778568489 -0.337418285 - - 10000.0 EARTH S0 O1 A0: -0.529131372 -0.778568489 -0.337418285 - - 10000.0 EARTH S0 O2 A0: -0.529131372 -0.778568489 -0.337418285 - -10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 -10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 --10000.0 SUN S0 O0 A1: -0.002224 0.916090 0.400968 - --10000.0 SUN S0 O1 A1: -0.002224 0.916090 0.400968 - --10000.0 SUN S0 O2 A1: -0.002224 0.916090 0.400968 - --10000.0 EARTH S0 O0 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O1 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801882 -0.548172 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778568 -0.337418 - 10000.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469846 -0.813798 -0.342020 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778568 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778568 -0.337418 diff --git a/test/reference/grav_def.out b/test/reference/grav_def.out index 52728923..d749454a 100644 --- a/test/reference/grav_def.out +++ b/test/reference/grav_def.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: ERROR 13 --10000.0 SUN S0 O0 A0: ERROR 13 - --10000.0 SUN S0 O1 A0: ERROR 13 - --10000.0 SUN S0 O2 A0: ERROR 13 - --10000.0 EARTH S0 O0 A0: ERROR 13 - --10000.0 EARTH S0 O1 A0: ERROR 13 - --10000.0 EARTH S0 O2 A0: ERROR 13 - 0.0 22+20 S2 O0 A0: ERROR 13 0.0 22+20 S2 O1 A0: ERROR 13 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: ERROR 13 - 0.0 SUN S0 O0 A0: ERROR 13 - - 0.0 SUN S0 O1 A0: ERROR 13 - - 0.0 SUN S0 O2 A0: ERROR 13 - - 0.0 EARTH S0 O0 A0: ERROR 13 - - 0.0 EARTH S0 O1 A0: ERROR 13 - - 0.0 EARTH S0 O2 A0: ERROR 13 - 10000.0 22+20 S2 O0 A0: ERROR 13 10000.0 22+20 S2 O1 A0: ERROR 13 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: ERROR 13 - 10000.0 SUN S0 O0 A0: ERROR 13 - - 10000.0 SUN S0 O1 A0: ERROR 13 - - 10000.0 SUN S0 O2 A0: ERROR 13 - - 10000.0 EARTH S0 O0 A0: ERROR 13 - - 10000.0 EARTH S0 O1 A0: ERROR 13 - - 10000.0 EARTH S0 O2 A0: ERROR 13 - 10000.0 22+20 S2 O0 A0: ERROR 13 10000.0 22+20 S2 O1 A0: ERROR 13 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: ERROR 13 - 10000.0 SUN S0 O0 A0: ERROR 13 - - 10000.0 SUN S0 O1 A0: ERROR 13 - - 10000.0 SUN S0 O2 A0: ERROR 13 - - 10000.0 EARTH S0 O0 A0: ERROR 13 - - 10000.0 EARTH S0 O1 A0: ERROR 13 - - 10000.0 EARTH S0 O2 A0: ERROR 13 - -10000.0 22+20 S2 O0 A1: 0.813797 -0.469849 0.342018 -10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 --10000.0 SUN S0 O0 A1: -0.002224 0.916090 0.400968 - --10000.0 SUN S0 O1 A1: -0.002224 0.916090 0.400968 - --10000.0 SUN S0 O2 A1: -0.002224 0.916090 0.400968 - --10000.0 EARTH S0 O0 A1: 0.801880 -0.548174 -0.237683 - --10000.0 EARTH S0 O1 A1: 0.801882 -0.548172 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801882 -0.548172 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469845 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187667 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.813799 -0.469841 0.342023 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529145 -0.778561 -0.337415 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778569 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778569 -0.337418 - 10000.0 22+20 S2 O0 A1: 0.813799 -0.469841 0.342023 10000.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469846 -0.813798 -0.342020 10000.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - - 10000.0 SUN S0 O0 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O1 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 SUN S0 O2 A1: -0.002283 -0.923500 -0.383593 - - 10000.0 EARTH S0 O0 A1: -0.529145 -0.778561 -0.337415 - - 10000.0 EARTH S0 O1 A1: -0.529131 -0.778569 -0.337418 - - 10000.0 EARTH S0 O2 A1: -0.529131 -0.778569 -0.337418 diff --git a/test/reference/place.out b/test/reference/place.out index c696eddc..a3aac94c 100644 --- a/test/reference/place.out +++ b/test/reference/place.out @@ -156,7 +156,7 @@ -10000.0 EARTH S0 O2 A1: 0 13.136720 -5.615274 0.000001 10.250465 -10000.0 EARTH S0 O2 A1: 1 13.113327 -5.471472 0.000001 10.250465 -10000.0 EARTH S0 O2 A1: 2 13.136430 -5.471434 0.000001 10.250465 --10000.0 EARTH S0 O2 A1: 3 13.136885 -5.616465 0.000001 10.250323 +-10000.0 EARTH S0 O2 A1: 3 13.136884 -5.616465 0.000001 10.250323 -10000.0 EARTH S0 O2 A1: 0.0 22+20 S2 O0 A1: 0 21.999739 20.001131 0.000000 32.618201 @@ -217,10 +217,10 @@ 0.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 0.0 EARTH S0 O2 A1: 0 13.113552 -5.473360 0.000001 9.917767 - 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471430 0.000001 9.917767 - 0.0 EARTH S0 O2 A1: 2 13.113558 -5.471430 0.000001 9.917767 - 0.0 EARTH S0 O2 A1: 3 13.113563 -5.473317 0.000001 9.917759 + 0.0 EARTH S0 O2 A1: 0 13.113552 -5.473365 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 1 13.113322 -5.471435 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 2 13.113559 -5.471435 0.000001 9.917766 + 0.0 EARTH S0 O2 A1: 3 13.113564 -5.473322 0.000001 9.917759 0.0 EARTH S0 O2 A1: 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.845488 @@ -281,10 +281,10 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323620 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471371 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471332 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321893 0.000001 10.212103 + 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323619 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471369 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471330 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321891 0.000001 10.212103 10000.0 EARTH S0 O2 A1: 10000.0 22+20 S2 O0 A1: 0 21.999998 19.996969 0.000000 -14.845488 @@ -345,8 +345,8 @@ 10000.0 EARTH S0 O1 A1: ERROR 3 ERROR 3 ERROR 3 ERROR 3 - 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323620 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471371 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471332 0.000001 10.211847 - 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321893 0.000001 10.212103 + 10000.0 EARTH S0 O2 A1: 0 13.089480 -5.323619 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 1 13.113310 -5.471369 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 2 13.089744 -5.471330 0.000001 10.211847 + 10000.0 EARTH S0 O2 A1: 3 13.089175 -5.321891 0.000001 10.212103 10000.0 EARTH S0 O2 A1: diff --git a/test/reference/precession.out b/test/reference/precession.out index 24661b84..dad48053 100644 --- a/test/reference/precession.out +++ b/test/reference/precession.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.463944364 -0.816655773 -0.343262256 --10000.0 SUN S0 O0 A0: -0.008898806 0.916055489 0.400952806 - --10000.0 SUN S0 O1 A0: -0.008898806 0.916055489 0.400952806 - --10000.0 SUN S0 O2 A0: -0.008898806 0.916055489 0.400952806 - --10000.0 EARTH S0 O0 A0: 0.805851692 -0.543251598 -0.235543526 - --10000.0 EARTH S0 O1 A0: 0.805851692 -0.543251598 -0.235543526 - --10000.0 EARTH S0 O2 A0: 0.805851692 -0.543251598 -0.235543526 - 0.0 22+20 S2 O0 A0: 0.813797681 -0.469846310 0.342020143 0.0 22+20 S2 O1 A0: 0.813797681 -0.469846310 0.342020143 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469846310 -0.813797681 -0.342020143 - 0.0 SUN S0 O0 A0: -0.930944063 -0.344822020 -0.120170407 - - 0.0 SUN S0 O1 A0: -0.930944063 -0.344822020 -0.120170407 - - 0.0 SUN S0 O2 A0: -0.930944063 -0.344822020 -0.120170407 - - 0.0 EARTH S0 O0 A0: -0.187669253 0.901096981 0.390902140 - - 0.0 EARTH S0 O1 A0: -0.187669253 0.901096981 0.390902140 - - 0.0 EARTH S0 O2 A0: -0.187669253 0.901096981 0.390902140 - 10000.0 22+20 S2 O0 A0: 0.811812765 -0.474822696 0.339857974 10000.0 22+20 S2 O1 A0: 0.811812765 -0.474822696 0.339857974 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.475728039 -0.810903045 -0.340762504 - 10000.0 SUN S0 O0 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 SUN S0 O1 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 SUN S0 O2 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 EARTH S0 O0 A0: -0.534783824 -0.775311633 -0.336003175 - - 10000.0 EARTH S0 O1 A0: -0.534783824 -0.775311633 -0.336003175 - - 10000.0 EARTH S0 O2 A0: -0.534783824 -0.775311633 -0.336003175 - 10000.0 22+20 S2 O0 A0: 0.811812765 -0.474822696 0.339857974 10000.0 22+20 S2 O1 A0: 0.811812765 -0.474822696 0.339857974 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.475728039 -0.810903045 -0.340762504 - 10000.0 SUN S0 O0 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 SUN S0 O1 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 SUN S0 O2 A0: -0.008957013 -0.923465114 -0.383577834 - - 10000.0 EARTH S0 O0 A0: -0.534783824 -0.775311633 -0.336003175 - - 10000.0 EARTH S0 O1 A0: -0.534783824 -0.775311633 -0.336003175 - - 10000.0 EARTH S0 O2 A0: -0.534783824 -0.775311633 -0.336003175 - -10000.0 22+20 S2 O0 A1: 0.815746 -0.464859 0.344188 -10000.0 22+20 S2 O1 A1: 0.815746 -0.464859 0.344188 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.463944 -0.816656 -0.343262 --10000.0 SUN S0 O0 A1: -0.008899 0.916055 0.400953 - --10000.0 SUN S0 O1 A1: -0.008899 0.916055 0.400953 - --10000.0 SUN S0 O2 A1: -0.008899 0.916055 0.400953 - --10000.0 EARTH S0 O0 A1: 0.805852 -0.543252 -0.235544 - --10000.0 EARTH S0 O1 A1: 0.805852 -0.543252 -0.235544 - --10000.0 EARTH S0 O2 A1: 0.805852 -0.543252 -0.235544 - 0.0 22+20 S2 O0 A1: 0.813798 -0.469846 0.342020 0.0 22+20 S2 O1 A1: 0.813798 -0.469846 0.342020 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469846 -0.813798 -0.342020 - 0.0 SUN S0 O0 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O1 A1: -0.930944 -0.344822 -0.120170 - - 0.0 SUN S0 O2 A1: -0.930944 -0.344822 -0.120170 - - 0.0 EARTH S0 O0 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O1 A1: -0.187669 0.901097 0.390902 - - 0.0 EARTH S0 O2 A1: -0.187669 0.901097 0.390902 - 10000.0 22+20 S2 O0 A1: 0.811813 -0.474823 0.339858 10000.0 22+20 S2 O1 A1: 0.811813 -0.474823 0.339858 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.475728 -0.810903 -0.340763 - 10000.0 SUN S0 O0 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O1 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O2 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 EARTH S0 O0 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O1 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O2 A1: -0.534784 -0.775312 -0.336003 - 10000.0 22+20 S2 O0 A1: 0.811813 -0.474823 0.339858 10000.0 22+20 S2 O1 A1: 0.811813 -0.474823 0.339858 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.475728 -0.810903 -0.340763 10000.0 16-20 S2 O2 A1: -0.475728 -0.810903 -0.340763 - - 10000.0 SUN S0 O0 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O1 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 SUN S0 O2 A1: -0.008957 -0.923465 -0.383578 - - 10000.0 EARTH S0 O0 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O1 A1: -0.534784 -0.775312 -0.336003 - - 10000.0 EARTH S0 O2 A1: -0.534784 -0.775312 -0.336003 diff --git a/test/reference/refract.out b/test/reference/refract.out new file mode 100644 index 00000000..5e8b9043 --- /dev/null +++ b/test/reference/refract.out @@ -0,0 +1 @@ + 0.355146 0.436021 diff --git a/test/reference/ter2cel.out b/test/reference/ter2cel.out new file mode 100644 index 00000000..da216c60 --- /dev/null +++ b/test/reference/ter2cel.out @@ -0,0 +1,32 @@ + +-10000.0 22+20 S2 O0 A0: -0.388159161 0.856188709 0.340988799 -0.388158848 0.856188020 0.340990885 + +-10000.0 16-20 S2 O0 A0: 0.857080836 0.387257413 -0.339770712 0.857080150 0.387257103 -0.339772796 + + 0.0 22+20 S2 O0 A0: -0.314293635 -0.885587045 0.341986983 -0.314293635 -0.885587045 0.341986983 + + 0.0 16-20 S2 O0 A0: -0.885568329 0.314294030 -0.342035082 -0.885568329 0.314294030 -0.342035083 + + 10000.0 22+20 S2 O0 A0: 0.841265763 0.420521986 0.339754581 0.841265063 0.420521636 0.339756748 + + 10000.0 16-20 S2 O0 A0: 0.419596033 -0.840359541 -0.343125358 0.419595679 -0.840358831 -0.343127530 + + 10000.0 22+20 S2 O0 A0: 0.841265763 0.420521986 0.339754581 0.841265063 0.420521636 0.339756748 + + 10000.0 16-20 S2 O0 A0: 0.419596033 -0.840359541 -0.343125358 0.419595679 -0.840358831 -0.343127530 + +-10000.0 22+20 S2 O0 A1: -0.388159 0.856189 0.340989 -0.388159 0.856188 0.340991 + +-10000.0 16-20 S2 O0 A1: 0.857081 0.387257 -0.339771 0.857080 0.387257 -0.339773 + + 0.0 22+20 S2 O0 A1: -0.314294 -0.885587 0.341987 -0.314294 -0.885587 0.341987 + + 0.0 16-20 S2 O0 A1: -0.885568 0.314294 -0.342035 -0.885568 0.314294 -0.342035 + + 10000.0 22+20 S2 O0 A1: 0.841266 0.420522 0.339755 0.841265 0.420522 0.339757 + + 10000.0 16-20 S2 O0 A1: 0.419596 -0.840360 -0.343125 0.419596 -0.840359 -0.343128 + + 10000.0 22+20 S2 O0 A1: 0.841266 0.420522 0.339755 0.841265 0.420522 0.339757 + + 10000.0 16-20 S2 O0 A1: 0.419596 -0.840360 -0.343125 0.419596 -0.840359 -0.343128 diff --git a/test/reference/wobble.out b/test/reference/wobble.out index 021f8e85..78468f2d 100644 --- a/test/reference/wobble.out +++ b/test/reference/wobble.out @@ -11,18 +11,6 @@ -10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 --10000.0 SUN S0 O0 A0: -0.002228271 0.916083688 0.400980936 - --10000.0 SUN S0 O1 A0: -0.002228271 0.916083688 0.400980936 - --10000.0 SUN S0 O2 A0: -0.002228271 0.916083688 0.400980936 - --10000.0 EARTH S0 O0 A0: 0.801883953 -0.548168968 -0.237682369 - --10000.0 EARTH S0 O1 A0: 0.801883953 -0.548168968 -0.237682369 - --10000.0 EARTH S0 O2 A0: 0.801883953 -0.548168968 -0.237682369 - 0.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 0.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -35,18 +23,6 @@ 0.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 0.0 SUN S0 O0 A0: -0.930942898 -0.344820272 -0.120184449 - - 0.0 SUN S0 O1 A0: -0.930942898 -0.344820272 -0.120184449 - - 0.0 SUN S0 O2 A0: -0.930942898 -0.344820272 -0.120184449 - - 0.0 EARTH S0 O0 A0: -0.187673043 0.901091295 0.390913426 - - 0.0 EARTH S0 O1 A0: -0.187673043 0.901091295 0.390913426 - - 0.0 EARTH S0 O2 A0: -0.187673043 0.901091295 0.390913426 - 10000.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 10000.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -59,18 +35,6 @@ 10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 10000.0 SUN S0 O0 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 SUN S0 O1 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 SUN S0 O2 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 EARTH S0 O0 A0: -0.529128073 -0.778563630 -0.337434671 - - 10000.0 EARTH S0 O1 A0: -0.529128073 -0.778563630 -0.337434671 - - 10000.0 EARTH S0 O2 A0: -0.529128073 -0.778563630 -0.337434671 - 10000.0 22+20 S2 O0 A0: 0.813794365 -0.469851285 0.342021200 10000.0 22+20 S2 O1 A0: 0.813794365 -0.469851285 0.342021200 @@ -83,18 +47,6 @@ 10000.0 16-20 S2 O2 A0: -0.469842994 -0.813792707 -0.342036535 - 10000.0 SUN S0 O0 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 SUN S0 O1 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 SUN S0 O2 A0: -0.002278922 -0.923493955 -0.383606206 - - 10000.0 EARTH S0 O0 A0: -0.529128073 -0.778563630 -0.337434671 - - 10000.0 EARTH S0 O1 A0: -0.529128073 -0.778563630 -0.337434671 - - 10000.0 EARTH S0 O2 A0: -0.529128073 -0.778563630 -0.337434671 - -10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 -10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -107,18 +59,6 @@ -10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 --10000.0 SUN S0 O0 A1: -0.002228 0.916084 0.400981 - --10000.0 SUN S0 O1 A1: -0.002228 0.916084 0.400981 - --10000.0 SUN S0 O2 A1: -0.002228 0.916084 0.400981 - --10000.0 EARTH S0 O0 A1: 0.801884 -0.548169 -0.237682 - --10000.0 EARTH S0 O1 A1: 0.801884 -0.548169 -0.237682 - --10000.0 EARTH S0 O2 A1: 0.801884 -0.548169 -0.237682 - 0.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 0.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -131,18 +71,6 @@ 0.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - 0.0 SUN S0 O0 A1: -0.930943 -0.344820 -0.120184 - - 0.0 SUN S0 O1 A1: -0.930943 -0.344820 -0.120184 - - 0.0 SUN S0 O2 A1: -0.930943 -0.344820 -0.120184 - - 0.0 EARTH S0 O0 A1: -0.187673 0.901091 0.390913 - - 0.0 EARTH S0 O1 A1: -0.187673 0.901091 0.390913 - - 0.0 EARTH S0 O2 A1: -0.187673 0.901091 0.390913 - 10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -155,18 +83,6 @@ 10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - 10000.0 SUN S0 O0 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O1 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O2 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 EARTH S0 O0 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O1 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O2 A1: -0.529128 -0.778564 -0.337435 - 10000.0 22+20 S2 O0 A1: 0.813794 -0.469851 0.342021 10000.0 22+20 S2 O1 A1: 0.813794 -0.469851 0.342021 @@ -178,15 +94,3 @@ 10000.0 16-20 S2 O1 A1: -0.469843 -0.813793 -0.342037 10000.0 16-20 S2 O2 A1: -0.469843 -0.813793 -0.342037 - - 10000.0 SUN S0 O0 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O1 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 SUN S0 O2 A1: -0.002279 -0.923494 -0.383606 - - 10000.0 EARTH S0 O0 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O1 A1: -0.529128 -0.778564 -0.337435 - - 10000.0 EARTH S0 O2 A1: -0.529128 -0.778564 -0.337435 diff --git a/test/src/test.c b/test/src/test.c index b150d320..fa4ba9b9 100644 --- a/test/src/test.c +++ b/test/src/test.c @@ -33,6 +33,16 @@ static int idx = -1; static char *header; +// make_observer +// cal_date +// transform_cat +// transform_hip +// cio_array, cio_location (same time), cio_ra, tbd2tt +// cel_pole +// gcrs2equ +// ecl2equ_vec +// mean_star + static void newline() { fprintf(fp, "\n%8.1f %-10s S%d O%d A%d: ", (tdb - J2000), source.name, source.type, obs.where, accuracy); } @@ -113,13 +123,28 @@ static void test_make_object() { } +static void test_refract() { + on_surface surf; + + openfile("refract"); + + make_on_surface(15.0, 20.0, 1200.0, -10.0, 1010.0, &surf); + fprintf(fp, "%12.6f %12.6f ", refract(&surf, 1, 89.0), refract(&surf, 2, 89.0)); +} + + + static void test_basics() { idx = -1; test_make_cat_entry(); test_make_object(); + test_refract(); } + + + // ====================================================================================== // Time specific // ====================================================================================== @@ -377,6 +402,8 @@ static int init() { static void test_frame_tie() { double pos1[3]; + if(source.type != 2) return; + openfile("frame_tie"); frame_tie(pos0, -1, pos1); printunitvector(pos1); @@ -387,8 +414,9 @@ static void test_frame_tie() { static void test_wobble() { double pos1[3]; - openfile("wobble"); + if(source.type != 2) return; + openfile("wobble"); wobble(tdb, 0, 2.0, -3.0, pos0, pos1); printunitvector(pos1); } @@ -396,8 +424,10 @@ static void test_wobble() { static void test_precession() { double pos1[3]; - openfile("precession"); + if(source.type != 2) return; + + openfile("precession"); if(is_ok(precession(tdb, pos0, J2000, pos1))) printunitvector(pos1); } @@ -414,8 +444,10 @@ static void test_light_time() { static void test_grav_def() { double pos1[3]; - openfile("grav_def"); + if(source.type != 2) return; + + openfile("grav_def"); if(is_ok(grav_def(tdb, obs.where, accuracy, pos0, pobs, pos1))) { printunitvector(pos1); } @@ -524,6 +556,83 @@ static void test_topo_place() { } } + +static void test_cel2ter() { + double pos1[3]; + + if(source.type != 2) return; + + openfile("cel2ter"); + + if(is_ok(cel2ter(tdb, 0.0, ut12tt, 0, accuracy, 0, 0.0, 0.0, pos0, pos1))) + printunitvector(pos1); + + if(is_ok(cel2ter(tdb, 0.0, ut12tt, 1, accuracy, 0, 0.0, 0.0, pos0, pos1))) + printunitvector(pos1); +} + +static void test_ter2cel() { + double pos1[3]; + + if(source.type != 2) return; + + openfile("ter2cel"); + + if(is_ok(ter2cel(tdb, 0.0, ut12tt, 0, accuracy, 0, 0.0, 0.0, pos0, pos1))) + printunitvector(pos1); + + if(is_ok(ter2cel(tdb, 0.0, ut12tt, 1, accuracy, 0, 0.0, 0.0, pos0, pos1))) + printunitvector(pos1); +} + + +static void test_equ2hor() { + double zd = 0.0, az = 0.0, rar = 0.0, decr = 0.0; + + if(source.type != 2) return; + + openfile("equ2hor"); + + equ2hor(tdb, ut12tt, accuracy, 0.1, -0.2, &obs.on_surf, source.star.ra, source.star.dec, 0, &zd, &az, &rar, &decr); + fprintf(fp, "%12.6f %12.6f %12.6f %12.6f ", zd, az, rar, decr); + + openfile("equ2hor-refract"); + + equ2hor(tdb, ut12tt, accuracy, 0.1, -0.2, &obs.on_surf, source.star.ra, source.star.dec, 1, &zd, &az, &rar, &decr); + fprintf(fp, "%12.6f %12.6f %12.6f %12.6f ", zd, az, rar, decr); +} + + +static void test_equ2gal() { + double glon, glat; + + if(source.type != 2) return; + + openfile("equ2gal"); + + equ2gal(source.star.ra, source.star.dec, &glon, &glat); + fprintf(fp, "%12.6f %12.6f ", glon, glat); +} + + + +static void test_equ2ecl() { + double elon, elat; + + if(source.type != 2) return; + + openfile("equ2ecl"); + + if(is_ok(equ2ecl(tdb, 0, accuracy, source.star.ra, source.star.dec, &elon, &elat))) + fprintf(fp, "%12.6f %12.6f ", elon, elat); + + if(is_ok(equ2ecl(tdb, 1, accuracy, source.star.ra, source.star.dec, &elon, &elat))) + fprintf(fp, "%12.6f %12.6f ", elon, elat); + + if(is_ok(equ2ecl(tdb, 2, accuracy, source.star.ra, source.star.dec, &elon, &elat))) + fprintf(fp, "%12.6f %12.6f ", elon, elat); +} + static int test_source() { openfile("init"); @@ -542,11 +651,16 @@ static int test_source() { test_astro_place(); test_virtual_place(); test_app_place(); + test_cel2ter(); + test_ter2cel(); + test_equ2gal(); + test_equ2ecl(); } if(obs.where == 1) { test_local_place(); test_topo_place(); + test_equ2hor(); } return 0; @@ -554,6 +668,7 @@ static int test_source() { + static int test_observers() { double ps[3] = { 100.0, 30.0, 10.0 }, vs[3] = { 10.0 };