Gromacs  2024.3
 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.
 
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...
 

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,
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.