# | Line 2 | Line 2 | |
---|---|---|
2 | #define OPTIMIZATION_STATUSFUNCTION_HPP | |
3 | #include "config.h" | |
4 | #include "io/DumpWriter.hpp" | |
5 | + | #include "brains/Stats.hpp" |
6 | #include "io/StatWriter.hpp" | |
7 | ||
8 | namespace OpenMD { | |
9 | class StatusFunction { | |
10 | public: | |
11 | virtual ~StatusFunction() {} | |
12 | < | virtual void writeStatus() { std::cerr << "doing status\n"; } |
12 | > | virtual void writeStatus(int functionCount, int gradientCount, const DynamicVector<RealType>& x, RealType f) { std::cerr << "doing status\n"; } |
13 | }; | |
14 | ||
15 | //! No status | |
16 | class NoStatus : public StatusFunction { | |
17 | public: | |
18 | < | virtual void writeStatus() {}; |
18 | > | virtual void writeStatus(int functionCount, int gradientCount, const DynamicVector<RealType>& x, RealType f) {}; |
19 | }; | |
20 | ||
21 | class DumpStatusFunction : public StatusFunction { | |
22 | ||
23 | public: | |
24 | DumpStatusFunction(SimInfo* info) : StatusFunction(), info_(info) { | |
25 | + | stats = new Stats(info_); |
26 | dumpWriter = new DumpWriter(info_); | |
27 | < | StatsBitSet mask; |
27 | > | Stats::StatsBitSet mask; |
28 | mask.set(Stats::TIME); | |
29 | mask.set(Stats::POTENTIAL_ENERGY); | |
30 | < | statWriter = new StatWriter(info_->getStatFileName(), mask); |
30 | > | stats->setStatsMask(mask); |
31 | > | statWriter = new StatWriter(info_->getStatFileName(), stats); |
32 | } | |
33 | < | virtual void writeStatus() { |
33 | > | virtual void writeStatus(int functionCount, int gradientCount, const DynamicVector<RealType>& x, RealType f) { |
34 | Snapshot* curSnapshot =info_->getSnapshotManager()->getCurrentSnapshot(); | |
35 | < | info_->getSnapshotManager()->advance(); |
35 | > | curSnapshot->setTime(functionCount); |
36 | > | |
37 | > | stats->collectStats(); |
38 | > | statWriter->writeStat(); |
39 | > | |
40 | dumpWriter->writeDumpAndEor(); | |
34 | – | statWriter->writeStat(curSnapshot->statData); |
41 | } | |
42 | + | ~DumpStatusFunction() { |
43 | + | delete stats; |
44 | + | delete dumpWriter; |
45 | + | delete statWriter; |
46 | + | } |
47 | ||
48 | private: | |
49 | SimInfo* info_; | |
50 | + | Stats* stats; |
51 | DumpWriter* dumpWriter; | |
52 | < | StatWriter* statWriter; |
52 | > | StatWriter* statWriter; |
53 | }; | |
54 | ||
55 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |