--- branches/development/src/optimization/StatusFunction.hpp 2012/06/07 12:53:46 1750 +++ branches/development/src/optimization/StatusFunction.hpp 2013/05/15 15:09:35 1874 @@ -2,6 +2,7 @@ #define OPTIMIZATION_STATUSFUNCTION_HPP #include "config.h" #include "io/DumpWriter.hpp" +#include "brains/Stats.hpp" #include "io/StatWriter.hpp" namespace OpenMD { @@ -20,30 +21,35 @@ namespace OpenMD { class DumpStatusFunction : public StatusFunction { public: - DumpStatusFunction(SimInfo* info) : StatusFunction(), info_(info), thermo(info) { + DumpStatusFunction(SimInfo* info) : StatusFunction(), info_(info) { + stats = new Stats(info_); dumpWriter = new DumpWriter(info_); - StatsBitSet mask; + Stats::StatsBitSet mask; mask.set(Stats::TIME); mask.set(Stats::POTENTIAL_ENERGY); - statWriter = new StatWriter(info_->getStatFileName(), mask); + stats->setStatsMask(mask); + statWriter = new StatWriter(info_->getStatFileName(), stats); } virtual void writeStatus(int functionCount, int gradientCount, const DynamicVector& x, RealType f) { Snapshot* curSnapshot =info_->getSnapshotManager()->getCurrentSnapshot(); - thermo.saveStat(); curSnapshot->setTime(functionCount); + + stats->collectStats(); + statWriter->writeStat(); + dumpWriter->writeDumpAndEor(); - statWriter->writeStat(curSnapshot->statData); } ~DumpStatusFunction() { + delete stats; delete dumpWriter; delete statWriter; } private: SimInfo* info_; + Stats* stats; DumpWriter* dumpWriter; - StatWriter* statWriter; - Thermo thermo; + StatWriter* statWriter; };