--- branches/development/src/parallel/ForceMatrixDecomposition.hpp 2011/11/22 20:38:56 1665 +++ trunk/src/parallel/ForceMatrixDecomposition.hpp 2012/08/22 02:28:28 1782 @@ -63,6 +63,7 @@ namespace OpenMD { void distributeData(); void collectIntermediateData(); void distributeIntermediateData(); + void collectSelfData(); void collectData(); // neighbor list routines @@ -70,6 +71,7 @@ namespace OpenMD { // group bookkeeping groupCutoffs getGroupCutoffs(int cg1, int cg2); + Vector3d getGroupVelocityColumn(int cg2); // Group->atom bookkeeping vector getAtomsInGroupRow(int cg1); @@ -87,10 +89,11 @@ namespace OpenMD { int getNAtomsInRow(); int getTopologicalDistance(int atom1, int atom2); vector getExcludesForAtom(int atom1); - bool skipAtomPair(int atom1, int atom2); + 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); // filling interaction blocks with pointers void fillInteractionData(InteractionData &idat, int atom1, int atom2); @@ -107,8 +110,7 @@ namespace OpenMD { vector groupToGtype; #ifdef IS_MPI - DataStorage atomRowData; - DataStorage atomColData; + DataStorage atomRowData; DataStorage atomColData; DataStorage cgRowData; DataStorage cgColData; @@ -141,6 +143,9 @@ namespace OpenMD { vector pot_row; vector pot_col; + vector expot_row; + vector expot_col; + vector identsRow; vector identsCol;