Astro-PAL
view release on metacpan or search on metacpan
palsrc/palUe2pv.c view on Meta::CPAN
/*
*+
* Name:
* palUe2pv
* Purpose:
* Heliocentric position and velocity of a planet, asteroid or comet, from universal elements
* Language:
* Starlink ANSI C
* Type of Module:
* Library routine
* Invocation:
* void palUe2pv( double date, double u[13], double pv[6], int *jstat );
* Arguments:
* date = double (Given)
* TT Modified Julian date (JD-2400000.5).
* u = double [13] (Given & Returned)
* Universal orbital elements (updated, see note 1)
* given (0) combined mass (M+m)
* " (1) total energy of the orbit (alpha)
* " (2) reference (osculating) epoch (t0)
* " (3-5) position at reference epoch (r0)
* " (6-8) velocity at reference epoch (v0)
* " (9) heliocentric distance at reference epoch
* " (10) r0.v0
* returned (11) date (t)
* " (12) universal eccentric anomaly (psi) of date
* pv = double [6] (Returned)
* Position (AU) and velocity (AU/s)
* jstat = int * (Returned)
* status: 0 = OK
* -1 = radius vector zero
* -2 = failed to converge
* Description:
* Heliocentric position and velocity of a planet, asteroid or comet,
* starting from orbital elements in the "universal variables" form.
* Authors:
* PTW: Pat Wallace (STFC)
* TIMJ: Tim Jenness (JAC, Hawaii)
* {enter_new_authors_here}
* Notes:
* - The "universal" elements are those which define the orbit for the
* purposes of the method of universal variables (see reference).
* They consist of the combined mass of the two bodies, an epoch,
* and the position and velocity vectors (arbitrary reference frame)
* at that epoch. The parameter set used here includes also various
* quantities that can, in fact, be derived from the other
* information. This approach is taken to avoiding unnecessary
* computation and loss of accuracy. The supplementary quantities
* are (i) alpha, which is proportional to the total energy of the
* orbit, (ii) the heliocentric distance at epoch, (iii) the
* outwards component of the velocity at the given epoch, (iv) an
* estimate of psi, the "universal eccentric anomaly" at a given
* date and (v) that date.
* - The companion routine is palEl2ue. This takes the conventional
* orbital elements and transforms them into the set of numbers
* needed by the present routine. A single prediction requires one
* one call to palEl2ue followed by one call to the present routine;
* for convenience, the two calls are packaged as the routine
* palPlanel. Multiple predictions may be made by again
* calling palEl2ue once, but then calling the present routine
* multiple times, which is faster than multiple calls to palPlanel.
* - It is not obligatory to use palEl2ue to obtain the parameters.
* However, it should be noted that because palEl2ue performs its
* own validation, no checks on the contents of the array U are made
* by the present routine.
* - DATE is the instant for which the prediction is required. It is
* in the TT timescale (formerly Ephemeris Time, ET) and is a
* Modified Julian Date (JD-2400000.5).
* - The universal elements supplied in the array U are in canonical
* units (solar masses, AU and canonical days). The position and
* velocity are not sensitive to the choice of reference frame. The
* palEl2ue routine in fact produces coordinates with respect to the
* J2000 equator and equinox.
* - The algorithm was originally adapted from the EPHSLA program of
( run in 0.734 second using v1.01-cache-2.11-cpan-fe3c2283af0 )