--- branches/development/src/parallel/ForceMatrixDecomposition.hpp 2011/05/26 21:56:04 1570 +++ branches/development/src/parallel/ForceMatrixDecomposition.hpp 2011/06/03 21:39:49 1575 @@ -58,6 +58,7 @@ namespace OpenMD { ForceMatrixDecomposition(SimInfo* info) : ForceDecomposition(info) {}; void distributeInitialData(); + void zeroWorkArrays(); void distributeData(); void collectIntermediateData(); void distributeIntermediateData(); @@ -91,14 +92,15 @@ namespace OpenMD { // filling interaction blocks with pointers InteractionData fillInteractionData(int atom1, int atom2); + void unpackInteractionData(InteractionData idat, int atom1, int atom2); InteractionData fillSkipData(int atom1, int atom2); private: int nLocal_; int nGroups_; + vector identsLocal; vector AtomLocalToGlobal; vector cgLocalToGlobal; - vector pot_local; vector massFactorsLocal; vector > skipsForLocalAtom; vector > toposForLocalAtom; @@ -119,23 +121,30 @@ namespace OpenMD { Communicator* AtomCommRealRow; Communicator* AtomCommVectorRow; Communicator* AtomCommMatrixRow; + Communicator* AtomCommPotRow; Communicator* AtomCommIntColumn; Communicator* AtomCommRealColumn; Communicator* AtomCommVectorColumn; - Communicator* AtomCommMatrixColumn; + Communicator* AtomCommMatrixColumn; + Communicator* AtomCommPotColumn; Communicator* cgCommIntRow; Communicator* cgCommVectorRow; Communicator* cgCommIntColumn; Communicator* cgCommVectorColumn; - vector > pot_row; - vector > pot_col; + // work arrays for assembling potential energy + vector pot_row; + vector pot_col; + potVec pot_local; vector identsRow; vector identsCol; + vector atypesRow; + vector atypesCol; + vector AtomRowToGlobal; vector AtomColToGlobal; @@ -154,8 +163,6 @@ namespace OpenMD { vector > skipsForRowAtom; vector > toposForRowAtom; vector > topoDistRow; - - #endif };