Two sets of coefficients for Coulomb FEP PME on GPU
[alexxy/gromacs.git] / src / gromacs / ewald / pme_gpu_staging.h
index 4a95c0cda85dd943d7d87c1f8de1c556a3259dbc..7439027639413404df5ba5d1aaea348c2dfc2329 100644 (file)
 #include "gromacs/gpu_utils/hostallocator.h"
 #include "gromacs/math/vectypes.h"
 
+#ifndef NUM_STATES
+//! Number of FEP states.
+#    define NUM_STATES 2
+#endif
+
 /*! \internal \brief
  * The PME GPU intermediate buffers structure, included in the main PME GPU structure by value.
  * Buffers are managed by the PME GPU module.
@@ -64,9 +69,9 @@ struct PmeGpuStaging
     gmx::PaddedHostVector<gmx::RVec> h_forces;
 
     /*! \brief Virial and energy intermediate host-side buffer. Size is PME_GPU_VIRIAL_AND_ENERGY_COUNT. */
-    float* h_virialAndEnergy;
+    float* h_virialAndEnergy[NUM_STATES];
     /*! \brief B-spline values intermediate host-side buffer. */
-    float* h_splineModuli;
+    float* h_splineModuli[NUM_STATES];
 
     /*! \brief Pointer to the host memory with B-spline values. Only used for host-side gather, or unit tests */
     float* h_theta;