Convert atomInfo to int64_t
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 3 Jun 2021 08:26:22 +0000 (10:26 +0200)
committerJoe Jordan <ejjordan12@gmail.com>
Fri, 4 Jun 2021 13:35:23 +0000 (13:35 +0000)
This ensures we can use bits from a 64-bit range if we ever need
that. Or easily switch to 32-bit range if that's advantageous.

Refs #4004

24 files changed:
api/nblib/forcecalculator.cpp
api/nblib/forcecalculator.h
api/nblib/gmxcalculator.cpp
api/nblib/gmxcalculator.h
api/nblib/gmxsetup.h
src/gromacs/domdec/domdec_constraints.cpp
src/gromacs/domdec/domdec_constraints.h
src/gromacs/domdec/domdec_internal.h
src/gromacs/domdec/localtopology.cpp
src/gromacs/domdec/partition.cpp
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdtypes/atominfo.h
src/gromacs/mdtypes/forcerec.h
src/gromacs/nbnxm/atomdata.cpp
src/gromacs/nbnxm/atomdata.h
src/gromacs/nbnxm/benchmark/bench_setup.cpp
src/gromacs/nbnxm/benchmark/bench_system.h
src/gromacs/nbnxm/grid.cpp
src/gromacs/nbnxm/grid.h
src/gromacs/nbnxm/gridset.cpp
src/gromacs/nbnxm/gridset.h
src/gromacs/nbnxm/nbnxm.cpp
src/gromacs/nbnxm/nbnxm.h
src/gromacs/nbnxm/pairsearch.h

index e9811f46fb12f4007b799592c8b60e02e4a14148..06a52872b427969763b6921e8565a3c2e3d2a624 100644 (file)
@@ -70,9 +70,9 @@ void ForceCalculator::compute(gmx::ArrayRef<const Vec3> coordinates, gmx::ArrayR
     gmxForceCalculator_->compute(coordinates, forces);
 }
 
-void ForceCalculator::updatePairList(gmx::ArrayRef<const int> particleInfoAllVdW,
-                                     gmx::ArrayRef<Vec3>      coordinates,
-                                     const Box&               box)
+void ForceCalculator::updatePairList(gmx::ArrayRef<const int64_t> particleInfoAllVdW,
+                                     gmx::ArrayRef<Vec3>          coordinates,
+                                     const Box&                   box)
 {
     gmxForceCalculator_->setParticlesOnGrid(particleInfoAllVdW, coordinates, box);
 }
index ca7173aa2c3677a916bf9a1586c6efa1a0a93f2f..8a16c945e2233cb0d92f80cc7eea1d156735a189 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2020, by the GROMACS development team, led by
+ * Copyright (c) 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.
@@ -99,9 +99,9 @@ public:
      * \param coordinates The coordinates to be placed on grids
      * \param[in] box The system simulation box
      */
-    void updatePairList(gmx::ArrayRef<const int> particleInfoAllVdW,
-                        gmx::ArrayRef<Vec3>      coordinates,
-                        const Box&               box);
+    void updatePairList(gmx::ArrayRef<const int64_t> particleInfoAllVdW,
+                        gmx::ArrayRef<Vec3>          coordinates,
+                        const Box&                   box);
 
 private:
     //! GROMACS force calculator to compute forces
index 751ed51518d63043fb7b3b06b145b306bd9bf4ca..81e740f7c0e1cdeb4b66b8f90ce105a264853861 100644 (file)
@@ -87,7 +87,7 @@ void GmxForceCalculator::compute(gmx::ArrayRef<const gmx::RVec> coordinateInput,
     nbv_->atomdata_add_nbat_f_to_f(gmx::AtomLocality::All, forceOutput);
 }
 
