ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/brains/ForceManager.cpp
(Generate patch)

Comparing trunk/src/brains/ForceManager.cpp (file contents):
Revision 770 by tim, Fri Dec 2 15:38:03 2005 UTC vs.
Revision 963 by tim, Wed May 17 21:51:42 2006 UTC

# Line 108 | Line 108 | namespace oopse {
108      
109      std::sort(bendOrderStruct.begin(), bendOrderStruct.end(), std::ptr_fun(BendSortFunctor));
110      std::sort(torsionOrderStruct.begin(), torsionOrderStruct.end(), std::ptr_fun(TorsionSortFunctor));
111    std::cout << "bend" << std::endl;
111      for (std::vector<BendOrderStruct>::iterator k = bendOrderStruct.begin(); k != bendOrderStruct.end(); ++k) {
112          Bend* bend = k->bend;
113 <        std::cout << "atom1=" <<bend->getAtomA()->getGlobalIndex() << ",atom2 = "<< bend->getAtomB()->getGlobalIndex() << ",atom3="<<bend->getAtomC()->getGlobalIndex() << " ";
113 >        std::cout << "Bend: atom1=" <<bend->getAtomA()->getGlobalIndex() << ",atom2 = "<< bend->getAtomB()->getGlobalIndex() << ",atom3="<<bend->getAtomC()->getGlobalIndex() << " ";
114          std::cout << "deltaV=" << k->dataSet.deltaV << ",p_theta=" << k->dataSet.prev.angle <<",p_pot=" << k->dataSet.prev.potential<< ",c_theta=" << k->dataSet.curr.angle << ", c_pot = " << k->dataSet.curr.potential <<std::endl;
115      }
117    std::cout << "torsio" << std::endl;
116      for (std::vector<TorsionOrderStruct>::iterator l = torsionOrderStruct.begin(); l != torsionOrderStruct.end(); ++l) {
117          Torsion* torsion = l->torsion;
118 <        std::cout << "atom1=" <<torsion->getAtomA()->getGlobalIndex() << ",atom2 = "<< torsion->getAtomB()->getGlobalIndex() << ",atom3="<<torsion->getAtomC()->getGlobalIndex() << ",atom4="<<torsion->getAtomD()->getGlobalIndex()<< " ";
118 >        std::cout << "Torsion: atom1=" <<torsion->getAtomA()->getGlobalIndex() << ",atom2 = "<< torsion->getAtomB()->getGlobalIndex() << ",atom3="<<torsion->getAtomC()->getGlobalIndex() << ",atom4="<<torsion->getAtomD()->getGlobalIndex()<< " ";
119          std::cout << "deltaV=" << l->dataSet.deltaV << ",p_theta=" << l->dataSet.prev.angle <<",p_pot=" << l->dataSet.prev.potential<< ",c_theta=" << l->dataSet.curr.angle << ", c_pot = " << l->dataSet.curr.potential <<std::endl;
120      }
121     */
# Line 157 | Line 155 | namespace oopse {
155      Molecule::BondIterator bondIter;;
156      Molecule::BendIterator  bendIter;
157      Molecule::TorsionIterator  torsionIter;
158 <    double bondPotential = 0.0;
159 <    double bendPotential = 0.0;
160 <    double torsionPotential = 0.0;
158 >    RealType bondPotential = 0.0;
159 >    RealType bendPotential = 0.0;
160 >    RealType torsionPotential = 0.0;
161  
162      //calculate short range interactions    
163      for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) {
# Line 177 | Line 175 | namespace oopse {
175  
176        for (bend = mol->beginBend(bendIter); bend != NULL; bend = mol->nextBend(bendIter)) {
177  
178 <          double angle;
178 >          RealType angle;
179              bend->calcForce(angle);
180 <          double currBendPot = bend->getPotential();          
180 >          RealType currBendPot = bend->getPotential();          
181              bendPotential += bend->getPotential();
182            std::map<Bend*, BendDataSet>::iterator i = bendDataSets.find(bend);
183            if (i == bendDataSets.end()) {
# Line 198 | Line 196 | namespace oopse {
196        }
197  
198        for (torsion = mol->beginTorsion(torsionIter); torsion != NULL; torsion = mol->nextTorsion(torsionIter)) {
199 <        double angle;
199 >        RealType angle;
200            torsion->calcForce(angle);
201 <        double currTorsionPot = torsion->getPotential();
201 >        RealType currTorsionPot = torsion->getPotential();
202            torsionPotential += torsion->getPotential();
203            std::map<Torsion*, TorsionDataSet>::iterator i = torsionDataSets.find(torsion);
204            if (i == torsionDataSets.end()) {
# Line 220 | Line 218 | namespace oopse {
218  
219      }
220      
221 <    double  shortRangePotential = bondPotential + bendPotential + torsionPotential;    
221 >    RealType  shortRangePotential = bondPotential + bendPotential + torsionPotential;    
222      Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
223      curSnapshot->statData[Stats::SHORT_RANGE_POTENTIAL] = shortRangePotential;
224      curSnapshot->statData[Stats::BOND_POTENTIAL] = bondPotential;
# Line 232 | Line 230 | namespace oopse {
230    void ForceManager::calcLongRangeInteraction(bool needPotential, bool needStress) {
231      Snapshot* curSnapshot;
232      DataStorage* config;
233 <    double* frc;
234 <    double* pos;
235 <    double* trq;
236 <    double* A;
237 <    double* electroFrame;
238 <    double* rc;
233 >    RealType* frc;
234 >    RealType* pos;
235 >    RealType* trq;
236 >    RealType* A;
237 >    RealType* electroFrame;
238 >    RealType* rc;
239      
240      //get current snapshot from SimInfo
241      curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
# Line 274 | Line 272 | namespace oopse {
272      }
273    
274      //initialize data before passing to fortran
275 <    double longRangePotential[LR_POT_TYPES];
276 <    double lrPot = 0.0;
275 >    RealType longRangePotential[LR_POT_TYPES];
276 >    RealType lrPot = 0.0;
277      
278      Mat3x3d tau;
279      short int passedCalcPot = needPotential;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines