-/*! \brief environment variable to enable GPU P2P communication */
-static const bool c_enableGpuHaloExchange = (getenv("GMX_GPU_DD_COMMS") != nullptr)
- && GMX_THREAD_MPI && (GMX_GPU == GMX_GPU_CUDA);
-
-/*! \brief environment variable to enable GPU buffer operations */
-static const bool c_enableGpuBufOps = (getenv("GMX_USE_GPU_BUFFER_OPS") != nullptr);
+/*! \brief Structure that holds boolean flags corresponding to the development
+ * features present enabled through environemnt variables.
+ *
+ */
+struct DevelopmentFeatureFlags
+{
+ ///! True if the Buffer ops development feature is enabled
+ // TODO: when the trigger of the buffer ops offload is fully automated this should go away
+ bool enableGpuBufferOps = false;
+ ///! True if the update-constraints development feature is enabled
+ // TODO This needs to be reomved when the code gets cleaned up of GMX_UPDATE_CONSTRAIN_GPU
+ bool useGpuUpdateConstrain = false;
+ ///! True if the GPU halo exchange development feature is enabled
+ bool enableGpuHaloExchange = false;
+ ///! True if the PME PP direct commuinication GPU development feature is enabled
+ bool enableGpuPmePPComm = false;
+};