#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
+#include "gromacs/mdtypes/nblist.h"
#include "gromacs/mdtypes/simulation_workload.h"
#include "gromacs/nbnxm/gpu_data_mgmt.h"
#include "gromacs/nbnxm/nbnxm.h"
kernel_data.lambda = lambda;
kernel_data.dvdl = dvdl_nb;
- kernel_data.energygrp_elec = enerd->grpp.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR].data();
- kernel_data.energygrp_vdw = enerd->grpp.energyGroupPairTerms[NonBondedEnergyTerms::LJSR].data();
+ gmx::ArrayRef<real> energygrp_elec = enerd->grpp.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR];
+ gmx::ArrayRef<real> energygrp_vdw = enerd->grpp.energyGroupPairTerms[NonBondedEnergyTerms::LJSR];
GMX_ASSERT(gmx_omp_nthreads_get(emntNonbonded) == nbl_fep.ssize(),
"Number of lists should be same as number of NB threads");
try
{
gmx_nb_free_energy_kernel(
- nbl_fep[th].get(), x, forceWithShiftForces, fr, &mdatoms, &kernel_data, nrnb);
+ nbl_fep[th].get(), x, forceWithShiftForces, fr, &mdatoms, &kernel_data, energygrp_elec, energygrp_vdw, nrnb);
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR
}
| GMX_NONBONDED_DO_FOREIGNLAMBDA;
kernel_data.lambda = lam_i;
kernel_data.dvdl = dvdl_nb;
- kernel_data.energygrp_elec =
- enerd->foreign_grpp.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR].data();
- kernel_data.energygrp_vdw =
- enerd->foreign_grpp.energyGroupPairTerms[NonBondedEnergyTerms::LJSR].data();
+ gmx::ArrayRef<real> energygrp_elec =
+ enerd->foreign_grpp.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR];
+ gmx::ArrayRef<real> energygrp_vdw =
+ enerd->foreign_grpp.energyGroupPairTerms[NonBondedEnergyTerms::LJSR];
for (gmx::index i = 0; i < 1 + enerd->foreignLambdaTerms.numLambdas(); i++)
{
{
try
{
- gmx_nb_free_energy_kernel(
- nbl_fep[th].get(), x, forceWithShiftForces, fr, &mdatoms, &kernel_data, nrnb);
+ gmx_nb_free_energy_kernel(nbl_fep[th].get(),
+ x,
+ forceWithShiftForces,
+ fr,
+ &mdatoms,
+ &kernel_data,
+ energygrp_elec,
+ energygrp_vdw,
+ nrnb);
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR
}