NAMD
|
#include <ComputeLonepairsCUDA.h>
Classes | |
struct | LonepairBisector |
struct | LonepairColinear |
struct | LonepairRelative |
Public Member Functions | |
ComputeLonepairsCUDA () | |
~ComputeLonepairsCUDA () | |
void | updateAtoms (std::vector< HomePatch *> patchList, std::vector< AtomMap *> &atomMapsList, const std::vector< CudaLocalRecord > &localRecords, const int *h_globalToLocalID, cudaStream_t stream) |
Prepare the device lone pair lists from lphosts in the Molecule class. More... | |
void | reposition (double *d_pos_x, double *d_pos_y, double *d_pos_z, cudaStream_t stream) const |
Determine the positions of lone pairs. Should be called before force evaluations. More... | |
void | redistributeForce (double *d_f_normal_x, double *d_f_normal_y, double *d_f_normal_z, double *d_f_nbond_x, double *d_f_nbond_y, double *d_f_nbond_z, double *d_f_slow_x, double *d_f_slow_y, double *d_f_slow_z, cudaTensor *d_virial_normal, cudaTensor *d_virial_nbond, cudaTensor *d_virial_slow, const double *d_pos_x, const double *d_pos_y, const double *d_pos_z, const int maxForceNumber, const int doVirial, cudaStream_t stream) const |
Project the forces on lone pairs to host atoms. Should be called after force evaluations and before the integration. More... | |
Definition at line 13 of file ComputeLonepairsCUDA.h.
ComputeLonepairsCUDA::ComputeLonepairsCUDA | ( | ) |
Definition at line 23 of file ComputeLonepairsCUDA.C.
ComputeLonepairsCUDA::~ComputeLonepairsCUDA | ( | ) |
void ComputeLonepairsCUDA::redistributeForce | ( | double * | d_f_normal_x, |
double * | d_f_normal_y, | ||
double * | d_f_normal_z, | ||
double * | d_f_nbond_x, | ||
double * | d_f_nbond_y, | ||
double * | d_f_nbond_z, | ||
double * | d_f_slow_x, | ||
double * | d_f_slow_y, | ||
double * | d_f_slow_z, | ||
cudaTensor * | d_virial_normal, | ||
cudaTensor * | d_virial_nbond, | ||
cudaTensor * | d_virial_slow, | ||
const double * | d_pos_x, | ||
const double * | d_pos_y, | ||
const double * | d_pos_z, | ||
const int | maxForceNumber, | ||
const int | doVirial, | ||
cudaStream_t | stream | ||
) | const |
Project the forces on lone pairs to host atoms. Should be called after force evaluations and before the integration.
Definition at line 154 of file ComputeLonepairsCUDA.C.
References redistributeForceBisector(), redistributeForceColinear(), and redistributeForceRelative().
void ComputeLonepairsCUDA::reposition | ( | double * | d_pos_x, |
double * | d_pos_y, | ||
double * | d_pos_z, | ||
cudaStream_t | stream | ||
) | const |
Determine the positions of lone pairs. Should be called before force evaluations.
Definition at line 138 of file ComputeLonepairsCUDA.C.
References repositionBisector(), repositionColinear(), and repositionRelative().
void ComputeLonepairsCUDA::updateAtoms | ( | std::vector< HomePatch *> | patchList, |
std::vector< AtomMap *> & | atomMapsList, | ||
const std::vector< CudaLocalRecord > & | localRecords, | ||
const int * | h_globalToLocalID, | ||
cudaStream_t | stream | ||
) |
Prepare the device lone pair lists from lphosts in the Molecule class.
Update the SOA indexes of atoms. Should be called on atom migration steps.
Definition at line 57 of file ComputeLonepairsCUDA.C.
References allocate_device_async(), lphost::angle, lphost::atom1, lphost::atom2, lphost::atom3, lphost::atom4, copy_HtoD(), cudaCheck, deallocate_device_async(), lphost::dihedral, lphost::distance, Molecule::get_lphost(), HomePatch::getAtomList(), Patch::getNumAtoms(), globalAtomIDToSOAID(), Node::molecule, NAMD_die(), lphost::numhosts, and Node::Object().