# | Line 47 | Line 47 | namespace OpenMD { | |
---|---|---|
47 | using namespace std; | |
48 | namespace OpenMD { | |
49 | ||
50 | < | ForceDecomposition::ForceDecomposition(SimInfo* info) : info_(info) { |
50 | > | ForceDecomposition::ForceDecomposition(SimInfo* info, InteractionManager* iMan) : info_(info), interactionMan_(iMan) { |
51 | sman_ = info_->getSnapshotManager(); | |
52 | storageLayout_ = sman_->getStorageLayout(); | |
53 | ff_ = info_->getForceField(); | |
54 | + | userChoseCutoff_ = false; |
55 | ||
56 | Globals* simParams_ = info_->getSimParams(); | |
57 | ||
# | Line 86 | Line 87 | namespace OpenMD { | |
87 | cellOffsets_.push_back( Vector3i(1, -1,1) ); | |
88 | } | |
89 | ||
90 | < | SelfData ForceDecomposition::fillSelfData(int atom1) { |
91 | < | SelfData sdat; |
92 | < | // Still Missing atype, skippedCharge, potVec pot, |
90 | > | void ForceDecomposition::fillSelfData(SelfData &sdat, int atom1) { |
91 | > | |
92 | > | sdat.atype = ff_->getAtomType(idents[atom1]); |
93 | > | |
94 | > | // Still Missing skippedCharge |
95 | if (storageLayout_ & DataStorage::dslElectroFrame) { | |
96 | sdat.eFrame = &(snap_->atomData.electroFrame[atom1]); | |
97 | } | |
# | Line 109 | Line 112 | namespace OpenMD { | |
112 | sdat.dfrhodrho = &(snap_->atomData.functionalDerivative[atom1]); | |
113 | } | |
114 | ||
115 | < | return sdat; |
115 | > | if (storageLayout_ & DataStorage::dslParticlePot) { |
116 | > | sdat.particlePot = &(snap_->atomData.particlePot[atom1]); |
117 | > | } |
118 | } | |
119 | ||
120 | bool ForceDecomposition::checkNeighborList() { | |
# | Line 119 | Line 124 | namespace OpenMD { | |
124 | // if we have changed the group identities or haven't set up the | |
125 | // saved positions we automatically will need a neighbor list update: | |
126 | ||
127 | < | if ( saved_CG_positions_.size() != nGroups ) return true; |
127 | > | if ( saved_CG_positions_.size() != nGroups ) { |
128 | > | cerr << "build because size\n"; |
129 | > | return true; |
130 | > | } |
131 | ||
132 | RealType dispmax = 0.0; | |
133 | Vector3d disp; | |
# | Line 137 | Line 145 | namespace OpenMD { | |
145 | // a conservative test of list skin crossings | |
146 | dispmax = 2.0 * sqrt (3.0 * dispmax * dispmax); | |
147 | ||
148 | < | return (dispmax > skinThickness_); |
148 | > | |
149 | > | if (dispmax > skinThickness_) { |
150 | > | cerr << "build because movement\n"; |
151 | > | return (dispmax > skinThickness_); |
152 | > | } else { |
153 | > | cerr << "not rebuilding\n"; |
154 | > | } |
155 | > | return false; |
156 | } | |
157 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |