Decouple coordinates buffer management from buffer ops in NBNXM
[alexxy/gromacs.git] / src / gromacs / ewald / pme_gpu_internal.cpp
index aef078d8d4021b77efee262a360e0aae10fdf926..8960f584efdf73ab7bc7b0e13ca40ae00ad781dd 100644 (file)
@@ -1289,16 +1289,11 @@ void pme_gpu_gather(PmeGpu                *pmeGpu,
     }
 }
 
-void * pme_gpu_get_kernelparam_coordinates(const PmeGpu *pmeGpu)
+DeviceBuffer<float> pme_gpu_get_kernelparam_coordinates(const PmeGpu *pmeGpu)
 {
-    if (pmeGpu && pmeGpu->kernelParams)
-    {
-        return pmeGpu->kernelParams->atoms.d_coordinates;
-    }
-    else
-    {
-        return nullptr;
-    }
+    GMX_ASSERT(pmeGpu && pmeGpu->kernelParams, "PME GPU device buffer was requested in non-GPU build or before the GPU PME was initialized.");
+
+    return pmeGpu->kernelParams->atoms.d_coordinates;
 }
 
 void * pme_gpu_get_kernelparam_forces(const PmeGpu *pmeGpu)