SpinParser  1.0
SpinParser.hpp
Go to the documentation of this file.
1 
9 #pragma once
10 #include "lib/Log.hpp"
11 #include "lib/Timestamp.hpp"
12 #include "lib/LoadManager.hpp"
13 #include "lib/Exception.hpp"
14 #include "FrgCommon.hpp"
15 #include "CommandLineOptions.hpp"
16 #include "TaskFileParser.hpp"
17 
18 class FrgCore;
19 
24 {
28  enum struct Identifier : int
29  {
30  New = 0,
31  Running = 1,
32  Postprocessing = 2,
33  Finished = 3
34  };
35 
40 };
41 
42 struct Fileset
43 {
44  std::string taskFile;
45  std::string obsFile;
46  std::string dataFile;
47  std::string checkpointFile;
48 };
49 
58 {
59 public:
65  static SpinParser *spinParser();
66 
74  int run(int argc, char **argv);
75 
81  bool isMasterRank() const;
82 
89 
93  Fileset getFileset() const;
94 
101 
108 
115 
121  FrgCore *getFrgCore() const;
122 
123 protected:
127  SpinParser();
128 
132  ~SpinParser();
133 
137  void runCore();
138 
142  void writeCheckpoint();
143 
148 
153 };
ComputationStatus::statusIdentifier
Identifier statusIdentifier
Computation status identfier;.
Definition: SpinParser.hpp:36
SpinParser::getTaskFileParser
TaskFileParser * getTaskFileParser() const
Retrieve the internal task file parser.
Definition: SpinParser.cpp:116
Fileset
Definition: SpinParser.hpp:42
SpinParser::_taskFileParser
TaskFileParser * _taskFileParser
Internal task file parser.
Definition: SpinParser.hpp:150
SpinParser::getFrgCore
FrgCore * getFrgCore() const
Retrieve the internal numerics core.
Definition: SpinParser.cpp:27
SpinParser::_loadManager
HMP::LoadManager * _loadManager
Internal load manager.
Definition: SpinParser.hpp:151
ComputationStatus::checkpointTime
Timestamp::Time checkpointTime
Calculation last checkpoint time.
Definition: SpinParser.hpp:38
Fileset::dataFile
std::string dataFile
Path to the data file used for deferred measurements.
Definition: SpinParser.hpp:46
SpinParser::SpinParser
SpinParser()
Construct a new SpinParser object.
Definition: SpinParser.cpp:32
SpinParser::run
int run(int argc, char **argv)
Launch the SpinParser.
Definition: SpinParser.cpp:53
Fileset::checkpointFile
std::string checkpointFile
Path to the checkpoint file.
Definition: SpinParser.hpp:47
FrgCore
Virtual implementation of a pf-FRG numerics core.
Definition: FrgCore.hpp:29
ComputationStatus::Identifier::Postprocessing
@ Postprocessing
Task has finished, but measurements remain to be performed.
FrgCommon.hpp
Hub for central objects in pf-FRG calculations.
SpinParser
Principal object and interface for the solution of pf-FRG flow equations.
Definition: SpinParser.hpp:57
ComputationStatus::startTime
Timestamp::Time startTime
Calculation start time.
Definition: SpinParser.hpp:37
CommandLineOptions
Parser object, which can be fed with argc/argv information and which then holds the parsed values in ...
Definition: CommandLineOptions.hpp:15
ComputationStatus
Computation status descriptor.
Definition: SpinParser.hpp:23
TaskFileParser.hpp
Task file parser routine.
SpinParser::spinParser
static SpinParser * spinParser()
Retrieve the SpinParser singleton.
Definition: SpinParser.cpp:21
SpinParser::~SpinParser
~SpinParser()
Destroy the SpinParser object.
Definition: SpinParser.cpp:46
ComputationStatus::Identifier::Finished
@ Finished
Task has finished.
SpinParser::getComputationStatus
ComputationStatus getComputationStatus() const
Get the current computation status.
Definition: SpinParser.cpp:101
CommandLineOptions.hpp
Parser for command line arguments.
LoadManager.hpp
Implementation of an automatic hybrid OpenMP / MPI load balancer.
SpinParser::getCommandLineOptions
CommandLineOptions * getCommandLineOptions() const
Retrieve the internal command line parser.
Definition: SpinParser.cpp:111
SpinParser::_spinParserInstance
static SpinParser * _spinParserInstance
Singleton instance of the SpinParser.
Definition: SpinParser.hpp:144
ComputationStatus::Identifier
Identifier
Computation status identifier.
Definition: SpinParser.hpp:28
Fileset::obsFile
std::string obsFile
Path to the observable file.
Definition: SpinParser.hpp:45
SpinParser::runCore
void runCore()
Run the numerics core and apply the differential equation solver.
Definition: SpinParser.cpp:126
SpinParser::isMasterRank
bool isMasterRank() const
Query wheter the current instance is the MPI master rank.
Definition: SpinParser.cpp:96
SpinParser::getLoadManager
HMP::LoadManager * getLoadManager() const
Retrieve the internal load manager.
Definition: SpinParser.cpp:121
ComputationStatus::Identifier::New
@ New
The current task is a new calculation.
ComputationStatus::Identifier::Running
@ Running
Calculation of task is in progress, and a checkpoint has been written.
SpinParser::_commandLineOptions
CommandLineOptions * _commandLineOptions
Internal command line parser.
Definition: SpinParser.hpp:149
Exception.hpp
Descriptor object for exceptions.
TaskFileParser
Task file parser routine. The object is bound to a single task file, which it initially reads and par...
Definition: TaskFileParser.hpp:23
Log.hpp
Lightweight logging interface with output filtering.
Timestamp.hpp
Provide formatted timestamp strings.
SpinParser::getFileset
Fileset getFileset() const
Get file names of output files.
Definition: SpinParser.cpp:106
SpinParser::_computationStatus
ComputationStatus _computationStatus
Computation status.
Definition: SpinParser.hpp:146
HMP::LoadManager
Common load manager interface for both, the MPI server rank and slave ranks.
Definition: LoadManager.hpp:66
Timestamp::Time
boost::posix_time::ptime Time
Data structure to jold time and date information.
Definition: Timestamp.hpp:17
Fileset::taskFile
std::string taskFile
Path to the task file.
Definition: SpinParser.hpp:44
SpinParser::_fileset
Fileset _fileset
Output file names.
Definition: SpinParser.hpp:147
ComputationStatus::endTime
Timestamp::Time endTime
Calculation end time.
Definition: SpinParser.hpp:39
SpinParser::_frgCore
FrgCore * _frgCore
Internal numerics core.
Definition: SpinParser.hpp:152
SpinParser::writeCheckpoint
void writeCheckpoint()
Write current state to checkpoint file.
Definition: SpinParser.cpp:212
SpinParser::_isMasterRank
bool _isMasterRank
True, if the current instance is the MPI master rank, false otherwise.
Definition: SpinParser.hpp:145