{
if (atomSetChanged)
{
- gmx_pme_reinit_atoms(pme, nat, pme_pp->chargeA.data());
+ gmx_pme_reinit_atoms(pme, nat, pme_pp->chargeA.data(), pme_pp->chargeB.data());
if (useGpuForPme)
{
stateGpu->reinit(nat, nat);
stepWork.computeVirial = computeEnergyAndVirial;
stepWork.computeEnergy = computeEnergyAndVirial;
stepWork.computeForces = true;
- PmeOutput output;
+ PmeOutput output = { {}, false, 0, { { 0 } }, 0, 0, { { 0 } }, 0 };
if (useGpuForPme)
{
stepWork.haveDynamicBox = false;
// TODO: with pme on GPU the receive should make a list of synchronizers and pass it here #3157
auto xReadyOnDevice = nullptr;
- pme_gpu_launch_spread(pme, xReadyOnDevice, wcycle);
+ pme_gpu_launch_spread(pme, xReadyOnDevice, wcycle, lambda_q);
pme_gpu_launch_complex_transforms(pme, wcycle, stepWork);
- pme_gpu_launch_gather(pme, wcycle);
- output = pme_gpu_wait_finish_task(pme, computeEnergyAndVirial, wcycle);
+ pme_gpu_launch_gather(pme, wcycle, lambda_q);
+ output = pme_gpu_wait_finish_task(pme, computeEnergyAndVirial, lambda_q, wcycle);
pme_gpu_reinit_computation(pme, wcycle);
}
else