wallcycle_sub_start(wcycle, ewcsNONBONDED);
}
- nbv->dispatchNonbondedKernel(ilocality, *ic, flags, clearF, fr, enerd, nrnb);
+ nbv->dispatchNonbondedKernel(ilocality, *ic, flags, clearF, *fr, enerd, nrnb);
if (!nbv->useGpu())
{
nbv->atomdata_add_nbat_f_to_f(Nbnxm::AtomLocality::NonLocal,
forceOut.f, wcycle);
+
+ if (fr->nbv->emulateGpu() && (flags & GMX_FORCE_VIRIAL))
+ {
+ nbnxn_atomdata_add_nbat_fshift_to_fshift(nbv->nbat.get(),
+ fr->fshift);
+ }
}
}
const interaction_const_t &ic,
int forceFlags,
int clearF,
- t_forcerec *fr,
+ const t_forcerec &fr,
gmx_enerdata_t *enerd,
t_nrnb *nrnb)
{
kernelSetup(),
nbat.get(),
ic,
- fr->shift_vec,
+ fr.shift_vec,
forceFlags,
clearF,
enerd->grpp.ener[egCOULSR].data(),
- fr->bBHAM ?
+ fr.bBHAM ?
enerd->grpp.ener[egBHAMSR].data() :
enerd->grpp.ener[egLJSR].data());
break;
case Nbnxm::KernelType::Cpu8x8x8_PlainC:
nbnxn_kernel_gpu_ref(pairlistSet.gpuList(),
nbat.get(), &ic,
- fr->shift_vec,
+ fr.shift_vec,
forceFlags,
clearF,
nbat->out[0].f,
- fr->fshift[0],
+ nbat->out[0].fshift.data(),
enerd->grpp.ener[egCOULSR].data(),
- fr->bBHAM ?
+ fr.bBHAM ?
enerd->grpp.ener[egBHAMSR].data() :
enerd->grpp.ener[egLJSR].data());
break;
const interaction_const_t &ic,
int forceFlags,
int clearF,
- t_forcerec *fr,
+ const t_forcerec &fr,
gmx_enerdata_t *enerd,
t_nrnb *nrnb);