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

Comparing branches/development/src/brains/Stats.cpp (file contents):
Revision 1764 by gezelter, Tue Jul 3 18:32:27 2012 UTC vs.
Revision 1850 by gezelter, Wed Feb 20 15:39:39 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 195 | Line 195 | namespace OpenMD {
195  
196      StatsData hydrogenbonding_potential;
197      hydrogenbonding_potential.units =  "kcal/mol";
198 <    hydrogenbonding_potential.title =  "Metallic Potential";    
198 >    hydrogenbonding_potential.title =  "Hydrogen Bonding Potential";    
199      hydrogenbonding_potential.dataType = "RealType";
200      hydrogenbonding_potential.accumulator = new Accumulator();
201      data_[HYDROGENBONDING_POTENTIAL] = hydrogenbonding_potential;
# Line 281 | Line 281 | namespace OpenMD {
281      data_[TAGGED_PAIR_DISTANCE] = tagged_pair_distance;
282      statsMap_["TAGGED_PAIR_DISTANCE"] =  TAGGED_PAIR_DISTANCE;
283  
284    StatsData rnemd_exchange_total;
285    rnemd_exchange_total.units =  "Variable";
286    rnemd_exchange_total.title =  "RNEMD_exchange_total";
287    rnemd_exchange_total.dataType = "RealType";
288    rnemd_exchange_total.accumulator = new Accumulator();
289    data_[RNEMD_EXCHANGE_TOTAL] = rnemd_exchange_total;
290    statsMap_["RNEMD_EXCHANGE_TOTAL"] =  RNEMD_EXCHANGE_TOTAL;
291
284      StatsData shadowh;
285      shadowh.units =  "kcal/mol";
286      shadowh.title =  "Shadow Hamiltonian";
# Line 365 | Line 357 | namespace OpenMD {
357        }
358      }
359      
368    if (simParams->getRNEMDParameters()->getUseRNEMD()) {
369      statsMask_.set(RNEMD_EXCHANGE_TOTAL);
370    }
371
372
373
360    }
361  
362    void Stats::parseStatFileFormat(const std::string& format) {
# Line 414 | Line 400 | namespace OpenMD {
400      Snapshot* snap = info_->getSnapshotManager()->getCurrentSnapshot();
401      Thermo thermo(info_);
402    
403 <    for (int i = 0; i < statsMask_.size(); ++i) {
403 >    for (unsigned int i = 0; i < statsMask_.size(); ++i) {
404        if (statsMask_[i]) {
405          switch (i) {
406          case TIME:
407 <          data_[i].accumulator->add(snap->getTime());
407 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getTime());
408            break;
409          case KINETIC_ENERGY:
410 <          data_[i].accumulator->add(thermo.getKinetic());
410 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getKinetic());
411            break;
412          case POTENTIAL_ENERGY:
413 <          data_[i].accumulator->add(thermo.getPotential());
413 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getPotential());
414            break;
415          case TOTAL_ENERGY:
416 <          data_[i].accumulator->add(thermo.getTotalEnergy());
416 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getTotalEnergy());
417            break;
418          case TEMPERATURE:
419 <          data_[i].accumulator->add(thermo.getTemperature());
419 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getTemperature());
420            break;
421          case PRESSURE:
422 <          data_[i].accumulator->add(thermo.getPressure());
422 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getPressure());
423            break;
424          case VOLUME:
425 <          data_[i].accumulator->add(thermo.getVolume());
425 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getVolume());
426            break;
427          case CONSERVED_QUANTITY:
428 <          data_[i].accumulator->add(snap->getConservedQuantity());
428 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getConservedQuantity());
429            break;
430          case PRESSURE_TENSOR:
431            dynamic_cast<MatrixAccumulator *>(data_[i].accumulator)->add(thermo.getPressureTensor());
# Line 451 | Line 437 | namespace OpenMD {
437            dynamic_cast<VectorAccumulator *>(data_[i].accumulator)->add(thermo.getHeatFlux());
438            break;
439          case HULLVOLUME:
440 <          data_[i].accumulator->add(thermo.getHullVolume());
440 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getHullVolume());
441            break;
442          case GYRVOLUME:
443 <          data_[i].accumulator->add(thermo.getGyrationalVolume());
443 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getGyrationalVolume());
444            break;
445          case TRANSLATIONAL_KINETIC:
446 <          data_[i].accumulator->add(thermo.getTranslationalKinetic());
446 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getTranslationalKinetic());
447            break;
448          case ROTATIONAL_KINETIC:
449 <          data_[i].accumulator->add(thermo.getRotationalKinetic());
449 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getRotationalKinetic());
450            break;
451          case LONG_RANGE_POTENTIAL:
452 <          data_[i].accumulator->add(snap->getLongRangePotential());
452 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getLongRangePotential());
453            break;
454          case VANDERWAALS_POTENTIAL:
455 <          data_[i].accumulator->add(snap->getLongRangePotentials()[VANDERWAALS_FAMILY]);
455 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getLongRangePotentials()[VANDERWAALS_FAMILY]);
456            break;
457          case ELECTROSTATIC_POTENTIAL:
458 <          data_[i].accumulator->add(snap->getLongRangePotentials()[ELECTROSTATIC_FAMILY]);
458 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getLongRangePotentials()[ELECTROSTATIC_FAMILY]);
459            break;
460          case METALLIC_POTENTIAL:
461 <          data_[i].accumulator->add(snap->getLongRangePotentials()[METALLIC_FAMILY]);
461 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getLongRangePotentials()[METALLIC_FAMILY]);
462            break;
463          case HYDROGENBONDING_POTENTIAL:
464 <          data_[i].accumulator->add(snap->getLongRangePotentials()[HYDROGENBONDING_FAMILY]);
464 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getLongRangePotentials()[HYDROGENBONDING_FAMILY]);
465            break;
466          case SHORT_RANGE_POTENTIAL:
467 <          data_[i].accumulator->add(snap->getShortRangePotential());
467 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getShortRangePotential());
468            break;
469          case BOND_POTENTIAL:
470 <          data_[i].accumulator->add(snap->getBondPotential());
470 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getBondPotential());
471            break;
472          case BEND_POTENTIAL:
473 <          data_[i].accumulator->add(snap->getBendPotential());
473 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getBendPotential());
474            break;
475          case DIHEDRAL_POTENTIAL:
476 <          data_[i].accumulator->add(snap->getTorsionPotential());
476 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getTorsionPotential());
477            break;
478          case INVERSION_POTENTIAL:
479 <          data_[i].accumulator->add(snap->getInversionPotential());
479 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getInversionPotential());
480            break;
481          case RAW_POTENTIAL:
482 <          data_[i].accumulator->add(snap->getRawPotential());
482 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getRawPotential());
483            break;
484          case RESTRAINT_POTENTIAL:
485 <          data_[i].accumulator->add(snap->getRestraintPotential());
485 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(snap->getRestraintPotential());
486            break;
487          case TAGGED_PAIR_DISTANCE:
488 <          data_[i].accumulator->add(thermo.getTaggedAtomPairDistance());
488 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getTaggedAtomPairDistance());
489            break;
490            /*
505        case RNEMD_EXCHANGE_TOTAL:
506          data_[i].accumulator->add(thermo.get_RNEMD_exchange_total());
507          break;
491          case SHADOWH:
492 <          data_[i].accumulator->add(thermo.getShadowHamiltionian());
492 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getShadowHamiltionian());
493            break;
494          case HELFANDMOMENT:
495 <          data_[i].accumulator->add(thermo.getHelfandMoment());
495 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getHelfandMoment());
496            break;
497            */
498          case ELECTRONIC_TEMPERATURE:
499 <          data_[i].accumulator->add(thermo.getElectronicTemperature());
499 >          dynamic_cast<Accumulator *>(data_[i].accumulator)->add(thermo.getElectronicTemperature());
500            break;
501          }
502        }
# Line 523 | Line 506 | namespace OpenMD {
506    int Stats::getIntData(int index) {
507      assert(index >=0 && index < ENDINDEX);
508      RealType value;
509 <    data_[index].accumulator->getLastValue(value);
509 >    dynamic_cast<Accumulator *>(data_[index].accumulator)->getLastValue(value);
510      return (int) value;
511    }
512    RealType Stats::getRealData(int index) {
513      assert(index >=0 && index < ENDINDEX);
514      RealType value(0.0);
515 <    data_[index].accumulator->getLastValue(value);
515 >    dynamic_cast<Accumulator *>(data_[index].accumulator)->getLastValue(value);
516      return value;
517    }
518    Vector3d Stats::getVectorData(int index) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines