--- branches/development/src/parallel/ForceMatrixDecomposition.hpp 2011/04/28 18:38:21 1551 +++ branches/development/src/parallel/ForceMatrixDecomposition.hpp 2011/05/25 16:20:37 1568 @@ -42,12 +42,12 @@ #ifndef PARALLEL_FORCEMATRIXDECOMPOSITION_HPP #define PARALLEL_FORCEMATRIXDECOMPOSITION_HPP -#include "Parallel/ForceDecomposition.hpp" +#include "parallel/ForceDecomposition.hpp" #include "math/SquareMatrix3.hpp" #include "brains/Snapshot.hpp" #ifdef IS_MPI -#include "Parallel/Communicator.hpp" +#include "parallel/Communicator.hpp" #endif using namespace std; @@ -55,7 +55,8 @@ namespace OpenMD { class ForceMatrixDecomposition : public ForceDecomposition { public: - ForceMatrixDecomposition(SimInfo* info) : ForceDecomposition(info) {sman_ = info_->getSnapshotManager();} + ForceMatrixDecomposition(SimInfo* info) : ForceDecomposition(info) {}; + void distributeInitialData(); void distributeData(); void collectIntermediateData(); @@ -63,7 +64,6 @@ namespace OpenMD { void collectData(); // neighbor list routines - bool checkNeighborList(); vector > buildNeighborList(); // group bookkeeping @@ -91,19 +91,22 @@ namespace OpenMD { // filling interaction blocks with pointers InteractionData fillInteractionData(int atom1, int atom2); InteractionData fillSkipData(int atom1, int atom2); - SelfData fillSelfData(int atom1); private: - SnapshotManager* sman_; - Snapshot* snap_; - int storageLayout_; -#ifdef IS_MPI + int nLocal_; + int nGroups_; +#ifdef IS_MPI DataStorage atomRowData; DataStorage atomColData; DataStorage cgRowData; DataStorage cgColData; + int nAtomsInRow_; + int nAtomsInCol_; + int nGroupsInRow_; + int nGroupsInCol_; + Communicator* AtomCommIntRow; Communicator* AtomCommRealRow; Communicator* AtomCommVectorRow; @@ -130,8 +133,12 @@ namespace OpenMD { vector cgLocalToGlobal; vector cgRowToGlobal; vector cgColToGlobal; + + vector > cellListRow_; + vector > cellListCol_; #endif vector pot_local; + }; }