ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/integrators/VelocityVerletIntegrator.cpp
(Generate patch)

Comparing trunk/OOPSE-4/src/integrators/VelocityVerletIntegrator.cpp (file contents):
Revision 2168 by chrisfen, Tue Apr 12 14:24:29 2005 UTC vs.
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 109 | Line 109 | namespace oopse {
109      needPotential = false;
110      needStress = false;      
111      
112 < }
112 >  }
113  
114 < void VelocityVerletIntegrator::doIntegrate() {
114 >  void VelocityVerletIntegrator::doIntegrate() {
115    
116    
117 <  initialize();
117 >    initialize();
118    
119 <  while (currentSnapshot_->getTime() < runTime) {
119 >    while (currentSnapshot_->getTime() < runTime) {
120      
121 <    preStep();
121 >      preStep();
122      
123 <    integrateStep();
123 >      integrateStep();
124      
125 <    postStep();
125 >      postStep();
126      
127 <  }
127 >    }
128    
129 <  finalize();
129 >    finalize();
130    
131 < }
131 >  }
132  
133  
134 < void VelocityVerletIntegrator::preStep() {
135 <  double difference = currentSnapshot_->getTime() + dt - currStatus;
134 >  void VelocityVerletIntegrator::preStep() {
135 >    double difference = currentSnapshot_->getTime() + dt - currStatus;
136    
137 <  if (difference > 0 || fabs(difference) < oopse::epsilon) {
138 <    needPotential = true;
139 <    needStress = true;  
140 <  }
137 >    if (difference > 0 || fabs(difference) < oopse::epsilon) {
138 >      needPotential = true;
139 >      needStress = true;  
140 >    }
141    
142 < }
142 >  }
143  
144 < void VelocityVerletIntegrator::postStep() {
144 >  void VelocityVerletIntegrator::postStep() {
145    
146 <  //save snapshot
147 <  info_->getSnapshotManager()->advance();
146 >    //save snapshot
147 >    info_->getSnapshotManager()->advance();
148    
149 <  //increase time
150 <  currentSnapshot_->increaseTime(dt);        
149 >    //increase time
150 >    currentSnapshot_->increaseTime(dt);        
151    
152 <  if (needVelocityScaling) {
153 <    if (currentSnapshot_->getTime() >= currThermal) {
154 <      velocitizer_->velocitize(targetScalingTemp);
155 <      currThermal += thermalTime;
152 >    if (needVelocityScaling) {
153 >      if (currentSnapshot_->getTime() >= currThermal) {
154 >        velocitizer_->velocitize(targetScalingTemp);
155 >        currThermal += thermalTime;
156 >      }
157      }
157  }
158    
159 <  if (currentSnapshot_->getTime() >= currSample) {
160 <    dumpWriter->writeDumpAndEor();
159 >    if (currentSnapshot_->getTime() >= currSample) {
160 >      dumpWriter->writeDumpAndEor();
161      
162 <    if (simParams->getUseSolidThermInt())
163 <      restWriter->writeZangle();
162 >      if (simParams->getUseSolidThermInt())
163 >        restWriter->writeZangle();
164      
165 <    currSample += sampleTime;
166 <  }
165 >      currSample += sampleTime;
166 >    }
167    
168 <  if (currentSnapshot_->getTime() >= currStatus) {
169 <    //save statistics, before writeStat,  we must save statistics
170 <    thermo.saveStat();
171 <    saveConservedQuantity();
172 <    statWriter->writeStat(currentSnapshot_->statData);
168 >    if (currentSnapshot_->getTime() >= currStatus) {
169 >      //save statistics, before writeStat,  we must save statistics
170 >      thermo.saveStat();
171 >      saveConservedQuantity();
172 >      statWriter->writeStat(currentSnapshot_->statData);
173      
174 <    needPotential = false;
175 <    needStress = false;
176 <    currStatus += statusTime;
177 <  }
174 >      needPotential = false;
175 >      needStress = false;
176 >      currStatus += statusTime;
177 >    }
178    
179    
180 < }
180 >  }
181  
182  
183 < void VelocityVerletIntegrator::finalize() {
184 <  dumpWriter->writeEor();
183 >  void VelocityVerletIntegrator::finalize() {
184 >    dumpWriter->writeEor();
185    
186 <  if (simParams->getUseSolidThermInt()) {
187 <    restWriter->writeZangle();
188 <    delete restWriter;
189 <    restWriter = NULL;
190 <  }
186 >    if (simParams->getUseSolidThermInt()) {
187 >      restWriter->writeZangle();
188 >      delete restWriter;
189 >      restWriter = NULL;
190 >    }
191    
192 <  delete dumpWriter;
193 <  delete statWriter;
192 >    delete dumpWriter;
193 >    delete statWriter;
194    
195 <  dumpWriter = NULL;
196 <  statWriter = NULL;
195 >    dumpWriter = NULL;
196 >    statWriter = NULL;
197    
198 < }
198 >  }
199  
200 < void VelocityVerletIntegrator::integrateStep() {
200 >  void VelocityVerletIntegrator::integrateStep() {
201    
202 <  moveA();
203 <  calcForce(needPotential, needStress);
204 <  moveB();
205 < }
202 >    moveA();
203 >    calcForce(needPotential, needStress);
204 >    moveB();
205 >  }
206  
207  
208 < void VelocityVerletIntegrator::calcForce(bool needPotential,
209 <                                         bool needStress) {
210 <  forceMan_->calcForces(needPotential, needStress);
211 < }
208 >  void VelocityVerletIntegrator::calcForce(bool needPotential,
209 >                                           bool needStress) {
210 >    forceMan_->calcForces(needPotential, needStress);
211 >  }
212  
213 < DumpWriter* VelocityVerletIntegrator::createDumpWriter() {
214 <  return new DumpWriter(info_);
215 < }
216 <
217 < StatWriter* VelocityVerletIntegrator::createStatWriter() {
218 <  // if solidThermInt is true, add extra information to the statfile
219 <  if (simParams->getUseSolidThermInt()){
220 <    StatsBitSet mask;
221 <    mask.set(Stats::TIME);
222 <    mask.set(Stats::TOTAL_ENERGY);
223 <    mask.set(Stats::POTENTIAL_ENERGY);
224 <    mask.set(Stats::KINETIC_ENERGY);
225 <    mask.set(Stats::TEMPERATURE);
226 <    mask.set(Stats::PRESSURE);
227 <    mask.set(Stats::VOLUME);
228 <    mask.set(Stats::CONSERVED_QUANTITY);
229 <    mask.set(Stats::VRAW);
230 <    mask.set(Stats::VHARM);
231 <    return new StatWriter(info_->getStatFileName(), mask);
213 >  DumpWriter* VelocityVerletIntegrator::createDumpWriter() {
214 >    return new DumpWriter(info_);
215    }
216 +
217 +  StatWriter* VelocityVerletIntegrator::createStatWriter() {
218 +    // if solidThermInt is true, add extra information to the statfile
219 +    if (simParams->getUseSolidThermInt()){
220 +      StatsBitSet mask;
221 +      mask.set(Stats::TIME);
222 +      mask.set(Stats::TOTAL_ENERGY);
223 +      mask.set(Stats::POTENTIAL_ENERGY);
224 +      mask.set(Stats::KINETIC_ENERGY);
225 +      mask.set(Stats::TEMPERATURE);
226 +      mask.set(Stats::PRESSURE);
227 +      mask.set(Stats::VOLUME);
228 +      mask.set(Stats::CONSERVED_QUANTITY);
229 +      mask.set(Stats::VRAW);
230 +      mask.set(Stats::VHARM);
231 +      return new StatWriter(info_->getStatFileName(), mask);
232 +    }
233    
234 <  return new StatWriter(info_->getStatFileName());
235 < }
234 >    return new StatWriter(info_->getStatFileName());
235 >  }
236  
237 < RestWriter* VelocityVerletIntegrator::createRestWriter(){
238 <  return new RestWriter(info_);
239 < }
237 >  RestWriter* VelocityVerletIntegrator::createRestWriter(){
238 >    return new RestWriter(info_);
239 >  }
240  
241  
242   } //end namespace oopse

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines