Reimplement constant acceleration groups
[alexxy/gromacs.git] / src / gromacs / mdtypes / mdatom.h
index 55d457f0af2b07c7a83bb9126988c73079a6c6f0..c80ffdeaeddc1024651a1bdfcdd47b8292cc333c 100644 (file)
 #define GMX_MDTYPES_MDATOM_H
 
 #include "gromacs/math/vectypes.h"
-#include "gromacs/utility/basedefinitions.h"
 #include "gromacs/utility/real.h"
 
+enum class ParticleType : int;
+
 typedef struct t_mdatoms
 {
     //! Total mass in state A
@@ -63,11 +64,11 @@ typedef struct t_mdatoms
     //! Number of energy groups
     int nenergrp;
     //! Do we have multiple center of mass motion removal groups
-    gmx_bool bVCMgrps;
+    bool bVCMgrps;
     //! Do we have any virtual sites?
-    gmx_bool haveVsites;
+    bool haveVsites;
     //! Do we have atoms that are frozen along 1 or 2 (not 3) dimensions?
-    gmx_bool havePartiallyFrozenAtoms;
+    bool havePartiallyFrozenAtoms;
     //! Number of perturbed atoms
     int nPerturbed;
     //! Number of atoms for which the mass is perturbed
@@ -77,7 +78,7 @@ typedef struct t_mdatoms
     //! Number of atoms for which the type is perturbed
     int nTypePerturbed;
     //! Do we have orientation restraints
-    gmx_bool bOrires;
+    bool bOrires;
     //! Atomic mass in A state
     real* massA;
     //! Atomic mass in B state
@@ -105,17 +106,19 @@ typedef struct t_mdatoms
     //! Van der Waals radius sigma^3 in the B state
     real* sigma3B;
     //! Is this atom perturbed
-    gmx_bool* bPerturbed;
+    bool* bPerturbed;
     //! Type of atom in the A state
     int* typeA;
     //! Type of atom in the B state
     int* typeB;
     //! Particle type
-    unsigned short* ptype;
+    ParticleType* ptype;
     //! Group index for temperature coupling
     unsigned short* cTC;
     //! Group index for energy matrix
     unsigned short* cENER;
+    //! Group index for acceleration
+    unsigned short* cACC;
     //! Group index for freezing
     unsigned short* cFREEZE;
     //! Group index for center of mass motion removal