-void GmxForceCalculator::setParticlesOnGrid(gmx::ArrayRef<const int>       particleInfoAllVdw,
+void GmxForceCalculator::setParticlesOnGrid(gmx::ArrayRef<const int64_t>   particleInfoAllVdw,
                                             gmx::ArrayRef<const gmx::RVec> coordinates,
                                             const Box&                     box)
 {
index b5cd04382d3d3eb78a86febbe5fbee9a0acd1879..71a56ebb08adbe3d9adb66a28e03e555018a4237 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2020, by the GROMACS development team, led by
+ * Copyright (c) 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.
@@ -94,7 +94,7 @@ public:
     void compute(gmx::ArrayRef<const gmx::RVec> coordinateInput, gmx::ArrayRef<gmx::RVec> forceOutput);
 
     //! Puts particles on a grid based on bounds specified by the box (for every NS step)
-    void setParticlesOnGrid(gmx::ArrayRef<const int>       particleInfoAllVdw,
+    void setParticlesOnGrid(gmx::ArrayRef<const int64_t>   particleInfoAllVdw,
                             gmx::ArrayRef<const gmx::RVec> coordinates,
                             const Box&                     box);
 
index 4b61b2e77eabb4179a2f97446372989a8546d1e3..3382cf17ecfde5f148c4f642eba6f64ae95b7234 100644 (file)
@@ -121,7 +121,7 @@ private:
     std::vector<real> nonbondedParameters_;
 
     //! Particle info where all particles are marked to have Van der Waals interactions
-    std::vector<int> particleInfoAllVdw_;
+    std::vector<int64_t> particleInfoAllVdw_;
 
     //! GROMACS force calculator to compute forces
     std::unique_ptr<GmxForceCalculator> gmxForceCalculator_;
index 9a6813dfe239d4c7a9fdac2a472fae65bca53793..6be77ec4b22f76b3307fc010289dc8dc995f533b 100644 (file)
@@ -223,7 +223,7 @@ static void walk_out(int                       con,
 /*! \brief Looks up SETTLE constraints for a range of charge-groups */
 static void atoms_to_settles(gmx_domdec_t*                         dd,
                              const gmx_mtop_t&                     mtop,
-                             const int*                            atomInfo,
+                             gmx::ArrayRef<const int64_t>          atomInfo,
                              gmx::ArrayRef<const std::vector<int>> at2settle_mt,
                              int                                   cg_start,
                              int                                   cg_end,
@@ -298,7 +298,7 @@ static void atoms_to_settles(gmx_domdec_t*                         dd,
 /*! \brief Looks up constraint for the local atoms */
 static void atoms_to_constraints(gmx_domdec_t*                         dd,
                                  const gmx_mtop_t&                     mtop,
-                                 const int*                            atomInfo,
+                                 gmx::ArrayRef<const int64_t>          atomInfo,
                                  gmx::ArrayRef<const ListOfLists<int>> at2con_mt,
                                  int                                   nrec,
                                  InteractionList*                      ilc_local,
@@ -399,7 +399,7 @@ static void atoms_to_constraints(gmx_domdec_t*                         dd,
 int dd_make_local_constraints(gmx_domdec_t*                  dd,
                               int                            at_start,
                               const struct gmx_mtop_t&       mtop,
-                              const int*                     atomInfo,
+                              gmx::ArrayRef<const int64_t>   atomInfo,
                               gmx::Constraints*              constr,
                               int                            nrec,
                               gmx::ArrayRef<InteractionList> il_local)
index 81390a8f997e163f7ea3d525852d13e74bce6145..b2e366d3d8e374fd365afc582ffd1aa93e3c5fcd 100644 (file)
@@ -64,7 +64,7 @@ void dd_clear_local_constraint_indices(gmx_domdec_t* dd);
 int dd_make_local_constraints(struct gmx_domdec_t*           dd,
                               int                            at_start,
                               const struct gmx_mtop_t&       mtop,
-                              const int*                     atomInfo,
+                              gmx::ArrayRef<const int64_t>   atomInfo,
                               gmx::Constraints*              constr,
                               int                            nrec,
                               gmx::ArrayRef<InteractionList> il_local);
index 0c30bf2551d09e6f01b2939868839a3809b57b64..40e67444615942618f1793650c51de821f04f3da 100644 (file)
@@ -189,6 +189,8 @@ typedef struct gmx_domdec_sort
     std::vector<gmx_cgsort_t> moved;
     /**< Integer buffer for sorting */
     std::vector<int> intBuffer;
+    /**< Int64 buffer for sorting */
+    std::vector<int64_t> int64Buffer;
 } gmx_domdec_sort_t;
 
 /*! \brief Manages atom ranges and order for the local state atom vectors */
index ac2bb05500369b397aae3d25396e37d7505acc97..ea4a68c72546b52cef4f0ba43d083368d32cd234 100644 (file)
@@ -706,7 +706,7 @@ static void make_exclusions_zone(ArrayRef<const int>               globalAtomInd
                                  gmx_domdec_zones_t*               zones,
                                  ArrayRef<const MolblockIndices>   molblockIndices,
                                  const std::vector<gmx_moltype_t>& moltype,
-                                 const int*                        atomInfo,
+                                 gmx::ArrayRef<const int64_t>      atomInfo,
                                  ListOfLists<int>*                 lexcls,
                                  int                               iz,
                                  int                               at_start,
@@ -781,7 +781,7 @@ static void make_exclusions_zone(ArrayRef<const int>               globalAtomInd
 static int make_local_bondeds_excls(gmx_domdec_t*           dd,
                                     gmx_domdec_zones_t*     zones,
                                     const gmx_mtop_t&       mtop,
-                                    const int*              atomInfo,
+                                    ArrayRef<const int64_t> atomInfo,
                                     const bool              checkDistanceMultiBody,
                                     const ivec              rcheck,
                                     const gmx_bool          checkDistanceTwoBody,
@@ -1001,7 +1001,7 @@ int dd_make_local_top(gmx_domdec_t*        dd,
     int numBondedInteractionsToReduce = make_local_bondeds_excls(dd,
                                                                  zones,
                                                                  mtop,
-                                                                 fr->atomInfo.data(),
+                                                                 fr->atomInfo,
                                                                  checkDistanceMultiBody,
                                                                  rcheck,
                                                                  checkDistanceTwoBody,
index cbf0fe493f1a49a2c317f81862786aad4117bc84..46cef192345cf1dd94c2b43328c051bb09ee9cb4 100644 (file)
@@ -481,7 +481,7 @@ static void dd_set_atominfo(gmx::ArrayRef<const int> index_gl, int cg0, int cg1,
     {
         gmx::ArrayRef<gmx::AtomInfoWithinMoleculeBlock> atomInfoForEachMoleculeBlock =
                 fr->atomInfoForEachMoleculeBlock;
-        gmx::ArrayRef<int> atomInfo = fr->atomInfo;
+        gmx::ArrayRef<int64_t> atomInfo = fr->atomInfo;
 
         for (int cg = cg0; cg < cg1; cg++)
         {
@@ -1344,7 +1344,7 @@ static void merge_cg_buffers(int                                             nce
                              gmx::ArrayRef<gmx::RVec>                        x,
                              gmx::ArrayRef<const gmx::RVec>                  recv_vr,
                              gmx::ArrayRef<gmx::AtomInfoWithinMoleculeBlock> atomInfoForEachMoleculeBlock,
-                             gmx::ArrayRef<int>                              atomInfo)
+                             gmx::ArrayRef<int64_t>                          atomInfo)
 {
     gmx_domdec_ind_t *ind, *ind_p;
     int               p, cell, c, cg, cg0, cg1, cg_gl;
@@ -1580,7 +1580,7 @@ static void get_zone_pulse_groups(gmx_domdec_t*                  dd,
                                   gmx_bool                       bDist2B,
                                   gmx_bool                       bDistMB,
                                   gmx::ArrayRef<const gmx::RVec> coordinates,
-                                  gmx::ArrayRef<const int>       atomInfo,
+                                  gmx::ArrayRef<const int64_t>   atomInfo,
                                   std::vector<int>*              localAtomGroups,
                                   dd_comm_setup_work_t*          work)
 {
@@ -2599,7 +2599,7 @@ static void dd_sort_state(gmx_domdec_t* dd, t_forcerec* fr, t_state* state)
     /* Reorder the global cg index */
     orderVector<int>(cgsort, dd->globalAtomGroupIndices, &sort->intBuffer);
     /* Reorder the atom info */
-    orderVector<int>(cgsort, fr->atomInfo, &sort->intBuffer);
+    orderVector<int64_t>(cgsort, fr->atomInfo, &sort->int64Buffer);
     /* Set the home atom number */
     dd->comm->atomRanges.setEnd(DDAtomRanges::Type::Home, dd->numHomeAtoms);
 
@@ -3236,7 +3236,7 @@ void dd_partition_system(FILE*                     fplog,
                     n = dd_make_local_constraints(dd,
                                                   n,
                                                   top_global,
-                                                  fr->atomInfo.data(),
+                                                  fr->atomInfo,
                                                   constr,
                                                   inputrec.nProjOrder,
                                                   top_local->idef.il);
index 1862b7512516b42fcd3aa8f53d0ddf1846b533b9..3cbb1124e7007bb344682b12c4fb90ea3efc8013 100644 (file)
@@ -288,7 +288,7 @@ makeAtomInfoForEachMoleculeBlock(const gmx_mtop_t& mtop, const t_forcerec* fr)
             for (int a = 0; a < molt.atoms.nr; a++)
             {
                 const t_atom& atom = molt.atoms.atom[a];
-                int& atomInfo      = atomInfoOfMoleculeBlock.atomInfo[moleculeOffsetInBlock + a];
+                int64_t& atomInfo  = atomInfoOfMoleculeBlock.atomInfo[moleculeOffsetInBlock + a];
 
                 /* Store the energy group in atomInfo */
                 int gid  = getGroupType(mtop.groups,
@@ -345,12 +345,12 @@ makeAtomInfoForEachMoleculeBlock(const gmx_mtop_t& mtop, const t_forcerec* fr)
     return atomInfoForEachMoleculeBlock;
 }
 
-static std::vector<int> expandAtomInfo(const int                                             nmb,
-                                       gmx::ArrayRef<const gmx::AtomInfoWithinMoleculeBlock> atomInfoForEachMoleculeBlock)
+static std::vector<int64_t> expandAtomInfo(const int nmb,
+                                           gmx::ArrayRef<const gmx::AtomInfoWithinMoleculeBlock> atomInfoForEachMoleculeBlock)
 {
     const int numAtoms = atomInfoForEachMoleculeBlock[nmb - 1].indexOfLastAtomInMoleculeBlock;
 
-    std::vector<int> atomInfo(numAtoms);
+    std::vector<int64_t> atomInfo(numAtoms);
 
     int mb = 0;
     for (int a = 0; a < numAtoms; a++)
index 013ea6cb569578aa97d620b3c99e562e6948a1fa..8697dc2501856120026ad1f6fdd034d0e74be4e9 100644 (file)
@@ -49,7 +49,7 @@
 namespace gmx
 {
 
-/*! \brief Constants whose bit describes properties of atoms in
+/*! \brief Constants whose bit describes a property of an atom in
  * AtomInfoWithinMoleculeBlock.atomInfo.
  *
  * No bit should exceed 1 << 63, so that it fits into a 64-bit
@@ -59,16 +59,16 @@ namespace gmx
  * here, reserving bits 0-7 for the energy-group ID.
  */
 //! \{
-static constexpr int sc_atomInfo_FreeEnergyPerturbation = 1 << 15;
-static constexpr int sc_atomInfo_Exclusion              = 1 << 17;
-static constexpr int sc_atomInfo_Constraint             = 1 << 20;
-static constexpr int sc_atomInfo_Settle                 = 1 << 21;
-static constexpr int sc_atomInfo_BondCommunication      = 1 << 22;
-static constexpr int sc_atomInfo_HasVdw                 = 1 << 23;
-static constexpr int sc_atomInfo_HasCharge              = 1 << 24;
+static constexpr int64_t sc_atomInfo_FreeEnergyPerturbation = 1 << 15;
+static constexpr int64_t sc_atomInfo_Exclusion              = 1 << 17;
+static constexpr int64_t sc_atomInfo_Constraint             = 1 << 20;
+static constexpr int64_t sc_atomInfo_Settle                 = 1 << 21;
+static constexpr int64_t sc_atomInfo_BondCommunication      = 1 << 22;
+static constexpr int64_t sc_atomInfo_HasVdw                 = 1 << 23;
+static constexpr int64_t sc_atomInfo_HasCharge              = 1 << 24;
 //! \}
 //! The first 8 bits are reserved for energy-group ID
-static constexpr int sc_atomInfo_EnergyGroupIdMask = 0b11111111;
+static constexpr int64_t sc_atomInfo_EnergyGroupIdMask = 0b11111111;
 
 /*! \brief Contains information about each atom in a molecule block of
  * the global topology. */
@@ -94,7 +94,7 @@ struct AtomInfoWithinMoleculeBlock
      *
      * The vector needs to be indexed accordingly.
      */
-    std::vector<int> atomInfo;
+    std::vector<int64_t> atomInfo;
 };
 
 } // namespace gmx
index 838988ce358c43aa90ac764d716943b4d01cadcf..8abdadfa9f068c4718962e64d6ca1b8c8d01233a 100644 (file)
@@ -191,7 +191,7 @@ struct t_forcerec
     /* Information about atom properties for the molecule blocks in the global topology */
     std::vector<gmx::AtomInfoWithinMoleculeBlock> atomInfoForEachMoleculeBlock;
     /* Information about atom properties for local and non-local atoms */
-    std::vector<int> atomInfo;
+    std::vector<int64_t> atomInfo;
 
     std::vector<gmx::RVec> shift_vec;
 
index 4ccf58e213eae824d12ac09f223b7e6d40deb48b..8fd0569df244ec7fb2808b9bcc5f052f5415caf0 100644 (file)
@@ -861,13 +861,13 @@ static void nbnxn_atomdata_mask_fep(nbnxn_atomdata_t* nbat, const Nbnxm::GridSet
 }
 
 /* Copies the energy group indices to a reordered and packed array */
-static void copy_egp_to_nbat_egps(const int*          a,
-                                  int                 na,
-                                  int                 na_round,
-                                  int                 na_c,
-                                  int                 bit_shift,
-                                  ArrayRef<const int> atomInfo,
-                                  int*                atomInfoNb)
+static void copy_egp_to_nbat_egps(const int*              a,
+                                  int                     na,
+                                  int                     na_round,
+                                  int                     na_c,
+                                  int                     bit_shift,
+                                  ArrayRef<const int64_t> atomInfo,
+                                  int*                    atomInfoNb)
 {
     int i = 0, j = 0;
     for (; i < na; i += na_c)
@@ -894,7 +894,7 @@ static void copy_egp_to_nbat_egps(const int*          a,
 /* Set the energy group indices for atoms in nbnxn_atomdata_t */
 static void nbnxn_atomdata_set_energygroups(nbnxn_atomdata_t::Params* params,
                                             const Nbnxm::GridSet&     gridSet,
-                                            ArrayRef<const int>       atomInfo)
+                                            ArrayRef<const int64_t>   atomInfo)
 {
     if (params->nenergrp == 1)
     {
@@ -923,11 +923,11 @@ static void nbnxn_atomdata_set_energygroups(nbnxn_atomdata_t::Params* params,
 }
 
 /* Sets all required atom parameter data in nbnxn_atomdata_t */
-void nbnxn_atomdata_set(nbnxn_atomdata_t*     nbat,
-                        const Nbnxm::GridSet& gridSet,
-                        ArrayRef<const int>   atomTypes,
-                        ArrayRef<const real>  atomCharges,
-                        ArrayRef<const int>   atomInfo)
+void nbnxn_atomdata_set(nbnxn_atomdata_t*       nbat,
+                        const Nbnxm::GridSet&   gridSet,
+                        ArrayRef<const int>     atomTypes,
+                        ArrayRef<const real>    atomCharges,
+                        ArrayRef<const int64_t> atomInfo)
 {
     nbnxn_atomdata_t::Params& params = nbat->paramsDeprecated();
 
index 23b0759abba388c9687a8a2ed073a87679952dc7..50c4d5f31146b64cbea2656e50c4e33fcc3d717d 100644 (file)
@@ -328,11 +328,11 @@ enum
 };
 
 //! Sets the atomdata after pair search
-void nbnxn_atomdata_set(nbnxn_atomdata_t*         nbat,
-                        const Nbnxm::GridSet&     gridSet,
-                        gmx::ArrayRef<const int>  atomTypes,
-                        gmx::ArrayRef<const real> atomCharges,
-                        gmx::ArrayRef<const int atomInfo);
+void nbnxn_atomdata_set(nbnxn_atomdata_t*            nbat,
+                        const Nbnxm::GridSet&        gridSet,
+                        gmx::ArrayRef<const int>     atomTypes,
+                        gmx::ArrayRef<const real>    atomCharges,
+                        gmx::ArrayRef<const int64_t> atomInfo);
 
 //! Copy the shift vectors to nbat
 void nbnxn_atomdata_copy_shiftvec(bool dynamic_box, gmx::ArrayRef<gmx::RVec> shift_vec, nbnxn_atomdata_t* nbat);
index e45db48ca3cdfed39295a882719f2763f3b95334..88faac52a17c56e690f6587c075cd5163b35850d 100644 (file)
@@ -220,7 +220,7 @@ static std::unique_ptr<nonbonded_verlet_t> setupNbnxmForBenchInstance(const Kern
     const rvec lowerCorner = { 0, 0, 0 };
     const rvec upperCorner = { system.box[XX][XX], system.box[YY][YY], system.box[ZZ][ZZ] };
 
-    gmx::ArrayRef<const int> atomInfo;
+    gmx::ArrayRef<const int64_t> atomInfo;
     if (options.useHalfLJOptimization)
     {
         atomInfo = system.atomInfoOxygenVdw;
index f5e0bdd7462adb2d76688f1efeac84a33fb62d5e..56b49a82ccdc2ac8ab36ef50e3c16a9c996557ad 100644 (file)
@@ -78,9 +78,9 @@ struct BenchmarkSystem
     //! Storage for atom partial charges.
     std::vector<real> charges;
     //! Atom info where all atoms are marked to have Van der Waals interactions
-    std::vector<int> atomInfoAllVdw;
+    std::vector<int64_t> atomInfoAllVdw;
     //! Atom info where only oxygen atoms are marked to have Van der Waals interactions
-    std::vector<int> atomInfoOxygenVdw;
+    std::vector<int64_t> atomInfoOxygenVdw;
     //! Information about exclusions.
     ListOfLists<int> excls;
     //! Storage for atom positions.
index bfd143a0a952418280516563a848b129d73660eb..75b44dfdcbf9c6aabf7b00b5e203335a1ec544a2 100644 (file)
@@ -798,12 +798,12 @@ static void print_bbsizes_supersub(FILE* fp, const Grid& grid)
  *
  * Sorts atoms on LJ coefficients: !=0 first, ==0 at the end.
  */
-static void sort_cluster_on_flag(int                      numAtomsInCluster,
-                                 int                      atomStart,
-                                 int                      atomEnd,
-                                 gmx::ArrayRef<const int> atomInfo,
-                                 gmx::ArrayRef<int>       order,
-                                 int*                     flags)
+static void sort_cluster_on_flag(int                          numAtomsInCluster,
+                                 int                          atomStart,
+                                 int                          atomEnd,
+                                 gmx::ArrayRef<const int64_t> atomInfo,
+                                 gmx::ArrayRef<int>           order,
+                                 int*                         flags)
 {
     constexpr int c_maxNumAtomsInCluster = 8;
     int           sort1[c_maxNumAtomsInCluster];
@@ -879,7 +879,7 @@ void Grid::fillCell(GridSetData*                   gridSetData,
                     nbnxn_atomdata_t*              nbat,
                     int                            atomStart,
                     int                            atomEnd,
-                    gmx::ArrayRef<const int>       atomInfo,
+                    gmx::ArrayRef<const int64_t>   atomInfo,
                     gmx::ArrayRef<const gmx::RVec> x,
                     BoundingBox gmx_unused* bb_work_aligned)
 {
@@ -1025,7 +1025,7 @@ void Grid::fillCell(GridSetData*                   gridSetData,
 
 void Grid::sortColumnsCpuGeometry(GridSetData*                   gridSetData,
                                   int                            dd_zone,
-                                  gmx::ArrayRef<const int>       atomInfo,
+                                  gmx::ArrayRef<const int64_t>   atomInfo,
                                   gmx::ArrayRef<const gmx::RVec> x,
                                   nbnxn_atomdata_t*              nbat,
                                   const gmx::Range<int>          columnRange,
@@ -1100,7 +1100,7 @@ void Grid::sortColumnsCpuGeometry(GridSetData*                   gridSetData,
 /* Spatially sort the atoms within one grid column */
 void Grid::sortColumnsGpuGeometry(GridSetData*                   gridSetData,
                                   int                            dd_zone,
-                                  gmx::ArrayRef<const int>       atomInfo,
+                                  gmx::ArrayRef<const int64_t>   atomInfo,
                                   gmx::ArrayRef<const gmx::RVec> x,
                                   nbnxn_atomdata_t*              nbat,
                                   const gmx::Range<int>          columnRange,
@@ -1370,7 +1370,7 @@ void Grid::setCellIndices(int                            ddZone,
                           GridSetData*                   gridSetData,
                           gmx::ArrayRef<GridWork>        gridWork,
                           const gmx::Range<int>          atomRange,
-                          gmx::ArrayRef<const int>       atomInfo,
+                          gmx::ArrayRef<const int64_t>   atomInfo,
                           gmx::ArrayRef<const gmx::RVec> x,
                           const int                      numAtomsMoved,
                           nbnxn_atomdata_t*              nbat)
index 5c669446cdbfd4a613b7fc2021f4d7a0ef1de1c6..19e440f548e0f86e1bc321ef900a39ac4b618c07 100644 (file)
@@ -349,7 +349,7 @@ public:
                         GridSetData*                   gridSetData,
                         gmx::ArrayRef<GridWork>        gridWork,
                         gmx::Range<int>                atomRange,
-                        gmx::ArrayRef<const int>       atomInfo,
+                        gmx::ArrayRef<const int64_t>   atomInfo,
                         gmx::ArrayRef<const gmx::RVec> x,
                         int                            numAtomsMoved,
                         nbnxn_atomdata_t*              nbat);
@@ -375,14 +375,14 @@ private:
                   nbnxn_atomdata_t*              nbat,
                   int                            atomStart,
                   int                            atomEnd,
-                  gmx::ArrayRef<const int>       atomInfo,
+                  gmx::ArrayRef<const int64_t>   atomInfo,
                   gmx::ArrayRef<const gmx::RVec> x,
                   BoundingBox gmx_unused* bb_work_aligned);
 
     //! Spatially sort the atoms within the given column range, for CPU geometry
     void sortColumnsCpuGeometry(GridSetData*                   gridSetData,
                                 int                            dd_zone,
-                                gmx::ArrayRef<const int>       atomInfo,
+                                gmx::ArrayRef<const int64_t>   atomInfo,
                                 gmx::ArrayRef<const gmx::RVec> x,
                                 nbnxn_atomdata_t*              nbat,
                                 gmx::Range<int>                columnRange,
@@ -391,7 +391,7 @@ private:
     //! Spatially sort the atoms within the given column range, for GPU geometry
     void sortColumnsGpuGeometry(GridSetData*                   gridSetData,
                                 int                            dd_zone,
-                                gmx::ArrayRef<const int>       atomInfo,
+                                gmx::ArrayRef<const int64_t>   atomInfo,
                                 gmx::ArrayRef<const gmx::RVec> x,
                                 nbnxn_atomdata_t*              nbat,
                                 gmx::Range<int>                columnRange,
index 07d5f9a04221b7f48ed790dc6d4eaca8f5647589..c3a1a7ec269539e73cc67d35fcadf95ac075206d 100644 (file)
@@ -152,7 +152,7 @@ void GridSet::putOnGrid(const matrix                   box,
                         const gmx::UpdateGroupsCog*    updateGroupsCog,
                         const gmx::Range<int>          atomRange,
                         real                           atomDensity,
-                        gmx::ArrayRef<const int>       atomInfo,
+                        gmx::ArrayRef<const int64_t>   atomInfo,
                         gmx::ArrayRef<const gmx::RVec> x,
                         const int                      numAtomsMoved,
                         const int*                     move,
index 340a673f5ee7b1fe55e713ef738129b369e5a841..be9b5237dda7ad66f1ed631b83d1fa6732ad9a37 100644 (file)
@@ -126,7 +126,7 @@ public:
                    const gmx::UpdateGroupsCog*    updateGroupsCog,
                    gmx::Range<int>                atomRange,
                    real                           atomDensity,
-                   gmx::ArrayRef<const int>       atomInfo,
+                   gmx::ArrayRef<const int64_t>   atomInfo,
                    gmx::ArrayRef<const gmx::RVec> x,
                    int                            numAtomsMoved,
                    const int*                     move,
index e0aae3761fb68a88827323b7b9d03770ea63b7df..dca77313ed9168c3dd48a1ca37dc4d8e1a4018ff 100644 (file)
@@ -64,7 +64,7 @@ void nbnxn_put_on_grid(nonbonded_verlet_t*            nb_verlet,
                        const gmx::UpdateGroupsCog*    updateGroupsCog,
                        gmx::Range<int>                atomRange,
                        real                           atomDensity,
-                       gmx::ArrayRef<const int>       atomInfo,
+                       gmx::ArrayRef<const int64_t>   atomInfo,
                        gmx::ArrayRef<const gmx::RVec> x,
                        int                            numAtomsMoved,
                        const int*                     move)
@@ -86,7 +86,7 @@ void nbnxn_put_on_grid(nonbonded_verlet_t*            nb_verlet,
 /* Calls nbnxn_put_on_grid for all non-local domains */
 void nbnxn_put_on_grid_nonlocal(nonbonded_verlet_t*              nbv,
                                 const struct gmx_domdec_zones_t* zones,
-                                gmx::ArrayRef<const int>         atomInfo,
+                                gmx::ArrayRef<const int64_t>     atomInfo,
                                 gmx::ArrayRef<const gmx::RVec>   x)
 {
     for (int zone = 1; zone < zones->n; zone++)
@@ -138,9 +138,9 @@ void nonbonded_verlet_t::setLocalAtomOrder() const
     pairSearch_->setLocalAtomOrder();
 }
 
-void nonbonded_verlet_t::setAtomProperties(gmx::ArrayRef<const int>  atomTypes,
-                                           gmx::ArrayRef<const real> atomCharges,
-                                           gmx::ArrayRef<const int atomInfo) const
+void nonbonded_verlet_t::setAtomProperties(gmx::ArrayRef<const int>     atomTypes,
+                                           gmx::ArrayRef<const real>    atomCharges,
+                                           gmx::ArrayRef<const int64_t> atomInfo) const
 {
     nbnxn_atomdata_set(nbat.get(), pairSearch_->gridSet(), atomTypes, atomCharges, atomInfo);
 }
index 545f85ef4af624aa59d9ea9368b8087bee5332ae..e3e90d9238115710d8048f5c61cba340c8cc0a58 100644 (file)
@@ -314,9 +314,9 @@ public:
                            t_nrnb*                      nrnb) const;
 
     //! Updates all the atom properties in Nbnxm
-    void setAtomProperties(gmx::ArrayRef<const int>  atomTypes,
-                           gmx::ArrayRef<const real> atomCharges,
-                           gmx::ArrayRef<const int atomInfo) const;
+    void setAtomProperties(gmx::ArrayRef<const int>     atomTypes,
+                           gmx::ArrayRef<const real>    atomCharges,
+                           gmx::ArrayRef<const int64_t> atomInfo) const;
 
     /*!\brief Convert the coordinates to NBNXM format for the given locality.
      *
@@ -491,7 +491,7 @@ void nbnxn_put_on_grid(nonbonded_verlet_t*            nb_verlet,
                        const gmx::UpdateGroupsCog*    updateGroupsCog,
                        gmx::Range<int>                atomRange,
                        real                           atomDensity,
-                       gmx::ArrayRef<const int>       atomInfo,
+                       gmx::ArrayRef<const int64_t>   atomInfo,
                        gmx::ArrayRef<const gmx::RVec> x,
                        int                            numAtomsMoved,
                        const int*                     move);
@@ -503,7 +503,7 @@ void nbnxn_put_on_grid(nonbonded_verlet_t*            nb_verlet,
  */
 void nbnxn_put_on_grid_nonlocal(nonbonded_verlet_t*              nb_verlet,
                                 const struct gmx_domdec_zones_t* zones,
-                                gmx::ArrayRef<const int>         atomInfo,
+                                gmx::ArrayRef<const int64_t>     atomInfo,
                                 gmx::ArrayRef<const gmx::RVec>   x);
 
 /*! \brief Check if GROMACS has been built with GPU support.
index 7da87cf5c3ad6d711a79ae939ae016b6060055c3..1bb1898d9897c995320963fe42f4334f1dc922a1 100644 (file)
@@ -185,7 +185,7 @@ public:
                    const gmx::UpdateGroupsCog*    updateGroupsCog,
                    gmx::Range<int>                atomRange,
                    real                           atomDensity,
-                   gmx::ArrayRef<const int>       atomInfo,
+                   gmx::ArrayRef<const int64_t>   atomInfo,
                    gmx::ArrayRef<const gmx::RVec> x,
                    int                            numAtomsMoved,
                    const int*                     move,