--- branches/development/src/parallel/ForceDecomposition.hpp 2011/06/08 16:05:07 1576 +++ branches/development/src/parallel/ForceDecomposition.hpp 2011/06/09 20:26:29 1579 @@ -91,7 +91,7 @@ namespace OpenMD { class ForceDecomposition { public: - ForceDecomposition(SimInfo* info); + ForceDecomposition(SimInfo* info, InteractionManager* iMan); virtual ~ForceDecomposition() {} virtual void distributeInitialData() = 0; @@ -128,10 +128,11 @@ namespace OpenMD { // atom bookkeeping virtual int getNAtomsInRow() = 0; - virtual vector getSkipsForRowAtom(int atom1) = 0; + virtual vector getSkipsForAtom(int atom1) = 0; virtual bool skipAtomPair(int atom1, int atom2) = 0; virtual void addForceToAtomRow(int atom1, Vector3d fg) = 0; virtual void addForceToAtomColumn(int atom2, Vector3d fg) = 0; + virtual int getTopologicalDistance(int atom1, int atom2) = 0; // filling interaction blocks with pointers virtual InteractionData fillInteractionData(int atom1, int atom2) = 0; @@ -150,26 +151,18 @@ namespace OpenMD { RealType skinThickness_; /**< Verlet neighbor list skin thickness */ RealType largestRcut_; - map, int> topoDist; //< topoDist gives the - //topological distance between - //two atomic sites. This - //declaration is agnostic - //regarding the parallel - //decomposition. The two - //indices could be local or row - //& column. It will be up to - //the specific decomposition - //method to fill this. - map, bool> exclude; //< exclude is the set of pairs - //to leave out of non-bonded - //force evaluations. This - //declaration is agnostic - //regarding the parallel - //decomposition. The two - //indices could be local or row - //& column. It will be up to - //the specific decomposition - //method to fill this. + /** + * The topological distance between two atomic sites is handled + * via two vector structures for speed. These structures agnostic + * regarding the parallel decomposition. The index for + * toposForAtom could be local or row, while the values could be + * local or column. It will be up to the specific decomposition + * method to fill these. + */ + vector > toposForAtom; + vector > topoDist; + + vector > skipsForAtom; vector > groupList_;