GraviDy  1.0
Gravitational Dynamics N-body integrator
Functions
Hermite4GPU_kernels.cu File Reference
#include "Hermite4GPU.cuh"
Include dependency graph for Hermite4GPU_kernels.cu:

Functions

__global__ void k_init_acc_jrk (Predictor *p, Forces *f, int n, double e2, int dev, int dev_size)
 Initialization kernel, which consider an $N^2$ interaction of the particles. More...
 
__device__ void k_force_calculation (Predictor i_p, Predictor j_p, Forces &f, double e2)
 Force interaction kernel, in charge of performing gravitational interaction computation between two particles. More...
 
__global__ void k_prediction (Forces *f, double4 *r, double4 *v, double *t, Predictor *p, int dev_size, double ITIME)
 Predictor kernel, in charge of performing the prediction step of all the particles on each integration step. More...
 
__global__ void k_update (Predictor *i_p, Predictor *j_p, Forces *fout, int n, int total, double e2)
 Force kernel, in charge of performing distribution of how the $N, N_{act}$ particles will be distributed among the GPUs. More...
 
__global__ void k_reduce (Forces *in, Forces *out, int shift_id, int shift)
 Force reduction kernel, in charge of summing up all the preliminary results of the forces for the $N_{act}$ particles. More...
 
__global__ void k_energy (double4 *r, double4 *v, double *ekin, double *epot, int n, int dev_size, int dev)
 Energy kernel, in charge of the calculation of the kinetic and potential energy on the GPUs. More...
 

Function Documentation

§ k_energy()

__global__ void k_energy ( double4 r,
double4 v,
double *  ekin,
double *  epot,
int  n,
int  dev_size,
int  dev 
)

Energy kernel, in charge of the calculation of the kinetic and potential energy on the GPUs.

§ k_force_calculation()

__device__ void k_force_calculation ( Predictor  i_p,
Predictor  j_p,
Forces f,
double  e2 
)

Force interaction kernel, in charge of performing gravitational interaction computation between two particles.

§ k_init_acc_jrk()

__global__ void k_init_acc_jrk ( Predictor p,
Forces f,
int  n,
double  e2,
int  dev,
int  dev_size 
)

Initialization kernel, which consider an $N^2$ interaction of the particles.

§ k_prediction()

__global__ void k_prediction ( Forces f,
double4 r,
double4 v,
double *  t,
Predictor p,
int  dev_size,
double  ITIME 
)

Predictor kernel, in charge of performing the prediction step of all the particles on each integration step.

§ k_reduce()

__global__ void k_reduce ( Forces in,
Forces out,
int  shift_id,
int  shift 
)

Force reduction kernel, in charge of summing up all the preliminary results of the forces for the $N_{act}$ particles.

§ k_update()

__global__ void k_update ( Predictor i_p,
Predictor j_p,
Forces fout,
int  n,
int  total,
double  e2 
)

Force kernel, in charge of performing distribution of how the $N, N_{act}$ particles will be distributed among the GPUs.

This kernel calls the k_prediction kernel.