+ //! Index within the system of the first atom in the molecule block
+ int indexOfFirstAtomInMoleculeBlock = 0;
+ //! Index within the system of the last atom in the molecule block
+ int indexOfLastAtomInMoleculeBlock = 0;
+ /*! \brief Atom info for each atom in the block.
+ *
+ * The typical case is that all atoms are identical for each
+ * molecule of the block, and if so this vector has size equal to
+ * the number of atoms in the molecule.
+ *
+ * An example of an atypical case is QM/MM, where multiple
+ * molecules might be present and different molecules have
+ * different atoms within any one QM group or region. Now there are
+ * multiple kinds of molecules with the same connectivity, so we simply
+ * write out the atom info for the entire molecule block. Then the
+ * size equals the product of the number of atoms in the
+ * molecule and the number of molecules.
+ *
+ * The vector needs to be indexed accordingly. */
+ std::vector<int> atomInfo;