orbit.c ¶
Orbital evolution routines.
Functions
-
void
on_progress
(progress_data_t *data)¶ Update the progress bar. Used internally.
-
double
modulus
(double x, double y)¶ The arithmetic modulus, x mod y.
- Return
- x mod y
- Parameters
x
: A doubley
: A double
-
double
sgn
(double x)¶ Returns the sign of x.
- Return
- sign(x)
- Parameters
x
: A double
-
double
TrueAnomaly
(double E, double ecc)¶ The true anomaly as a function of the eccentric anomaly E and the eccentricity ecc.
- Return
- The true anomaly in radians
- Parameters
E
: The eccentric anomaly in radiansecc
: The eccentricity
-
double
EccentricAnomalyFast
(double dMeanA, double dEcc, double tol, int maxiter)¶ Computes the eccentric anomaly from the mean anomaly and the eccentricity using a fast iterative scheme. Adapted from Rory Barnes, based on equations in Murray & Dermott.
- Return
- The eccentric anomaly in radians
- Parameters
dMeanA
: The mean anomaly in radiansdEcc
: The eccentricitytol
: The solver tolerancemaxiter
: The maximum number of iterations
-
double
EccentricAnomaly
(double M, double e, double tol, int maxiter)¶ Computes the eccentric anomaly from the mean anomaly and the eccentricity. This is a simpler version of the Kepler solver, borrowed from https://github.com/lkreidberg/batman/blob/master/c_src/_rsky.c
- Return
- The eccentric anomaly in radians
- Parameters
M
: The mean anomaly in radianse
: The eccentricitytol
: The solver tolerancemaxiter
: The maximum number of iterations
-
int
Kepler
(int np, BODY **body, SETTINGS settings)¶ Compute the instantaneous x, y, and z positions of all planets with a simple multi-Keplerian solver.
-
void
heartbeat
(struct reb_simulation *r)¶ Called at each step of the N-Body simulation. Currently does nothing!
-
int
NBody
(int np, BODY **body, SETTINGS settings, int halt_on_occultation, int occulted, int noccultors, int occultors[noccultors], int noccultations, double occultation_times[noccultations], int occultation_inds[noccultations], double occultation_durs[noccultations])¶ Compute the instantaneous x, y, and z positions of all planets using the REBOUND N-Body code.
- Return
- The error code
- Parameters
np
: The number of particles (bodies) in the systembody
: An array of BODY pointers to each of the bodies in the systemsettings
: An instance of the SETTINGS classhalt_on_occultation
: Halt when a certain number of occultations of a given body have occurred?occulted
: The index of the body being occulted (only used ifhalt_on_occultation
= 1)noccultors
: Size of occultor array (only used ifhalt_on_occultation
= 1)occultors
: The indices of the occultors ofocculted
(only used ifhalt_on_occultation
= 1)noccultations
: The number of occultations to look for (only used ifhalt_on_occultation
= 1)occultation_times
: The times of each of the occultations, computed by this function (only used ifhalt_on_occultation
= 1)occultation_inds
: The indices of the occultors corresponding to each of the occultations identified by this function (only used ifhalt_on_occultation
= 1)occultation_durs
: The duration of each of the occultations identified by this function (only used ifhalt_on_occultation
= 1)