HNBody
Version 1.0.10
|
An advanced custom driver adding an explicit lunar sub-integration. More...
#include <math.h>
#include <hnbody/errors.h>
#include <hnbody/expert.h>
#include <hnbody/kepler.h>
#include <hnbody/output.h>
Macros | |
#define | IBARY 3 |
#define | IPMIN 1 |
#define | IPMAX 0 |
#define | IMERC 0 |
#define | IMARS 0 |
Functions | |
void | ems_version (FILE *f, const char *prefix) |
void | ems_kick (double(*dv)[3], double t, double(*x)[3], const double m[], int nHL, int n, double dt, const hnb_data_t *sys) |
void | ems_drift (double(*dx)[3], double(*dv)[3], double t, double(*x)[3], double(*v)[3], const double m[], int nHL, int n, double dt, const hnb_data_t *sys) |
void | ems_halfstep (hnb_data_t *sys) |
double | ems_energy (double t, double(*x)[3], double(*v)[3], const double m[], int n, const hnb_data_t *sys) |
void | ems_init (hnb_data_t *ss, const char *initfile) |
int | main (int argc, char *argv[]) |
SRC-Level: ISO C
MT-Level: TBD
This custom driver includes the extra kick and energy due to the Sun's tidal attraction on the extended Earth-Moon system, using an explicit lunar sub-integration. The expansion of the lunar orbit due to tidal dissipation is neglected. This file makes use of low-level primitives to advance the lunar integration in lock step with the planets, and should be considered an "expert" application of the HNBody package. The physical error in the lunar model produces relative errors ~1e-6 per orbit; for the Earth-Moon berycenter corresponding error (mainly phase) is ~1e-10 per orbit near the initial epoch.