Core user-visible package declarations for the HNBody library. More...
#include <mutils/util.h>
Go to the source code of this file.
Data Structures | |
struct | hnb_data_struct |
Main HNBody system data structure. More... | |
Typedefs | |
typedef enum hnb_integcoord_enum | hnb_integcoord_t |
Symplectic integration scheme variations (bit-mask layout). | |
typedef enum hnb_integ_enum | hnb_integ_t |
Integration scheme choices. | |
typedef enum LWP_enum | hnb_LWP_t |
Choices for LWP perturbations type. | |
typedef double(* | hnb_vector_t )[3] |
System particle 3-vector type. | |
typedef void(* | hnb_extra_t )(hnb_vector_t, double t, hnb_vector_t, const double m[], int nHL, int n, double dt, const struct hnb_data_struct *sys) |
Prototype for extra_kick() and extra_shift() functions. | |
typedef void(* | hnb_drift_t )(hnb_vector_t dx, hnb_vector_t dv, double t, hnb_vector_t x, hnb_vector_t v, const double m[], int nHL, int n, double dt, const struct hnb_data_struct *sys) |
Prototype for extra_drift() functions. | |
typedef double(* | hnb_energy_t )(double t, hnb_vector_t x, hnb_vector_t v, const double m[], int nHL, const struct hnb_data_struct *sys) |
Prototype for extra_energy() functions. | |
typedef int(* | hnb_derivs_t )(hnb_vector_t dxdt, hnb_vector_t dvdt, double t, hnb_vector_t x, hnb_vector_t v, const double m[], int nHL, int n, const struct hnb_data_struct *sys) |
Prototype for extra_derivs() functions. | |
typedef struct hnb_data_struct | hnb_data_t |
Main HNBody system data structure. | |
Enumerations | |
enum | hnb_integcoord_enum { Origin = 1+2, Barycentric = 0, Bodycentric = 1, Jacobi = 2, Regularized = 4, TWform = Regularized, RegBarycentric = Regularized+Barycentric, RegJacobi = Regularized+Jacobi, ModBodycentric = TWform+Bodycentric, Coordinates = Origin+Regularized, Splitting = 8+16, Kick_Drift = 0, Drift_Kick = 8, Shift_Drift = 16, Order = 32+64, Order2 = 0, Order4 = 32, ModKick = 64, Order4mk = Order4+ModKick, Integrator = Coordinates+Splitting+Order, Corrected = 128+256+512, Reverse = 1024, Uncorrected = 0, Corrected2 = 128, Corrected4 = 256, Corrected6 = 512, Corrector = Reverse+Corrected, Gravity = 2048, Newtonian = 0, PostNewtonian = Gravity, Kernel = 4096, PolyKernel = 0, TanhKernel = Kernel, SplitI = 8192 } |
Symplectic integration scheme variations (bit-mask layout). More... | |
enum | hnb_integ_enum { Symplectic, BulirschStoer, RungeKutta } |
Integration scheme choices. More... | |
enum | LWP_enum { LWP_NONE, LWP_ZWP } |
Choices for LWP perturbations type. More... | |
Functions | |
DLLSPEC void | hnb_angmom (double L[], hnb_vector_t x, hnb_vector_t v, hnb_data_t *sys) |
DLLSPEC void | hnb_calcCoord (hnb_vector_t xNew, hnb_vector_t vNew, hnb_integcoord_t newFrame, const hnb_data_t *sys) |
DLLSPEC void | hnb_checkpoint (hnb_data_t *sys, const char *file, int halt) |
DLLSPEC void | hnb_free_data (hnb_data_t *sys) |
DLLSPEC void | hnb_write (hnb_data_t *sys, const char *file) |
DLLSPEC void | hnb_util_version (FILE *f, const char *name, const char *revision, const char *prefix) |
DLLSPEC void | hnb_print_info (FILE *f, void(*custom)(FILE *f, const char *prefix), const char *prefix) |
DLLSPEC void | hnb_step (hnb_data_t *sys) |
DLLSPEC const char * | hnb_contact (void) |
DLLSPEC const char ** | hnb_version (void) |
DLLSPEC const char *** | hnb_website (void) |
DLLSPEC const int * | hnb_idtags (const hnb_data_t *sys) |
DLLSPEC const int ** | hnb_jacmap (const hnb_data_t *sys) |
DLLSPEC int | hnb_N (const hnb_data_t *sys) |
DLLSPEC int | hnb_hwp_N (const hnb_data_t *sys) |
DLLSPEC int | hnb_lwp_N (const hnb_data_t *sys) |
DLLSPEC int | hnb_zwp_N (const hnb_data_t *sys) |
DLLSPEC int | hnb_save (const char *save, double key, hnb_data_t *sys) |
DLLSPEC int | hnb_restore (double *key, const char *save, hnb_data_t *sys) |
DLLSPEC int | hnb_argv_driver (int argc, char *argv[], hnb_extra_t kick, hnb_extra_t shift, hnb_drift_t drift, hnb_derivs_t derivs, hnb_energy_t energy, void(*custom)(FILE *f, const char *prefix)) |
Performs an integration given a set of command line arguments. | |
DLLSPEC hnb_integcoord_t | hnb_integcoord (const hnb_data_t *sys) |
DLLSPEC hnb_integcoord_t | hnb_zwp_integcoord (const hnb_data_t *sys) |
DLLSPEC const double * | hnb_masses (const hnb_data_t *sys) |
DLLSPEC const double ** | hnb_enc_radii (const hnb_data_t *sys) |
DLLSPEC const double *** | hnb_capt_radii (const hnb_data_t *sys) |
DLLSPEC double | hnb_G (const hnb_data_t *sys) |
DLLSPEC double | hnb_c (const hnb_data_t *sys) |
DLLSPEC double | hnb_Msun (const hnb_data_t *sys) |
DLLSPEC double | hnb_M (const hnb_data_t *sys) |
DLLSPEC double | hnb_tinit (const hnb_data_t *sys) |
DLLSPEC double | hnb_stepsize (const hnb_data_t *sys) |
DLLSPEC double | hnb_zwp_stepsize (const hnb_data_t *sys) |
DLLSPEC double | hnb_eff_stepsize (const hnb_data_t *sys) |
DLLSPEC double | hnb_output (double *t, double(**x)[3], double(**v)[3], hnb_data_t *sys) |
DLLSPEC hnb_data_t * | hnb_read (const char *file) |
DLLSPEC hnb_data_t ** | hnb_init_file (const char *hnbfile, FILE *logfile) |
DLLSPEC hnb_data_t *** | hnb_init_extra (const char *hnbfile, FILE *logfile, hnb_extra_t extra_kick, hnb_extra_t extra_shift, hnb_drift_t extra_drift, hnb_derivs_t extra_derivs, hnb_energy_t extra_energy) |
DLLSPEC hnb_data_t **** | hnb_ode_init (double tinit, const double xinit[][3], const double vinit[][3], const double m[], const int id[], int nH, int nL, int nZ, hnb_LWP_t ltype, int fixedH, int enc, const double rcapt[], double G, double c, double Msun, double J2, double J4, double J6, double obRadius, double dt, double eps, hnb_integ_t integ, hnb_integcoord_t icoord, hnb_derivs_t extra_derivs, hnb_energy_t extra_energy, int nthreads) |
DLLSPEC hnb_data_t ***** | hnb_init (double tinit, const double xinit[][3], const double vinit[][3], const double m[], const int id[], const int jindex[], int nH, int nL, int nZ, hnb_LWP_t ltype, int fixedH, int enc, int prune, const double renc[], const double rcapt[], double G, double c, double Msun, double J2, double J4, double J6, double obRadius, double dm, double dzH, double dzZ, hnb_integcoord_t itH, hnb_integcoord_t itZ, hnb_extra_t extra_kick, hnb_extra_t extra_shift, hnb_drift_t extra_drift, hnb_energy_t extra_energy, int nthreads) |
enum hnb_integ_enum |
enum hnb_integcoord_enum |
enum LWP_enum |
DLLSPEC int hnb_argv_driver | ( | int | argc, | |
char * | argv[], | |||
hnb_extra_t | kick, | |||
hnb_extra_t | shift, | |||
hnb_drift_t | drift, | |||
hnb_derivs_t | derivs, | |||
hnb_energy_t | energy, | |||
void(*)(FILE *f, const char *prefix) | custom | |||
) |
This routine sets up and then executes an integration defined by the input command line arguments.
argc | is the number of command line arguments supplied. | |
argv | is the array of argument strings; argv[0] should contain the name of the driver. | |
kick | is an optional extra_kick() term to include in the integration; use NULL if none (Symplectic only). | |
shift | is an optional extra_shift() term to include in the integratio; use NULL if none (Symplectic only). | |
drift | is an optional extra_drift() term to include in the integratio; use NULL if none (Symplectic only). | |
derivs | is an optional extra_derivs() term to include in the integration; use NULL if none (ODE only). | |
energy | is an optional extra_energy() term to include in the integration; use NULL if none. | |
custom | is an optional custom driver version/information writer whose output is prepended to help messages and log files; use NULL if none. |
References hnb_free_options(), hnb_interface(), hnb_opts_driver(), hnb_cli_struct::log, and hnb_cli_struct::logfile.
DLLSPEC const char* * * hnb_website | ( | void | ) |