Swarm-NG  1.1
swarm::gpu::bppt::GravitationAcc< T > Class Template Reference

templatized Class to calculate acceleration and jerk in parallel More...

#include <gravitation_acc.hpp>

Public Member Functions

GPUAPI GravitationAcc (ensemble::SystemRef &sys, shared_data &shared)
 Constructor.
 
GPUAPI void operator() (int ij, int b, int c, double &pos, double &vel, double &acc) const
 Define operator.
 
GPUAPI double acc_planets (int ij, int b, int c) const
 Different version of acceleration calculation used for MVS integrator. More...
 
GPUAPI double acc (int ij, int b, int c, double &pos, double &vel) const
 Run the complete algorithm for computing acceleration only on all bodies. More...
 

Static Public Member Functions

static GENERIC int thread_per_system ()
 The number of threads per system.
 
static GENERIC int shmem_per_system ()
 The amount of shared memory per system.
 

Detailed Description

template<class T>
class swarm::gpu::bppt::GravitationAcc< T >

templatized Class to calculate acceleration and jerk in parallel

Similar to Gravitation, but computes only terms for acceleration and not for jerk To be used with integration aglorithms that don't make use of the jerk, e.g., Runge-Kutta

Definition at line 39 of file gravitation_acc.hpp.

Member Function Documentation

template<class T >
GPUAPI double swarm::gpu::bppt::GravitationAcc< T >::acc ( int  ij,
int  b,
int  c,
double &  pos,
double &  vel 
) const
inline

Run the complete algorithm for computing acceleration only on all bodies.

This is tightly coupled with the BPPT integrators. ij, b and c are calculated from thread id.

The pair number for this tread. The planet number for this thread. coordinate number x:0,y:1,z:2 position for this planet's coordinate velecotiy for this planet's coordinate

Definition at line 193 of file gravitation_acc.hpp.

References peyton::constants::c.

template<class T >
GPUAPI double swarm::gpu::bppt::GravitationAcc< T >::acc_planets ( int  ij,
int  b,
int  c 
) const
inline

Different version of acceleration calculation used for MVS integrator.

The impact of body 0(sun or star) is ignored because in the integrator it is calculated using keplerian motion. This is tightly coupled with the BPPT integrators. ij, b and c are calculated from thread id.

The pair number for this tread. The planet number for this thread. coordinate number x:0,y:1,z:2 position for this planet's coordinate velecotiy for this planet's coordinate

Definition at line 171 of file gravitation_acc.hpp.


The documentation for this class was generated from the following file: