1 #ifndef HNBODY_KEPLER_H
2 #define HNBODY_KEPLER_H
27 kepler_eccanom_base(
double *M0,
double M,
double e),
28 kepler_eccanom(
double M,
double e),
29 kepler_hypanom(
double M,
double e),
30 kepler_paranom(
double M),
31 kepler_meanconic(
double *C,
double r,
double rv,
double rv2,
double GM),
33 kepler_conicanom_mean(
double M,
double e),
34 kepler_conicanom_true(
double nu,
double e),
35 kepler_trueanom_conic(
double C,
double e),
36 kepler_trueanom_mean(
double M,
double e),
37 kepler_meananom_conic(
double C,
double e),
38 kepler_meananom_true(
double nu,
double e),
40 kepler_L2(
const double x[],
const double v[]),
41 kepler_ds(
double dt,
double GM,
double r0,
double v2,
42 double beta,
double eta),
43 kepler_x_nu(
double *nu,
double M,
double e),
45 kepler_kinenergy(
double v[][3],
const double m[],
int n),
46 kepler_potenergy(
double x[][3],
const double m[],
double G,
int nh,
int n),
47 kepler_energy(
double x[][3],
double v[][3],
const double m[],
double G,
52 kepler_normalize(
double x[],
double dx[]),
54 kepler_Tmatrix(
double T[][3],
double i,
double om,
double psi),
56 kepler_xv_gr(
double x[],
double v[],
double M,
double dM,
57 double a,
double e,
double T[][3],
double GM),
58 kepler_xv_mean(
double x[],
double v[],
double M,
double a,
double e,
59 double T[][3],
double GM),
60 kepler_xv_true(
double x[],
double v[],
double nu,
double a,
double e,
61 double T[][3],
double GM),
63 kepler_invplane(
double *i,
double *psi,
const double L[]),
64 kepler_angmom(
double L[],
double x[][3],
double v[][3],
const double m[],
67 kepler_cmass(
double xcm[],
double x[][3],
const double m[],
int n),
69 kepler_inert2bary(
double y[][3],
double x[][3],
const double m[],
71 kepler_bary2body(
double y[][3],
double x[][3],
const double m[],
int n),
72 kepler_body2bary(
double y[][3],
double x[][3],
const double m[],
int n),
74 kepler_etas(
double eta[],
double ieta[],
double deta[],
const double m[],
75 const int imap[],
int n),
76 kepler_body2jac(
double y[][3],
double x[][3],
const double m[],
77 const double ieta[],
const int imap[],
int n),
78 kepler_jac2body(
double y[][3],
double dy[][3],
double x[][3],
79 const double m[],
const double ieta[],
const int imap[],
int n),
81 kepler_inert2body(
double y[][3],
double x[][3],
int n),
82 kepler_inert2jac(
double y[][3],
double x[][3],
const double m[],
83 const double ieta[],
const int imap[],
int n),
85 kepler_dbody2djac(
double djac[][3],
double dbod[][3],
const double m[],
86 const double ieta[],
const int imap[],
int n),
87 kepler_djac2dbody(
double djac[][3],
double dbod[][3],
const double m[],
88 const double ieta[],
const int imap[],
int n),
90 kepler_canbody2jac(
double x[][3],
double v[][3],
const double m[],
91 const double ieta[],
const int imap[],
int n),
92 kepler_jac2canbody(
double x[][3],
double v[][3],
const double m[],
93 const double ieta[],
const int imap[],
int n),
95 kepler_ranorb(
double *a,
double *e,
double *i,
double amin,
double amax,
96 double n,
double p,
double q);
100 kepler_inert2baryPN(
double xPN[][3],
double vPN[][3],
double mPN[],
101 double x[][3],
double v[][3],
const double m[],
int n,
double G,
double c),
103 kepler_orbels(
double *M,
double *a,
double *e,
double *i,
double *om,
104 double *psi,
const double x[],
const double v[],
double GM);
112 kepler_step(
double x[],
double v[],
double GM,
double dt),
113 kepler_pnstep(
double x[],
double v[],
double GM,
double ic2,
double dt),
114 kepler_mmstep(
double x[],
double v[],
double *rmin,
double *rmax,
115 double GM,
double dt),
117 kepler_delstep(
double x[],
double dx[],
double v[],
double dv[],
double GM,
119 kepler_delpnstep(
double x[],
double dx[],
double v[],
double dv[],
double GM,
120 double ic2,
double dt),
121 kepler_delmmstep(
double x[],
double dx[],
double v[],
double dv[],
122 double *rmin,
double *rmax,
double GM,
double dt),
124 kepler_dstep(
double x[],
double v[],
double dx[],
double dv[],
double GM,
127 kepler_regstep(
double x[],
double v[],
double *dt,
double GM,
double ds),
128 kepler_Eregstep(
double x[],
double v[],
double *dt,
double E,
double ds),
129 kepler_dregstep(
double x[],
double v[],
double dx[],
double dv[],
double *dt,
130 double GM,
double ds),
132 kepler_lcstep(
double x[],
double v[],
double *rmin,
double dt,
double domega),
133 kepler_grstep(
double x[],
double v[],
double *rmin,
double dt,
double domega);
142 double semi, peridist, ecc;
144 double longasc, longperi, argperi;
145 double meanlong, truelong, meanlati, truelati, meananom, trueanom,
151 kepler_elems_xv(
kepler_elems *elems,
const double x[],
const double v[],
152 double GM,
int phase);
156 kepler_xv_elems(
double x[],
double v[],
kepler_elems *elems,
double GM);
164 enum kepler_radial_orbit_t { bound_radial=-1, unbound_radial=-2 };