1 |
gezelter |
1741 |
#ifndef OPTIMIZATION_STATUSFUNCTION_HPP |
2 |
|
|
#define OPTIMIZATION_STATUSFUNCTION_HPP |
3 |
|
|
#include "config.h" |
4 |
|
|
#include "io/DumpWriter.hpp" |
5 |
|
|
#include "io/StatWriter.hpp" |
6 |
|
|
|
7 |
|
|
namespace OpenMD { |
8 |
|
|
class StatusFunction { |
9 |
|
|
public: |
10 |
|
|
virtual ~StatusFunction() {} |
11 |
gezelter |
1747 |
virtual void writeStatus(const DynamicVector<RealType>& currentValue) { std::cerr << "doing status\n"; } |
12 |
gezelter |
1741 |
}; |
13 |
|
|
|
14 |
|
|
//! No status |
15 |
|
|
class NoStatus : public StatusFunction { |
16 |
|
|
public: |
17 |
gezelter |
1747 |
virtual void writeStatus(const DynamicVector<RealType>& currentValue) {}; |
18 |
gezelter |
1741 |
}; |
19 |
|
|
|
20 |
|
|
class DumpStatusFunction : public StatusFunction { |
21 |
|
|
|
22 |
|
|
public: |
23 |
|
|
DumpStatusFunction(SimInfo* info) : StatusFunction(), info_(info) { |
24 |
|
|
dumpWriter = new DumpWriter(info_); |
25 |
|
|
StatsBitSet mask; |
26 |
|
|
mask.set(Stats::TIME); |
27 |
|
|
mask.set(Stats::POTENTIAL_ENERGY); |
28 |
|
|
statWriter = new StatWriter(info_->getStatFileName(), mask); |
29 |
|
|
} |
30 |
gezelter |
1747 |
virtual void writeStatus(const DynamicVector<RealType>& currentValue) { |
31 |
gezelter |
1741 |
Snapshot* curSnapshot =info_->getSnapshotManager()->getCurrentSnapshot(); |
32 |
|
|
dumpWriter->writeDumpAndEor(); |
33 |
|
|
statWriter->writeStat(curSnapshot->statData); |
34 |
|
|
} |
35 |
|
|
|
36 |
|
|
private: |
37 |
|
|
SimInfo* info_; |
38 |
|
|
DumpWriter* dumpWriter; |
39 |
|
|
StatWriter* statWriter; |
40 |
|
|
}; |
41 |
|
|
|
42 |
|
|
|
43 |
|
|
} |
44 |
|
|
#endif |