Gromacs
2024.3
|
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. | |
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, gmx::ArrayRef< const real > lambda, gmx::ArrayRef< real > dvdl, gmx::ArrayRef< const real > chargeA, gmx::ArrayRef< const real > chargeB, gmx::ArrayRef< const bool > atomIsPerturbed, gmx::ArrayRef< const unsigned short > cENER, const int numEnergyGroups, 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, gmx::ArrayRef< const real > lambda, gmx::ArrayRef< const real > chargeA, gmx::ArrayRef< const real > chargeB, gmx::ArrayRef< const bool > atomIsPerturbed, gmx::ArrayRef< const unsigned short > cENER, const int numEnergyGroups, 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, gmx::ArrayRef< real > epot, gmx::ArrayRef< real > dvdl, t_nrnb *nrnb, gmx::ArrayRef< const real > lambda, gmx::ArrayRef< const real > chargeA, gmx::ArrayRef< const real > chargeB, gmx::ArrayRef< const bool > atomIsPerturbed, gmx::ArrayRef< const unsigned short > cENER, int nPerturbed, t_fcdata *fcd, int *global_atom_index) |
As calc_listed(), but only determines the potential energy for the perturbed interactions. More... | |
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, | ||
gmx::ArrayRef< real > | epot, | ||
gmx::ArrayRef< real > | dvdl, | ||
t_nrnb * | nrnb, | ||
gmx::ArrayRef< const real > | lambda, | ||
gmx::ArrayRef< const real > | chargeA, | ||
gmx::ArrayRef< const real > | chargeB, | ||
gmx::ArrayRef< const bool > | atomIsPerturbed, | ||
gmx::ArrayRef< const unsigned short > | cENER, | ||
int | nPerturbed, | ||
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.