Gromacs  2021.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
anonymous_namespace{listed_forces.cpp} Namespace Reference

Functions

bool isPairInteraction (int ftype)
 Return true if ftype is an explicit pair-listed LJ or COULOMB interaction type: bonded LJ (usually 1-4), or special listed non-bonded for FEP.
 
void zero_thread_output (f_thread_t *f_t)
 Zero thread-local output buffers.
 
void reduce_thread_forces (gmx::ArrayRef< gmx::RVec > force, const bonded_threading_t *bt, int nthreads)
 Reduce thread-local force buffers.
 
void reduce_thread_output (gmx::ForceWithShiftForces *forceWithShiftForces, real *ener, gmx_grppairener_t *grpp, real *dvdl, const bonded_threading_t *bt, const gmx::StepWorkload &stepWork)
 Reduce thread-local forces, shift forces and energies.
 
BondedKernelFlavor selectBondedKernelFlavor (const gmx::StepWorkload &stepWork, const bool useSimdKernels, const bool havePerturbedInteractions)
 Returns the bonded kernel flavor. More...
 
real calc_one_bond (int thread, int ftype, const InteractionDefinitions &idef, ArrayRef< const int > iatoms, const int numNonperturbedInteractions, const WorkDivision &workDivision, const rvec x[], rvec4 f[], rvec fshift[], const t_forcerec *fr, const t_pbc *pbc, gmx_grppairener_t *grpp, t_nrnb *nrnb, const real *lambda, real *dvdl, const t_mdatoms *md, t_fcdata *fcd, const gmx::StepWorkload &stepWork, int *global_atom_index)
 Calculate one element of the list of bonded interactions for this thread.
 
void calc_listed (struct gmx_wallcycle *wcycle, const InteractionDefinitions &idef, bonded_threading_t *bt, const rvec x[], gmx::ForceOutputs *forceOutputs, const t_forcerec *fr, const t_pbc *pbc, gmx_enerdata_t *enerd, t_nrnb *nrnb, const real *lambda, const t_mdatoms *md, t_fcdata *fcd, int *global_atom_index, const gmx::StepWorkload &stepWork)
 Calculates all listed force interactions.
 
void calc_listed_lambda (const InteractionDefinitions &idef, bonded_threading_t *bt, const rvec x[], const t_forcerec *fr, const struct t_pbc *pbc, gmx::ArrayRef< real > forceBufferLambda, gmx::ArrayRef< gmx::RVec > shiftForceBufferLambda, gmx_grppairener_t *grpp, real *epot, gmx::ArrayRef< real > dvdl, t_nrnb *nrnb, const real *lambda, const t_mdatoms *md, t_fcdata *fcd, int *global_atom_index)
 As calc_listed(), but only determines the potential energy for the perturbed interactions. More...
 

Function Documentation

void anonymous_namespace{listed_forces.cpp}::calc_listed_lambda ( const InteractionDefinitions &  idef,
bonded_threading_t bt,
const rvec  x[],
const t_forcerec *  fr,
const struct t_pbc pbc,
gmx::ArrayRef< real forceBufferLambda,
gmx::ArrayRef< gmx::RVec shiftForceBufferLambda,
gmx_grppairener_t *  grpp,
real epot,
gmx::ArrayRef< real dvdl,
t_nrnb *  nrnb,
const real lambda,
const t_mdatoms md,
t_fcdata *  fcd,
int *  global_atom_index 
)

As calc_listed(), but only determines the potential energy for the perturbed interactions.

The shift forces in fr are not affected.

BondedKernelFlavor anonymous_namespace{listed_forces.cpp}::selectBondedKernelFlavor ( const gmx::StepWorkload stepWork,
const bool  useSimdKernels,
const bool  havePerturbedInteractions 
)

Returns the bonded kernel flavor.

Note that energies are always requested when the virial is requested (performance gain would be small). Note that currently we do not have bonded kernels that do not compute forces.