|
| Hermite4GPU (NbodySystem *ns, Logger *logger, NbodyUtils *nu) |
| Constructor that uses its parent one. More...
|
|
| ~Hermite4GPU () |
| Destructor in charge of memory deallocation. More...
|
|
void | alloc_arrays_device () |
| Method in charge of allocating the data structures on the available GPUs, also initializing all the arrays to zero. More...
|
|
void | free_arrays_device () |
| Method in charge of deallocating the data structures on the available GPUs. More...
|
|
void | force_calculation (Predictor pi, Predictor pj, Forces &fi) |
| Force virtual method to be implemented. More...
|
|
void | init_acc_jrk () |
| Method in charge of the initialization of all the particle's acceleration and first derivative of the system, at the begining of the simulation. More...
|
|
void | update_acc_jrk (int nact) |
| Method in charge of the force interaction between and the whole system. More...
|
|
void | predicted_pos_vel (double ITIME) |
| Method in charge of the prediction step. More...
|
|
void | correction_pos_vel (double ITIME, int nact) |
| Method in charge of the corrector step. More...
|
|
void | integration () |
| Integration virtual method to be implemented. More...
|
|
void | get_kernel_error () |
| Method that get the last kernel error if the code is running with the DEBUG flag. More...
|
|
void | gpu_timer_start () |
| Method to start the device timer. More...
|
|
float | gpu_timer_stop (std::string f) |
| Method that ends the device timer. More...
|
|
double | get_energy_gpu () |
| Method in charge of calculating the potential and kinetic energy on the GPU devices. More...
|
|
| Hermite4 (NbodySystem *ns, Logger *logger, NbodyUtils *nu) |
| Constructor in charge of calling the allocation and initialization methods. More...
|
|
| ~Hermite4 () |
| Destructor in charge of calling the method that free the memory. More...
|
|
unsigned int | find_particles_to_move (double ITIME) |
| Method in charge of finding all the particles that need to be updated on the following integration step. More...
|
|
void | next_integration_time (double &ATIME) |
| Methods that look for the next integration time, looking for the minimum combination of timestep and current time of all the particles of the system. More...
|
|
void | init_dt (double &ATIME, float ETA, double ITIME) |
| Initialization of the timesteps of the system. More...
|
|
void | save_old_acc_jrk (unsigned int nact) |
| Method in charge of saving the old values of the acceleration and its first derivative to be use in the Corrector integration step. More...
|
|
void | alloc_arrays_host () |
| Method in charge of the memory allocation of all the data structures. More...
|
|
void | free_arrays_host () |
| Method in charge of the memory deallocation of all the data structures. More...
|
|
void | init_data () |
| Method that initialize all the data structures that will be used in the integration of hte system. More...
|
|
virtual void | predicted_pos_vel (double itime, double *t, double4 *r, double4 *v, Forces *f, Predictor *p) |
| Prediction virtual method to be implemented. More...
|
|
virtual void | correction_pos_vel (double itime, unsigned int nact, double *dt, double *t, unsigned int *move, Predictor *p, Forces *f, Forces *old, double3 *a2, double3 *a3, double4 *r, double4 *v) |
| Correction virtual method to be implemented. More...
|
|
virtual void | init_acc_jrk (Predictor *p, Forces *f) |
| Force initialization virtual method to be implemented. More...
|
|
virtual void | update_acc_jrk (unsigned int nact, unsigned int *move, Predictor *p, Forces *f) |
| Force update virtual method to be implemented. More...
|
|
Class which implements on the GPU the structure of the Hermite4 scheme.
This contains all the implementations of the requirements processes to perform the integration, like the initialization of the forces, the prediction, the correction, and the general integration of the system.