Top-level non-bonded data structure for the Verlet-type cut-off scheme.
|
| nonbonded_verlet_t (std::unique_ptr< PairlistSets > pairlistSets, std::unique_ptr< PairSearch > pairSearch, std::unique_ptr< nbnxn_atomdata_t > nbat, const Nbnxm::KernelSetup &kernelSetup, gmx_nbnxn_gpu_t *gpu_nbv, gmx_wallcycle *wcycle) |
| Constructs an object from its components.
|
|
bool | useGpu () const |
| Returns whether a GPU is use for the non-bonded calculations.
|
|
bool | emulateGpu () const |
| Returns whether a GPU is emulated for the non-bonded calculations.
|
|
bool | pairlistIsSimple () const |
| Return whether the pairlist is of simple, CPU type.
|
|
void | initPairlistSets (bool haveMultipleDomains) |
| Initialize the pair list sets, TODO this should be private.
|
|
gmx::ArrayRef< const int > | getLocalAtomOrder () const |
| Returns the order of the local atoms on the grid.
|
|
void | setLocalAtomOrder () |
| Sets the order of the local atoms to the order grid atom ordering.
|
|
gmx::ArrayRef< const int > | getGridIndices () const |
| Returns the index position of the atoms on the search grid.
|
|
void | constructPairlist (Nbnxm::InteractionLocality iLocality, const t_blocka *excl, int64_t step, t_nrnb *nrnb) |
| Constructs the pairlist for the given locality.
|
|
void | setAtomProperties (const t_mdatoms &mdatoms, gmx::ArrayRef< const int > atomInfo) |
| Updates all the atom properties in Nbnxm.
|
|
void | convertCoordinates (Nbnxm::AtomLocality locality, bool fillLocal, gmx::ArrayRef< const gmx::RVec > coordinates) |
| Convert the coordinates to NBNXM format for the given locality. More...
|
|
void | copyCoordinatesToGpu (Nbnxm::AtomLocality locality, bool fillLocal, gmx::ArrayRef< const gmx::RVec > coordinatesHost) |
| Copy coordinates to the GPU memory. More...
|
|
DeviceBuffer< float > | getDeviceCoordinates () |
| Getter for the GPU coordinates buffer. More...
|
|
void | convertCoordinatesGpu (Nbnxm::AtomLocality locality, bool fillLocal, DeviceBuffer< float > coordinatesDevice) |
| Convert the coordinates to NBNXM format on the GPU for the given locality. More...
|
|
void | atomdata_init_copy_x_to_nbat_x_gpu () |
| Init for GPU version of setup coordinates in Nbnxm.
|
|
void | insertNonlocalGpuDependency (Nbnxm::InteractionLocality interactionLocality) |
| Sync the nonlocal GPU stream with dependent tasks in the local queue.
|
|
const PairlistSets & | pairlistSets () const |
| Returns a reference to the pairlist sets.
|
|
bool | isDynamicPruningStepCpu (int64_t step) const |
| Returns whether step is a dynamic list pruning step, for CPU lists.
|
|
bool | isDynamicPruningStepGpu (int64_t step) const |
| Returns whether step is a dynamic list pruning step, for GPU lists.
|
|
void | dispatchPruneKernelCpu (Nbnxm::InteractionLocality iLocality, const rvec *shift_vec) |
| Dispatches the dynamic pruning kernel for the given locality, for CPU lists.
|
|
void | dispatchPruneKernelGpu (int64_t step) |
| Dispatches the dynamic pruning kernel for GPU lists.
|
|
void | dispatchNonbondedKernel (Nbnxm::InteractionLocality iLocality, const interaction_const_t &ic, const gmx::StepWorkload &stepWork, int clearF, const t_forcerec &fr, gmx_enerdata_t *enerd, t_nrnb *nrnb) |
| Executes the non-bonded kernel of the GPU or launches it on the GPU.
|
|
void | dispatchFreeEnergyKernel (Nbnxm::InteractionLocality iLocality, const t_forcerec *fr, rvec x[], gmx::ForceWithShiftForces *forceWithShiftForces, const t_mdatoms &mdatoms, t_lambda *fepvals, real *lambda, gmx_enerdata_t *enerd, const gmx::StepWorkload &stepWork, t_nrnb *nrnb) |
| Executes the non-bonded free-energy kernel, always runs on the CPU.
|
|
void | atomdata_add_nbat_f_to_f (Nbnxm::AtomLocality locality, gmx::ArrayRef< gmx::RVec > force) |
| Add the forces stored in nbat to f, zeros the forces in nbat. More...
|
|
void | atomdata_add_nbat_f_to_f_gpu (Nbnxm::AtomLocality locality, DeviceBuffer< float > totalForcesDevice, void *forcesPmeDevice, GpuEventSynchronizer *pmeForcesReady, bool useGpuFPmeReduction, bool accumulateForce) |
| Add the forces stored in nbat to total force using GPU buffer opse. More...
|
|
DeviceBuffer< float > | getDeviceForces () |
| Getter for the GPU force buffer. More...
|
|
void | atomdata_init_add_nbat_f_to_f_gpu () |
| Outer body of function to perform initialization for F buffer operations on GPU.
|
|
void | launch_copy_f_to_gpu (rvec *f, Nbnxm::AtomLocality locality) |
| H2D transfer of force buffer.
|
|
void | launch_copy_f_from_gpu (rvec *f, Nbnxm::AtomLocality locality) |
| D2H transfer of force buffer.
|
|
void | launch_copy_x_from_gpu (rvec *f, Nbnxm::AtomLocality locality) |
| D2H transfer of coordinate buffer.
|
|
void | wait_for_gpu_force_reduction (Nbnxm::AtomLocality locality) |
| Wait for GPU force reduction task and D2H transfer of its results to complete. More...
|
|
void * | get_gpu_xrvec () |
| return GPU pointer to x in rvec format
|
|
void * | get_x_on_device_event () |
| return pointer to GPU event recorded when coordinates have been copied to device
|
|
void | wait_nonlocal_x_copy_D2H_done () |
| Wait for non-local copy of coordinate buffer from device to host.
|
|
void * | get_gpu_frvec () |
| return GPU pointer to f in rvec format
|
|
void | stream_local_wait_for_nonlocal () |
| Ensure local stream waits for non-local stream.
|
|
const Nbnxm::KernelSetup & | kernelSetup () const |
| Return the kernel setup.
|
|
real | pairlistInnerRadius () const |
| Returns the outer radius for the pair list.
|
|
real | pairlistOuterRadius () const |
| Returns the outer radius for the pair list.
|
|
void | changePairlistRadii (real rlistOuter, real rlistInner) |
| Changes the pair-list outer and inner radius.
|
|
void | setupGpuShortRangeWork (const gmx::GpuBonded *gpuBonded, const Nbnxm::InteractionLocality iLocality) |
| Set up internal flags that indicate what type of short-range work there is.
|
|
bool | haveGpuShortRangeWork (const Nbnxm::AtomLocality aLocality) |
| Returns true if there is GPU short-range work for the given atom locality.
|
|