void do_force_lowlevel(t_forcerec* fr,
const t_inputrec* ir,
- const InteractionDefinitions& idef,
const t_commrec* cr,
const gmx_multisim_t* ms,
t_nrnb* nrnb,
history_t* hist,
gmx::ForceOutputs* forceOutputs,
gmx_enerdata_t* enerd,
- t_fcdata* fcd,
const matrix box,
const real* lambda,
const rvec* mu_tot,
t_pbc pbc;
/* Check whether we need to take into account PBC in listed interactions. */
- const auto needPbcForListedForces =
- fr->bMolPBC && stepWork.computeListedForces && haveCpuListedForces(*fr, idef, *fcd);
+ ListedForces& listedForces = *fr->listedForces;
+ const auto needPbcForListedForces =
+ fr->bMolPBC && stepWork.computeListedForces && listedForces.haveCpuListedForces();
if (needPbcForListedForces)
{
/* Since all atoms are in the rectangular or triclinic unit-cell,
set_pbc_dd(&pbc, fr->pbcType, DOMAINDECOMP(cr) ? cr->dd->numCells : nullptr, TRUE, box);
}
- do_force_listed(wcycle, box, ir->fepvals, cr, ms, idef, x, xWholeMolecules, hist,
- forceOutputs, fr, &pbc, enerd, nrnb, lambda, md, fcd,
- DOMAINDECOMP(cr) ? cr->dd->globalAtomIndices.data() : nullptr, stepWork);
+ listedForces.calculate(wcycle, box, ir->fepvals, cr, ms, x, xWholeMolecules, hist,
+ forceOutputs, fr, &pbc, enerd, nrnb, lambda, md,
+ DOMAINDECOMP(cr) ? cr->dd->globalAtomIndices.data() : nullptr, stepWork);
}
const bool computePmeOnCpu = (EEL_PME(fr->ic->eeltype) || EVDW_PME(fr->ic->vdwtype))