# | Line 50 | Line 50 | |
---|---|---|
50 | #include "brains/ForceManager.hpp" | |
51 | #include "primitives/Molecule.hpp" | |
52 | #include "UseTheForce/doForces_interface.h" | |
53 | + | #define __C |
54 | + | #include "UseTheForce/DarkSide/fInteractionMap.h" |
55 | #include "utils/simError.h" | |
56 | namespace oopse { | |
57 | ||
# | Line 126 | Line 128 | namespace oopse { | |
128 | ||
129 | } | |
130 | ||
131 | < | double shortRangePotential = 0.0; |
131 | > | |
132 | > | double bondPotential = 0.0; |
133 | > | double bendPotential = 0.0; |
134 | > | double torsionPotential = 0.0; |
135 | > | |
136 | for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) { | |
131 | – | shortRangePotential += mol->getPotential(); |
132 | – | } |
137 | ||
138 | + | for (bond = mol->beginBond(bondIter); bond != NULL; bond = mol->nextBond(bondIter)) { |
139 | + | bondPotential += bond->getPotential(); |
140 | + | } |
141 | + | |
142 | + | for (bend = mol->beginBend(bendIter); bend != NULL; bend = mol->nextBend(bendIter)) { |
143 | + | bendPotential += bend->getPotential(); |
144 | + | } |
145 | + | |
146 | + | for (torsion = mol->beginTorsion(torsionIter); torsion != NULL; torsion = mol->nextTorsion(torsionIter)) { |
147 | + | torsionPotential += torsion->getPotential(); |
148 | + | } |
149 | + | |
150 | + | } |
151 | + | |
152 | + | double shortRangePotential = bondPotential + bendPotential + torsionPotential; |
153 | Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot(); | |
154 | curSnapshot->statData[Stats::SHORT_RANGE_POTENTIAL] = shortRangePotential; | |
155 | + | curSnapshot->statData[Stats::BOND_POTENTIAL] = bondPotential; |
156 | + | curSnapshot->statData[Stats::BEND_POTENTIAL] = bendPotential; |
157 | + | curSnapshot->statData[Stats::DIHEDRAL_POTENTIAL] = torsionPotential; |
158 | + | |
159 | } | |
160 | ||
161 | void ForceManager::calcLongRangeInteraction(bool needPotential, bool needStress) { | |
# | Line 163 | Line 186 | namespace oopse { | |
186 | CutoffGroup* cg; | |
187 | Vector3d com; | |
188 | std::vector<Vector3d> rcGroup; | |
166 | – | |
167 | – | if(info_->getNCutoffGroups() > 0){ |
189 | ||
190 | + | if(info_->getNCutoffGroups() > 0){ |
191 | + | |
192 | for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) { | |
193 | for(cg = mol->beginCutoffGroup(ci); cg != NULL; cg = mol->nextCutoffGroup(ci)) { | |
194 | cg->getCOM(com); | |
# | Line 180 | Line 203 | namespace oopse { | |
203 | } | |
204 | ||
205 | //initialize data before passing to fortran | |
206 | < | double longRangePotential = 0.0; |
206 | > | double longRangePotential[LR_POT_TYPES]; |
207 | > | double lrPot = 0.0; |
208 | > | |
209 | Mat3x3d tau; | |
210 | short int passedCalcPot = needPotential; | |
211 | short int passedCalcStress = needStress; | |
212 | int isError = 0; | |
213 | ||
214 | + | for (int i=0; i<LR_POT_TYPES;i++){ |
215 | + | longRangePotential[i]=0.0; //Initialize array |
216 | + | } |
217 | + | |
218 | + | |
219 | + | |
220 | doForceLoop( pos, | |
221 | rc, | |
222 | A, | |
# | Line 193 | Line 224 | namespace oopse { | |
224 | frc, | |
225 | trq, | |
226 | tau.getArrayPointer(), | |
227 | < | &longRangePotential, |
227 | > | longRangePotential, |
228 | &passedCalcPot, | |
229 | &passedCalcStress, | |
230 | &isError ); | |
# | Line 204 | Line 235 | namespace oopse { | |
235 | painCave.isFatal = 1; | |
236 | simError(); | |
237 | } | |
238 | + | for (int i=0; i<LR_POT_TYPES;i++){ |
239 | + | lrPot += longRangePotential[i]; //Quick hack |
240 | + | } |
241 | ||
242 | //store the tau and long range potential | |
243 | < | curSnapshot->statData[Stats::LONG_RANGE_POTENTIAL] = longRangePotential; |
243 | > | curSnapshot->statData[Stats::LONG_RANGE_POTENTIAL] = lrPot; |
244 | > | // curSnapshot->statData[Stats::LONG_RANGE_POTENTIAL] = longRangePotential; |
245 | > | curSnapshot->statData[Stats::VANDERWAALS_POTENTIAL] = longRangePotential[VDW_POT]; |
246 | > | curSnapshot->statData[Stats::ELECTROSTATIC_POTENTIAL] = longRangePotential[ELECTROSTATIC_POT]; |
247 | > | |
248 | curSnapshot->statData.setTau(tau); | |
249 | } | |
250 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |