SpinParser  1.0
Measurement.hpp
Go to the documentation of this file.
1 
9 #pragma once
10 #include <string>
11 #include <vector>
12 #include "lib/LoadManager.hpp"
13 
14 struct EffectiveAction;
15 
32 {
33 public:
42  Measurement(const std::string &outfile, const float minCutoff, const float maxCutoff, const bool isDeferred);
43 
47  virtual ~Measurement();
48 
56  virtual void takeMeasurement(const EffectiveAction &state, const bool isMasterTask) const = 0;
57 
63  std::string outfile() const;
64 
70  float minCutoff() const;
71 
77  float maxCutoff() const;
78 
84  bool isDeferred() const;
85 
93  bool isLoadManaged() const;
94 
101  std::vector<HMP::StackIdentifier> getLoadManagedStacks() const;
102 
103 protected:
113  Measurement(const std::string &outfile, const float minCutoff, const float maxCutoff, const bool isDeferred, const bool isLoadManaged);
114 
116  std::vector<HMP::StackIdentifier> _loadManagedStacks;
117 
118 private:
119  std::string _outfile;
120  float _minCutoff;
121  float _maxCutoff;
122  bool _isDeferred;
123 };
Measurement::takeMeasurement
virtual void takeMeasurement(const EffectiveAction &state, const bool isMasterTask) const =0
Virtual implementation of the measurement routine. This routine is called from the SpinParser wheneve...
Measurement::_isLoadManaged
bool _isLoadManaged
If set to true, the measurement protocol is considered to be load managed. Derived classes should ini...
Definition: Measurement.hpp:115
Measurement::getLoadManagedStacks
std::vector< HMP::StackIdentifier > getLoadManagedStacks() const
Return a list of LoadManager::DataStack ids to compute in the FrgCore::computeStep() function.
Definition: Measurement.cpp:44
Measurement::isDeferred
bool isDeferred() const
Query whether the measurement protocol is a deferred measurement.
Definition: Measurement.cpp:34
Measurement
Virtual implementation of a measurement protocol.
Definition: Measurement.hpp:31
Measurement::outfile
std::string outfile() const
Return the filename of the output file.
Definition: Measurement.cpp:19
LoadManager.hpp
Implementation of an automatic hybrid OpenMP / MPI load balancer.
EffectiveAction
Virtual implementation of a flowing effective action.
Definition: EffectiveAction.hpp:19
Measurement::isLoadManaged
bool isLoadManaged() const
Query whether the measurement protocol is load managed.
Definition: Measurement.cpp:39
Measurement::maxCutoff
float maxCutoff() const
Return the maximum cutoff value below which the measurement protocol is invoked.
Definition: Measurement.cpp:29
Measurement::_loadManagedStacks
std::vector< HMP::StackIdentifier > _loadManagedStacks
Contains a list of load managed stack identifiers. Derived classis should initialize this list in the...
Definition: Measurement.hpp:116
Measurement::~Measurement
virtual ~Measurement()
Virtual destructor.
Definition: Measurement.cpp:17
Measurement::Measurement
Measurement(const std::string &outfile, const float minCutoff, const float maxCutoff, const bool isDeferred)
Construct a non load managed Measurement object.
Definition: Measurement.cpp:13
Measurement::minCutoff
float minCutoff() const
Return the minimum cutoff above which the measurement protocol is invoked.
Definition: Measurement.cpp:24