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

Comparing branches/development/src/integrators/Integrator.cpp (file contents):
Revision 1715 by gezelter, Tue May 22 21:55:31 2012 UTC vs.
Revision 1870 by gezelter, Tue May 7 19:09:54 2013 UTC

# Line 35 | Line 35
35   *                                                                      
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).          
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39   * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40   * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
# Line 43 | Line 43
43   #include "brains/Snapshot.hpp"
44   #include "integrators/Integrator.hpp"
45   #include "integrators/DLM.hpp"
46 < #include "integrators/FluctuatingChargeNVT.hpp"
46 > #include "flucq/FluctuatingChargeLangevin.hpp"
47 > #include "flucq/FluctuatingChargeNVT.hpp"
48   #include "utils/simError.h"
49  
50   namespace OpenMD {
# Line 52 | Line 53 | namespace OpenMD {
53        needReset(false), velocitizer_(NULL), needVelocityScaling(false),
54        rnemd_(NULL), useRNEMD(false), rotAlgo_(NULL), flucQ_(NULL),
55        rattle_(NULL), dumpWriter(NULL), statWriter(NULL), thermo(info),
56 <      currentSnapshot_(info->getSnapshotManager()->getCurrentSnapshot()) {
56 >      snap(info->getSnapshotManager()->getCurrentSnapshot()) {
57      
58      simParams = info->getSimParams();
59      
# Line 73 | Line 74 | namespace OpenMD {
74        painCave.isFatal = 1;
75        simError();
76      }
77 +    
78      // set the status, sample, and thermal kick times
79      if (simParams->haveSampleTime()){
80        sampleTime = simParams->getSampleTime();
# Line 81 | Line 83 | namespace OpenMD {
83        sampleTime = simParams->getRunTime();
84        statusTime = sampleTime;
85      }
86 <
86 >    
87      if (simParams->haveStatusTime()){
88        statusTime = simParams->getStatusTime();
89      }
90 <
90 >    
91      if (simParams->haveThermalTime()){
92        thermalTime = simParams->getThermalTime();
93      } else {
94        thermalTime = simParams->getRunTime();
95      }
96 <
96 >    
97      if (!simParams->getUseInitalTime()) {
98 <      currentSnapshot_->setTime(0.0);
98 >      snap->setTime(0.0);
99      }
100 <
100 >    
101      if (simParams->haveResetTime()) {
102        needReset = true;
103        resetTime = simParams->getResetTime();
104      }
105 <      
105 >    
106      // Create a default ForceManager: If the subclass wants to use
107      // a different ForceManager, use setForceManager
106
108      forceMan_ = new ForceManager(info);
109 <    
109 >    
110      // check for the temperature set flag (velocity scaling)      
111 +    needVelocityScaling = false;
112      if (simParams->haveTempSet()) {
113        needVelocityScaling = simParams->getTempSet();
114 +    }
115  
116 +    if (needVelocityScaling) {
117        if (simParams->haveTargetTemp()) {
118          targetScalingTemp = simParams->getTargetTemp();
119        }
120        else {
121          sprintf(painCave.errMsg,
122 <                "Integrator Error: Target Temperature is not set\n");
122 >                "Integrator Error: Target Temperature must be set to turn on tempSet\n");
123          painCave.isFatal = 1;
124          simError();
125  
126        }
127      }
128 <      
128 >    
129      // Create a default a velocitizer: If the subclass wants to use
130      // a different velocitizer, use setVelocitizer
131      velocitizer_ = new Velocitizer(info);
132 <
133 <    if (simParams->haveUseRNEMD()) {
134 <      if (simParams->getUseRNEMD()) {
132 >    
133 >    if (simParams->getRNEMDParameters()->haveUseRNEMD()) {
134 >      if (simParams->getRNEMDParameters()->getUseRNEMD()) {
135          // Create a default a RNEMD.
136          rnemd_ = new RNEMD(info);
137 <        useRNEMD = simParams->getUseRNEMD();
138 <        if (simParams->haveRNEMD_exchangeTime()) {
139 <          RNEMD_exchangeTime = simParams->getRNEMD_exchangeTime();
137 >        useRNEMD = simParams->getRNEMDParameters()->getUseRNEMD();
138 >        if (simParams->getRNEMDParameters()->haveExchangeTime()) {
139 >          RNEMD_exchangeTime = simParams->getRNEMDParameters()->getExchangeTime();
140          }
141        }
142      }
143 <
143 >    
144      rotAlgo_ = new DLM();
145      rattle_ = new Rattle(info);
146 <    flucQ_ = new FluctuatingChargeNVT(info);
146 >    if (simParams->getFluctuatingChargeParameters()->havePropagator()) {
147 >      std::string prop = toUpperCopy(simParams->getFluctuatingChargeParameters()->getPropagator());
148 >      if (prop.compare("NVT")==0){
149 >         flucQ_ = new FluctuatingChargeNVT(info);
150 >      } else if (prop.compare("LANGEVIN")==0) {
151 >         flucQ_ = new FluctuatingChargeLangevin(info);
152 >      } else {
153 >        sprintf(painCave.errMsg,
154 >                "Integrator Error: Unknown Fluctuating Charge propagator (%s) requested\n",
155 >                simParams->getFluctuatingChargeParameters()->getPropagator().c_str());
156 >        painCave.isFatal = 1;
157 >      }
158 >    }
159 >    flucQ_->setForceManager(forceMan_);
160    }
161    
162    Integrator::~Integrator(){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines