Swarm-NG  1.1
keplerian.hpp File Reference

Defines a solver for differential Kepler's equation in universal variable x. More...

Go to the source code of this file.

Functions

GPUAPI double C_prussing (double y)
 functions needed for kepstep More...
 
GPUAPI double S_prussing (double y)
 equation 2.40b Prussing +Conway
 
GPUAPI void SC_prussing (double y, double &S, double &C)
 equation 2.40a Prussing + Conway
 
__device__ void SC_prussing_fast (double y, double &S, double &C)
 equation 2.40a Prussing + Conway
 
GPUAPI double solvex (double r0dotv0, double alpha, double sqrtM1, double r0, double dt)
 
GPUAPI void drift_kepler (double &x_old, double &y_old, double &z_old, double &vx_old, double &vy_old, double &vz_old, const double sqrtGM, const double deltaTime)
 advance a particle using f,g functions and universal variables More...
 

Detailed Description

Defines a solver for differential Kepler's equation in universal variable x.

solving differential Kepler's equation in universal variable x using Laguerre method as outlined by Prusing+C eqn 2.43 code adapted from Alice Quillen's Qymsym code see http://astro.pas.rochester.edu/~aquillen/qymsym/

Definition in file keplerian.hpp.

Function Documentation

GPUAPI double C_prussing ( double  y)

functions needed for kepstep

equation 2.40a Prussing + Conway

Definition at line 42 of file keplerian.hpp.

GPUAPI void drift_kepler ( double &  x_old,
double &  y_old,
double &  z_old,
double &  vx_old,
double &  vy_old,
double &  vz_old,
const double  sqrtGM,
const double  deltaTime 
)

advance a particle using f,g functions and universal variables

if dt == 0 then f=dgdt=1 and g=dfdt=0 f,g functions equation 2.38a PC

dfdt,dgdt function equation 2.38b PC

conservation of angular momentum means that f dfdt - g dfdt =1

dfdt,dgdt function equation 2.38b PC

eqn 2.65 M+D

eqn 2.70 M+D

Replace values

Definition at line 175 of file keplerian.hpp.

References SC_prussing(), solvex(), and x.

Referenced by swarm::gpu::bppt::MVSPropagator< T, Gravitation >::advance().

GPUAPI double solvex ( double  r0dotv0,
double  alpha,
double  sqrtM1,
double  r0,
double  dt 
)

integer n, for recommended Laguerre method

initial guess could be improved

7 iterations is probably overkill

eqn 2.41 PC

eqn 2.42 PC

equation 2.43 PC

Definition at line 120 of file keplerian.hpp.

References SC_prussing(), SC_prussing_fast(), and x.

Referenced by drift_kepler().