65 void zeroWorkArrays();
66 void distributeData();
67 void collectIntermediateData();
68 void distributeIntermediateData();
73 void buildNeighborList(vector<int>& neighborList, vector<int>& point,
74 vector<Vector3d>& savedPositions);
77 Vector3d& getGroupVelocityColumn(
int cg2);
81 vector<int>& getAtomsInGroupColumn(
int cg2);
82 Vector3d getAtomToGroupVectorRow(
int atom1,
int cg1);
83 Vector3d getAtomToGroupVectorColumn(
int atom2,
int cg2);
84 RealType& getMassFactorRow(
int atom1);
85 RealType& getMassFactorColumn(
int atom2);
88 Vector3d getIntergroupVector(
int cg1,
int cg2);
89 Vector3d getInteratomicVector(
int atom1,
int atom2);
92 int& getNAtomsInRow();
93 int getTopologicalDistance(
int atom1,
int atom2);
94 vector<int>& getExcludesForAtom(
int atom1);
95 bool skipAtomPair(
int atom1,
int atom2,
int cg1,
int cg2);
97 int getGlobalIDRow(
int atom1);
98 int getGlobalIDCol(
int atom1);
99 int getGlobalID(
int atom1);
100 void addForceToAtomRow(
int atom1,
Vector3d fg);
101 void addForceToAtomColumn(
int atom2,
Vector3d fg);
102 Vector3d& getAtomVelocityColumn(
int atom2);
106 bool newAtom1 =
true);
107 void unpackInteractionData(
InteractionData& idat,
int atom1,
int atom2);
113 vector<int> AtomLocalToGlobal;
114 vector<int> cgLocalToGlobal;
115 vector<RealType> groupCutoff;
116 vector<int> groupToGtype;
129 Communicator<Row> rowComm;
130 Communicator<Column> colComm;
132 Plan<int>* AtomPlanIntRow {
nullptr};
133 Plan<RealType>* AtomPlanRealRow {
nullptr};
134 Plan<Vector3d>* AtomPlanVectorRow {
nullptr};
135 Plan<Mat3x3d>* AtomPlanMatrixRow {
nullptr};
136 Plan<potVec>* AtomPlanPotRow {
nullptr};
138 Plan<int>* AtomPlanIntColumn {
nullptr};
139 Plan<RealType>* AtomPlanRealColumn {
nullptr};
140 Plan<Vector3d>* AtomPlanVectorColumn {
nullptr};
141 Plan<Mat3x3d>* AtomPlanMatrixColumn {
nullptr};
142 Plan<potVec>* AtomPlanPotColumn {
nullptr};
144 Plan<int>* cgPlanIntRow {
nullptr};
145 Plan<Vector3d>* cgPlanVectorRow {
nullptr};
146 Plan<int>* cgPlanIntColumn {
nullptr};
147 Plan<Vector3d>* cgPlanVectorColumn {
nullptr};
150 vector<potVec> pot_row;
151 vector<potVec> pot_col;
153 vector<potVec> expot_row;
154 vector<potVec> expot_col;
156 vector<potVec> selepot_row;
157 vector<potVec> selepot_col;
159 vector<int> identsRow;
160 vector<int> identsCol;
162 vector<int> regionsRow;
163 vector<int> regionsCol;
165 vector<AtomType*> atypesRow;
166 vector<AtomType*> atypesCol;
168 vector<int> AtomRowToGlobal;
169 vector<int> AtomColToGlobal;
172 vector<int> cgRowToGlobal;
173 vector<int> cgColToGlobal;
176 vector<vector<int>> cellListRow_;
177 vector<vector<int>> cellListCol_;
179 vector<vector<int>> groupListRow_;
180 vector<vector<int>> groupListCol_;
182 vector<RealType> massFactorsRow;
183 vector<RealType> massFactorsCol;
185 vector<int> regionRow;
186 vector<int> regionCol;