#include <scat.h> void transkepler(total_mass, orbit, oldtype, newtype) real total_mass; realptr orbit; int oldtype; int newtype;
Allowed types of orbit currently fall in three categories: i) those in which the first three numbers specifying the orbit describe the relative position and the second three numbers the relative velocity; ii) classical orbital elements, in which the distinction between configuration and velocity space can no longer be made; iii) coordinates which describe the setup of a scattering experiment, with a finite initial distance but a description in terms of the asymptotic parameters (i.e. for infinitely early or late time). The following types are implemented (make sure to include the file <scat.h> to access the macro implementation of these names):
i) CARTESIAN, SPHERICAL,
ii) TRUEANOMALY, ECCANOMALY, MEANANOMALY, PERIPASSAGE,
iii) SCATTERING.
The meaning of the six parameters orbit[0] through orbit[5] is as follows.
For CARTESIAN coordinates, {orbit[0]...orbit[5]} stands for {z,x,y,vz,vx,vy}; i.e. the positions and velocities, but with the convention that the order of the axes is: z-axis first, then x-axis, then y-axis.
For SPHERICAL coordinates, {orbit[0]...orbit[5]} stands for {rho, theta, phi, vr, vtheta, vphi}, where rho, theta and phi are the usual spherical coordinates, and vr, vtheta and vphi are the Cartesian velocities along unit vectors in the radial, theta and phi directions.
For TRUEANOMALY coordinates, {orbit[0]...orbit[5]} stands for {semimajor axis, eccentricity, inclination, longitude of the ascending node, argument of pericenter, true anomaly}.
For ECCANOMALY coordinates, {orbit[0]...orbit[5]} stands for {semimajor axis, eccentricity, inclination, longitude of the ascending node, argument of pericenter, eccentric anomaly}.
For MEANANOMALY coordinates, {orbit[0]...orbit[5]} stands for {semimajor axis, eccentricity, inclination, longitude of the ascending node, argument of pericenter, mean anomaly}.
For PERIPASSAGE coordinates, {orbit[0]...orbit[5]} stands for {semimajor axis, eccentricity, inclination, longitude of the ascending node, argument of pericenter, time of pericenter passage (with the current time taken to be zero)}.
For SCATTERING coordinates, {orbit[0]...orbit[5]} stands for {impact parameter, impact angle, distance, velocity at infinity, theta, phi}. The meaning of these parameters is as follows.
For TSCATTERING coordinates, {orbit[0]...orbit[5]} stands for {impact parameter, impact angle, encounter time, velocity at infinity, theta, phi}. The meaning of these parameters is as follows.
The impact parameter is the offset at infinity from a head-on collision, i.e. the closest distance to the origin if the incoming particle would move in a straight line, starting from an infinite separation, instead of following a hyperbolic orbit; in other words, the impact parameter is the closest distance to the origin of the asymptote to the hyperbolic orbit.
For an incoming particle, the impact angle is defined as the angle from the fiducial vector to the impact vector, in counter-clockwise direction as seen from the origin. Here, the fiducial vector is a unit vector in the plane spanned by the z-axis and the velocity vector at infinity, perpendicular to the latter and with a positive z-component, i.e. pointing upwards; the impact vector is a vector perpendicular to the velocity at infinity, with a length equal to the impact parameter, pointing in the direction of the offset with respect to a head-on collision. This can be clarified through a constructive definition for the impact vector: introduce an extra incoming particle with the same asymptotic velocity (velocity at infinity) but on a head-on collision orbit. The impact vector is the vector from the position of this particle to the position of the real incoming particle positioned at such a point on its orbit that this vector is perpendicular to their common velocity vector, and very far away from the origin. NOTE: in the case of an outgoing orbit, the impact vector is similarly defined as the offset with respect to a collision orbit at very late times after the scattering event. Also in this case the fiducial vector points upwards, and the impact angle is counted counter-clockwise as seen from the origin.
The distance is the relative distance between the two bodies. Note that for any finite distance, the relative velocity between the two particles is larger than the asymptotic value, as measured at infinity.
The encounter time is the time of closest encounter (pericenter passage) when the current time is taken to be zero.
For ingoing orbits, the velocity at infinity is the absolute value of the relative velocity in the limit that the two particles are infinitely far removed and therefore approach the asymptote of their relative kepler orbit. NOTE: a trick is used to discriminate between ingoing and outgoing orbits: outgoing orbits are indicated by adding a minus sign to the velocity at infinity is while ingoing orbits have the usual plus sign (this is the case both for the SCATTERING as well as for the TSCATTERING representation; the latter doesn’t need this trick, but is was kept there as well to make the representations more uniform). BEWARE !! This is a uncivilized hack, but it works.
Theta and phi are the usual spherical angles as used in spherical coordinates, and are used here to point in the direction of the ingoing or outgoing particle (as the case may be) as seen from the origin at asymptotically early or late times. Thus for an incoming orbit, the angles point in the direction exactly opposite to the velocity at time t --> -infinity, while for an outgoing orbit, the angles point in the same direction as the velocity at time t --> +infinity.
real tot_mass, orb_elements[6];
transkepler(tot_mass, orb_elements, CARTESIAN, ECCANOMALY);
kirin:/usr/piet/clib/kep2kep.c kirin:/usr/piet/clib/scat.h
13-Jan-88 Version 1.0: created PIET 10-Jun-88 Version 1.1: created PIET