Implements the VirtualSitesHandler class and vsite standalone functions.
- Author
- Berk Hess hess@.nosp@m.kth..nosp@m.se
|
static int | gmx::vsiteIlistNrCount (ArrayRef< const InteractionList > ilist) |
| Returns the sum of the vsite ilist sizes over all vsite types. More...
|
|
static int | gmx::pbc_rvec_sub (const t_pbc *pbc, const rvec xi, const rvec xj, rvec dx) |
| Computes the distance between xi and xj, pbc is used when pbc!=nullptr.
|
|
static real | gmx::inverseNorm (const rvec x) |
| Returns the 1/norm(x)
|
|
static PbcMode | gmx::getPbcMode (const t_pbc *pbcPtr) |
| Returns the PBC mode based on the system PBC and vsite properties. More...
|
|
template<VSiteCalculatePosition calculatePosition, VSiteCalculateVelocity calculateVelocity> |
static void | gmx::construct_vsites_thread (ArrayRef< RVec > x, ArrayRef< RVec > v, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
| Executes the vsite construction task for a single thread. More...
|
|
template<VSiteCalculatePosition calculatePosition, VSiteCalculateVelocity calculateVelocity> |
static void | gmx::construct_vsites (const ThreadingInfo *threadingInfo, ArrayRef< RVec > x, ArrayRef< RVec > v, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const DomainInfo &domainInfo, const matrix box) |
| Dispatch the vsite construction tasks for all threads. More...
|
|
void | gmx::constructVirtualSites (ArrayRef< RVec > x, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist) |
| Create positions of vsite atoms based for the local system. More...
|
|
static int | gmx::vsite_count (ArrayRef< const InteractionList > ilist, int ftype) |
| Returns the number of virtual sites in the interaction list, for VSITEN the number of atoms.
|
|
template<VirialHandling virialHandling> |
static void | gmx::spreadForceForThread (ArrayRef< const RVec > x, ArrayRef< RVec > f, ArrayRef< RVec > fshift, matrix dxdf, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
| Executes the force spreading task for a single thread.
|
|
static void | gmx::spreadForceWrapper (ArrayRef< const RVec > x, ArrayRef< RVec > f, const VirialHandling virialHandling, ArrayRef< RVec > fshift, matrix dxdf, const bool clearDxdf, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
| Wrapper function for calling the templated thread-local spread function.
|
|
static void | gmx::clearTaskForceBufferUsedElements (InterdependentTask *idTask) |
| Clears the task force buffer elements that are written by task idTask.
|
|
static std::vector< int > | gmx::makeAtomToGroupMapping (const gmx::RangePartitioning &grouping) |
| Returns the an array with group indices for each atom. More...
|
|
int | gmx::countNonlinearVsites (const gmx_mtop_t &mtop) |
| Return the number of non-linear virtual site constructions in the system.
|
|
int | gmx::countInterUpdategroupVsites (const gmx_mtop_t &mtop, ArrayRef< const RangePartitioning > updateGroupingsPerMoleculeType) |
| Return the number of virtual sites that cross update groups. More...
|
|
std::unique_ptr
< VirtualSitesHandler > | gmx::makeVirtualSitesHandler (const gmx_mtop_t &mtop, const t_commrec *cr, PbcType pbcType, ArrayRef< const RangePartitioning > updateGroupingPerMoleculeType) |
| Create the virtual site handler. More...
|
|
| gmx::iparams_ (mtop.ffparams.iparams) |
|
static void | gmx::flagAtom (InterdependentTask *idTask, const int atom, const int numThreads, const int numAtomsPerThread) |
| Flag that atom atom which is home in another task, if it has not already been added before.
|
|
static void | gmx::assignVsitesToThread (VsiteThread *tData, int thread, int nthread, int natperthread, gmx::ArrayRef< int > taskIndex, ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > ip, ArrayRef< const ParticleType > ptype) |
| Here we try to assign all vsites that are in our local range. More...
|
|
static void | gmx::assignVsitesToSingleTask (VsiteThread *tData, int task, gmx::ArrayRef< const int > taskIndex, ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > ip) |
| Assign all vsites with taskIndex[]==task to task tData.
|
|