--- branches/development/src/brains/Stats.cpp 2012/10/22 20:42:10 1808 +++ branches/development/src/brains/Stats.cpp 2012/11/16 21:39:55 1813 @@ -44,6 +44,7 @@ * @file Stats.cpp * @author tlin * @date 11/04/2004 + * @time 14:26am * @version 1.0 */ @@ -403,28 +404,28 @@ namespace OpenMD { if (statsMask_[i]) { switch (i) { case TIME: - data_[i].accumulator->add(snap->getTime()); + dynamic_cast(data_[i].accumulator)->add(snap->getTime()); break; case KINETIC_ENERGY: - data_[i].accumulator->add(thermo.getKinetic()); + dynamic_cast(data_[i].accumulator)->add(thermo.getKinetic()); break; case POTENTIAL_ENERGY: - data_[i].accumulator->add(thermo.getPotential()); + dynamic_cast(data_[i].accumulator)->add(thermo.getPotential()); break; case TOTAL_ENERGY: - data_[i].accumulator->add(thermo.getTotalEnergy()); + dynamic_cast(data_[i].accumulator)->add(thermo.getTotalEnergy()); break; case TEMPERATURE: - data_[i].accumulator->add(thermo.getTemperature()); + dynamic_cast(data_[i].accumulator)->add(thermo.getTemperature()); break; case PRESSURE: - data_[i].accumulator->add(thermo.getPressure()); + dynamic_cast(data_[i].accumulator)->add(thermo.getPressure()); break; case VOLUME: - data_[i].accumulator->add(thermo.getVolume()); + dynamic_cast(data_[i].accumulator)->add(thermo.getVolume()); break; case CONSERVED_QUANTITY: - data_[i].accumulator->add(snap->getConservedQuantity()); + dynamic_cast(data_[i].accumulator)->add(snap->getConservedQuantity()); break; case PRESSURE_TENSOR: dynamic_cast(data_[i].accumulator)->add(thermo.getPressureTensor()); @@ -436,66 +437,66 @@ namespace OpenMD { dynamic_cast(data_[i].accumulator)->add(thermo.getHeatFlux()); break; case HULLVOLUME: - data_[i].accumulator->add(thermo.getHullVolume()); + dynamic_cast(data_[i].accumulator)->add(thermo.getHullVolume()); break; case GYRVOLUME: - data_[i].accumulator->add(thermo.getGyrationalVolume()); + dynamic_cast(data_[i].accumulator)->add(thermo.getGyrationalVolume()); break; case TRANSLATIONAL_KINETIC: - data_[i].accumulator->add(thermo.getTranslationalKinetic()); + dynamic_cast(data_[i].accumulator)->add(thermo.getTranslationalKinetic()); break; case ROTATIONAL_KINETIC: - data_[i].accumulator->add(thermo.getRotationalKinetic()); + dynamic_cast(data_[i].accumulator)->add(thermo.getRotationalKinetic()); break; case LONG_RANGE_POTENTIAL: - data_[i].accumulator->add(snap->getLongRangePotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getLongRangePotential()); break; case VANDERWAALS_POTENTIAL: - data_[i].accumulator->add(snap->getLongRangePotentials()[VANDERWAALS_FAMILY]); + dynamic_cast(data_[i].accumulator)->add(snap->getLongRangePotentials()[VANDERWAALS_FAMILY]); break; case ELECTROSTATIC_POTENTIAL: - data_[i].accumulator->add(snap->getLongRangePotentials()[ELECTROSTATIC_FAMILY]); + dynamic_cast(data_[i].accumulator)->add(snap->getLongRangePotentials()[ELECTROSTATIC_FAMILY]); break; case METALLIC_POTENTIAL: - data_[i].accumulator->add(snap->getLongRangePotentials()[METALLIC_FAMILY]); + dynamic_cast(data_[i].accumulator)->add(snap->getLongRangePotentials()[METALLIC_FAMILY]); break; case HYDROGENBONDING_POTENTIAL: - data_[i].accumulator->add(snap->getLongRangePotentials()[HYDROGENBONDING_FAMILY]); + dynamic_cast(data_[i].accumulator)->add(snap->getLongRangePotentials()[HYDROGENBONDING_FAMILY]); break; case SHORT_RANGE_POTENTIAL: - data_[i].accumulator->add(snap->getShortRangePotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getShortRangePotential()); break; case BOND_POTENTIAL: - data_[i].accumulator->add(snap->getBondPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getBondPotential()); break; case BEND_POTENTIAL: - data_[i].accumulator->add(snap->getBendPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getBendPotential()); break; case DIHEDRAL_POTENTIAL: - data_[i].accumulator->add(snap->getTorsionPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getTorsionPotential()); break; case INVERSION_POTENTIAL: - data_[i].accumulator->add(snap->getInversionPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getInversionPotential()); break; case RAW_POTENTIAL: - data_[i].accumulator->add(snap->getRawPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getRawPotential()); break; case RESTRAINT_POTENTIAL: - data_[i].accumulator->add(snap->getRestraintPotential()); + dynamic_cast(data_[i].accumulator)->add(snap->getRestraintPotential()); break; case TAGGED_PAIR_DISTANCE: - data_[i].accumulator->add(thermo.getTaggedAtomPairDistance()); + dynamic_cast(data_[i].accumulator)->add(thermo.getTaggedAtomPairDistance()); break; /* case SHADOWH: - data_[i].accumulator->add(thermo.getShadowHamiltionian()); + dynamic_cast(data_[i].accumulator)->add(thermo.getShadowHamiltionian()); break; case HELFANDMOMENT: - data_[i].accumulator->add(thermo.getHelfandMoment()); + dynamic_cast(data_[i].accumulator)->add(thermo.getHelfandMoment()); break; */ case ELECTRONIC_TEMPERATURE: - data_[i].accumulator->add(thermo.getElectronicTemperature()); + dynamic_cast(data_[i].accumulator)->add(thermo.getElectronicTemperature()); break; } } @@ -505,13 +506,13 @@ namespace OpenMD { int Stats::getIntData(int index) { assert(index >=0 && index < ENDINDEX); RealType value; - data_[index].accumulator->getLastValue(value); + dynamic_cast(data_[index].accumulator)->getLastValue(value); return (int) value; } RealType Stats::getRealData(int index) { assert(index >=0 && index < ENDINDEX); RealType value(0.0); - data_[index].accumulator->getLastValue(value); + dynamic_cast(data_[index].accumulator)->getLastValue(value); return value; } Vector3d Stats::getVectorData(int index) {