if (numFrozenDims == DIM)
{
/* Do not remove COM motion for this fully frozen atom */
- if (groups->groups[SimulationAtomGroupType::MassCenterVelocityRemoval].empty())
+ if (groups->groupNumbers[SimulationAtomGroupType::MassCenterVelocityRemoval].empty())
{
- groups->groups[SimulationAtomGroupType::MassCenterVelocityRemoval].resize(numAtoms, 0);
+ groups->groupNumbers[SimulationAtomGroupType::MassCenterVelocityRemoval].resize(
+ numAtoms, 0);
}
- groups->groups[SimulationAtomGroupType::MassCenterVelocityRemoval][a] = vcmRestGroup;
+ groups->groupNumbers[SimulationAtomGroupType::MassCenterVelocityRemoval][a] = vcmRestGroup;
numFullyFrozenVcmAtoms++;
}
else if (numFrozenDims > 0)
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2011,2014,2015,2016,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2011,2014,2015,2016,2018,2019,2020, 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.
*/
struct SimulationGroups
{
- //! Groups of particles
+ // TODO: collect groups and groupNumbers in a struct for each group type
+ //! Group numbers for each of the different SimulationAtomGroupType groups.
gmx::EnumerationArray<SimulationAtomGroupType, AtomGroupIndices> groups;
//! Names of groups, stored as pointer to the entries in the symbol table.
std::vector<char**> groupNames;
- //! Group numbers for the different SimulationAtomGroupType groups.
+ //! Indices into groups for each atom for each of the different SimulationAtomGroupType groups.
gmx::EnumerationArray<SimulationAtomGroupType, std::vector<unsigned char>> groupNumbers;
/*! \brief
- * Number of group numbers for a single SimulationGroup.
+ * Number of atoms for which group numbers are stored for a single SimulationGroup.
*
- * \param[in] group Integer value for the group type.
+ * \param[in] group The group type.
*/
int numberOfGroupNumbers(SimulationAtomGroupType group) const
{