|
| Hermite4MPI (NbodySystem *ns, Logger *logger, NbodyUtils *nu, int rank, int nproc) |
| Constructor that uses its parent one. More...
|
|
| ~Hermite4MPI () |
| Destructor that free memory of two tmp arrays. More...
|
|
void | alloc_slaves_memory (int rank) |
| Method in charge of allocating the memory and initializing the data for all the data structures in all the slaves. More...
|
|
void | force_calculation (Predictor pi, Predictor pj, Forces &fi) |
| Method that calculate the gravitational interaction between two particles. More...
|
|
void | init_acc_jrk () |
| Method that initializes the acceleration and it first derivative. More...
|
|
void | update_acc_jrk (unsigned int nact) |
| Method that call the force_calculation method for every and particles interaction of the ones. More...
|
|
void | predicted_pos_vel (double ITIME) |
| Method that predict all the particles to the current integration time. More...
|
|
void | correction_pos_vel (double ITIME, unsigned int nact) |
| Method that correct the positions and velocities of the particles at the end of every integration step. More...
|
|
void | integration () |
| Integration virtual method to be implemented. 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 MPI 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.
Please note that this class uses the variable MPI_NUM_SLAVES to set an upper limit for the amount of slaves that can be use.