org.stellarium.astro.planet
Class PlanetOrbitUtils

java.lang.Object
  extended by org.stellarium.astro.planet.PlanetOrbitUtils

public class PlanetOrbitUtils
extends java.lang.Object

The code in this file is heavily inspired by the TASS17 and GUST86 theories found on ftp://ftp.imcce.fr/pub/ephem/satel I (Johannes Gajdosik) have just taken the Fortran code and data obtained from above and rearranged it into this piece of software. I can neigther allow nor forbid the above theories. The copyright notice below covers just my work, that is the compilation of the data obtained from above into the software supplied in this file.

Version:
Java (0.8.2)
Author:
Johannes Gajdosik, Frederic Simon

Nested Class Summary
(package private) static class PlanetOrbitUtils.IndexHolder
           
 
Constructor Summary
PlanetOrbitUtils()
           
 
Method Summary
(package private) static void accumulateTerms(java.util.List<java.lang.Short> instructions, java.util.List<java.lang.Double> coefficients, java.util.List<java.lang.Double> cos_sin_lambda, double[] accu, double[] sp, boolean isElp82b)
           
private static void calculateNewArg(java.util.List<java.lang.Double> cos_sin_lambda, double[] accu, double[] sp, java.util.Iterator<java.lang.Short> instructionsIterator, java.util.Iterator<java.lang.Double> coefficientsIterator, PlanetOrbitUtils.IndexHolder idx)
           
private static void ellipticToRectangular(double mu, double a, double n, double[] elem, double dt, javax.vecmath.Tuple3d xyz)
           
static void ellipticToRectangularA(double mu, double[] elem, double dt, javax.vecmath.Tuple3d xyz)
           
static void ellipticToRectangularN(double mu, double[] elem, double dt, javax.vecmath.Tuple3d xyz)
          Given the orbital elements at some time t0 calculate the rectangular coordinates at time (t0+dt).
(package private) static java.util.List<java.lang.Double> prepareLambdaArray(int nr_of_lambdas, int[] max_lambda_factor, double[] lambda)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlanetOrbitUtils

public PlanetOrbitUtils()
Method Detail

ellipticToRectangular

private static void ellipticToRectangular(double mu,
                                          double a,
                                          double n,
                                          double[] elem,
                                          double dt,
                                          javax.vecmath.Tuple3d xyz)

ellipticToRectangularN

public static void ellipticToRectangularN(double mu,
                                          double[] elem,
                                          double dt,
                                          javax.vecmath.Tuple3d xyz)
Given the orbital elements at some time t0 calculate the rectangular coordinates at time (t0+dt). mu = G*(m1+m2) .. gravitational constant of the two body problem a .. semi major axis n = mean motion = 2*M_PI/(orbit period) elem[0] .. unused (eigther a or n) elem[1] .. L elem[2] .. K=e*cos(Omega+omega) elem[3] .. H=e*sin(Omega+omega) elem[4] .. Q=sin(i/2)*cos(Omega) elem[5] .. P=sin(i/2)*sin(Omega) Omega = longitude of ascending node omega = argument of pericenter L = mean longitude = Omega + omega + M M = mean anomaly i = inclination e = excentricity Units are suspected to be: Julian days, AU, rad

Parameters:
mu -
elem -
dt -
xyz -

ellipticToRectangularA

public static void ellipticToRectangularA(double mu,
                                          double[] elem,
                                          double dt,
                                          javax.vecmath.Tuple3d xyz)

prepareLambdaArray

static java.util.List<java.lang.Double> prepareLambdaArray(int nr_of_lambdas,
                                                           int[] max_lambda_factor,
                                                           double[] lambda)

accumulateTerms

static void accumulateTerms(java.util.List<java.lang.Short> instructions,
                            java.util.List<java.lang.Double> coefficients,
                            java.util.List<java.lang.Double> cos_sin_lambda,
                            double[] accu,
                            double[] sp,
                            boolean isElp82b)

calculateNewArg

private static void calculateNewArg(java.util.List<java.lang.Double> cos_sin_lambda,
                                    double[] accu,
                                    double[] sp,
                                    java.util.Iterator<java.lang.Short> instructionsIterator,
                                    java.util.Iterator<java.lang.Double> coefficientsIterator,
                                    PlanetOrbitUtils.IndexHolder idx)