Reimplement constant acceleration groups
[alexxy/gromacs.git] / src / gromacs / mdtypes / mdatom.h
index 56b323106363db5c3d28b44f05e82432ad7cb6bf..c80ffdeaeddc1024651a1bdfcdd47b8292cc333c 100644 (file)
@@ -3,7 +3,8 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012,2013,2014,2015,2016,2017,2019, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014,2015,2016 by the GROMACS development team.
+ * Copyright (c) 2017,2019,2020,2021, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 #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
@@ -62,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
@@ -76,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
@@ -104,13 +106,13 @@ 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
@@ -127,8 +129,6 @@ typedef struct t_mdatoms
     unsigned short* cU2;
     //! Group index for orientation restraints
     unsigned short* cORF;
-    //! QMMM atoms
-    gmx_bool* bQM;
     //! Number of atoms on this processor. TODO is this still used?
     int homenr;
     //! The lambda value used to create the contents of the struct