| 48 |
|
#include "nonbonded/Cutoffs.hpp" |
| 49 |
|
#include "nonbonded/InteractionManager.hpp" |
| 50 |
|
#include "utils/Tuple.hpp" |
| 51 |
+ |
#include "primitives/Molecule.hpp" |
| 52 |
|
|
| 53 |
|
using namespace std; |
| 54 |
|
namespace OpenMD { |
| 107 |
|
// neighbor list routines |
| 108 |
|
virtual bool checkNeighborList(); |
| 109 |
|
virtual vector<pair<int, int> > buildNeighborList() = 0; |
| 110 |
+ |
virtual vector<vector<CutoffGroup *> > buildLayerBasedNeighborList() = 0; |
| 111 |
|
|
| 112 |
|
// how to handle cutoffs: |
| 113 |
|
void setCutoffPolicy(CutoffPolicy cp) {cutoffPolicy_ = cp;} |
| 127 |
|
|
| 128 |
|
// spatial data |
| 129 |
|
virtual Vector3d getIntergroupVector(int cg1, int cg2) = 0; |
| 130 |
+ |
virtual Vector3d getIntergroupVector(CutoffGroup *cg1, CutoffGroup *cg2) = 0; |
| 131 |
|
virtual Vector3d getInteratomicVector(int atom1, int atom2) = 0; |
| 132 |
|
|
| 133 |
|
// atom bookkeeping |
| 139 |
|
virtual void addForceToAtomRow(int atom1, Vector3d fg) = 0; |
| 140 |
|
virtual void addForceToAtomColumn(int atom2, Vector3d fg) = 0; |
| 141 |
|
|
| 142 |
+ |
virtual void addForceToAtomRowOMP(int atom1, Vector3d fg) = 0; |
| 143 |
+ |
virtual void addForceToAtomColumnOMP(int atom2, Vector3d fg) = 0; |
| 144 |
|
|
| 145 |
+ |
|
| 146 |
|
// filling interaction blocks with pointers |
| 147 |
|
virtual void fillInteractionData(InteractionData &idat, int atom1, int atom2) = 0; |
| 148 |
+ |
virtual void fillInteractionDataOMP(InteractionDataPrv &idat, int atom1, int atom2) = 0; |
| 149 |
|
virtual void unpackInteractionData(InteractionData &idat, int atom1, int atom2) = 0; |
| 150 |
|
|
| 151 |
+ |
virtual void unpackInteractionDataOMP(InteractionDataPrv &idat, int atom1, int atom2) = 0; |
| 152 |
+ |
|
| 153 |
|
virtual void fillSelfData(SelfData &sdat, int atom1); |
| 154 |
|
|
| 155 |
|
protected: |
| 183 |
|
vector<AtomType*> atypesLocal; |
| 184 |
|
|
| 185 |
|
vector<Vector3i> cellOffsets_; |
| 186 |
+ |
vector<Vector3i> cellAllOffsets_; |
| 187 |
|
Vector3i nCells_; |
| 188 |
|
vector<vector<int> > cellList_; |
| 189 |
|
vector<Vector3d> saved_CG_positions_; |