ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/constraints/ZconstraintForceManager.cpp
(Generate patch)

Comparing:
trunk/src/constraints/ZconstraintForceManager.cpp (file contents), Revision 1442 by gezelter, Mon May 10 17:28:26 2010 UTC vs.
branches/development/src/constraints/ZconstraintForceManager.cpp (file contents), Revision 1764 by gezelter, Tue Jul 3 18:32:27 2012 UTC

# Line 36 | Line 36
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38   * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   #include <cmath>
# Line 45 | Line 46
46   #include "utils/simError.h"
47   #include "utils/PhysicalConstants.hpp"
48   #include "utils/StringUtils.hpp"
49 + #ifdef IS_MPI
50 + #include <mpi.h>
51 + #endif
52 +
53   namespace OpenMD {
54    ZconstraintForceManager::ZconstraintForceManager(SimInfo* info): ForceManager(info), infiniteTime(1e31) {
55      currSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot();
# Line 240 | Line 245 | namespace OpenMD {
245      currZconsTime_ = currSnapshot_->getTime();
246    }
247  
248 <  void ZconstraintForceManager::calcForces(bool needPotential, bool needStress){
249 <    ForceManager::calcForces(needPotential, needStress);
248 >  void ZconstraintForceManager::calcForces(){
249 >    ForceManager::calcForces();
250      
251      if (usingZconsGap_){
252        updateZPos();
# Line 431 | Line 436 | namespace OpenMD {
436      Vector3d force(0.0);
437      Vector3d com;
438      RealType totalFZ_local = 0;
439 +    RealType lrPot;
440      std::list<ZconstraintMol>::iterator i;
441      StuntDouble* integrableObject;
442      Molecule::IntegrableObjectIterator ii;
# Line 441 | Line 447 | namespace OpenMD {
447        RealType resPos = usingSMD_? i->cantPos : i->param.zTargetPos;
448        RealType diff = com[whichDirection] - resPos;
449        RealType harmonicU = 0.5 * i->param.kz * diff * diff;
450 <      currSnapshot_->statData[Stats::LONG_RANGE_POTENTIAL] += harmonicU;
450 >      lrPot = currSnapshot_->getLongRangePotential();
451 >      lrPot += harmonicU;
452 >      currSnapshot_->setLongRangePotential(lrPot);
453        RealType harmonicF = -i->param.kz * diff;
454        totalFZ_local += harmonicF;
455  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines