libgravix2  0.1.0
A fast simulation of attractive forces acting on point-like particles embedded onto the surface of a sphere.
integrators.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #include "libgravix2/linalg.h"
13 
14 struct GrvxPlanets;
15 
19 struct GrvxQP {
20  struct GrvxVec3D q;
21  struct GrvxVec3D p;
22 };
23 
36 void grvx_integration_step(struct GrvxQP *qp,
37  struct GrvxQP *e,
38  double h,
39  const struct GrvxPlanets *planets);
40 
55 unsigned grvx_integration_loop(struct GrvxQP *qp,
56  double h,
57  unsigned n,
58  const struct GrvxPlanets *planets);
59 
60 #ifdef __cplusplus
61 } // extern "C"
62 #endif
void grvx_integration_step(struct GrvxQP *qp, struct GrvxQP *e, double h, const struct GrvxPlanets *planets)
Single integration step.
Definition: integrators.c:143
unsigned grvx_integration_loop(struct GrvxQP *qp, double h, unsigned n, const struct GrvxPlanets *planets)
Multiple integration steps.
Definition: integrators.c:159
Helper functions for linear algebra calculations.
Set of planets.
Definition: planet.h:20
Phase space representation of state.
Definition: integrators.h:19
struct GrvxVec3D q
Definition: integrators.h:20
struct GrvxVec3D p
Definition: integrators.h:21
3D vector in cartesian representation.
Definition: linalg.h:15