--- trunk/src/parallel/ForceMatrixDecomposition.hpp 2013/06/16 15:15:42 1879 +++ trunk/src/parallel/ForceMatrixDecomposition.hpp 2015/03/03 17:02:20 2064 @@ -67,41 +67,38 @@ namespace OpenMD { void collectData(); // neighbor list routines - vector > buildNeighborList(); + void buildNeighborList(vector& neighborList, vector& point); // group bookkeeping - groupCutoffs getGroupCutoffs(int cg1, int cg2); - Vector3d getGroupVelocityColumn(int cg2); + Vector3d& getGroupVelocityColumn(int cg2); // Group->atom bookkeeping - vector getAtomsInGroupRow(int cg1); - vector getAtomsInGroupColumn(int cg2); + vector& getAtomsInGroupRow(int cg1); + vector& getAtomsInGroupColumn(int cg2); Vector3d getAtomToGroupVectorRow(int atom1, int cg1); Vector3d getAtomToGroupVectorColumn(int atom2, int cg2); - RealType getMassFactorRow(int atom1); - RealType getMassFactorColumn(int atom2); + RealType& getMassFactorRow(int atom1); + RealType& getMassFactorColumn(int atom2); // spatial data Vector3d getIntergroupVector(int cg1, int cg2); Vector3d getInteratomicVector(int atom1, int atom2); // atom bookkeeping - int getNAtomsInRow(); + int& getNAtomsInRow(); int getTopologicalDistance(int atom1, int atom2); - vector getExcludesForAtom(int atom1); + vector& getExcludesForAtom(int atom1); bool skipAtomPair(int atom1, int atom2, int cg1, int cg2); bool excludeAtomPair(int atom1, int atom2); void addForceToAtomRow(int atom1, Vector3d fg); void addForceToAtomColumn(int atom2, Vector3d fg); - Vector3d getAtomVelocityColumn(int atom2); + Vector3d& getAtomVelocityColumn(int atom2); // filling interaction blocks with pointers - void fillInteractionData(InteractionData &idat, int atom1, int atom2); + void fillInteractionData(InteractionData &idat, int atom1, int atom2, bool newAtom1 = true); void unpackInteractionData(InteractionData &idat, int atom1, int atom2); - private: - void createGtypeCutoffMap(); - + private: int nLocal_; int nGroups_; vector AtomLocalToGlobal; @@ -110,7 +107,8 @@ namespace OpenMD { vector groupToGtype; #ifdef IS_MPI - DataStorage atomRowData; DataStorage atomColData; + DataStorage atomRowData; + DataStorage atomColData; DataStorage cgRowData; DataStorage cgColData; @@ -149,6 +147,9 @@ namespace OpenMD { vector identsRow; vector identsCol; + vector regionsRow; + vector regionsCol; + vector atypesRow; vector atypesCol; @@ -160,11 +161,6 @@ namespace OpenMD { vector cgColToGlobal; private: - vector groupCutoffRow; - vector groupCutoffCol; - vector groupColToGtype; - vector groupRowToGtype; - vector > cellListRow_; vector > cellListCol_; @@ -173,6 +169,9 @@ namespace OpenMD { vector massFactorsRow; vector massFactorsCol; + + vector regionRow; + vector regionCol; #endif };