creativity  v1.3.0
Agent-based model of creativity and piracy
Simulator.hpp
1 #pragma once
2 #include "creativity/cmdargs/CmdArgs.hpp"
3 #include "creativity/Creativity.hpp"
4 #include <boost/program_options/options_description.hpp>
5 #include <eris/random/rng.hpp>
6 #include <string>
7 namespace boost { namespace program_options { class variables_map; } }
8 
9 namespace creativity { namespace cmdargs {
10 
24 class Simulator : public CmdArgs {
25  protected:
27  Simulator() = delete;
28 
31 
32  public:
33  // Variables which can't be stored directly in CreativitySettings:
38  unsigned int periods = 300;
39 
41  std::string policy;
42 
46  std::string output;
47 
49  std::string tmpdir;
50 
54  unsigned int threads = 0;
55 
60  typename eris::random::rng_t::result_type seed = eris::random::seed();
61 
62  protected:
66  void addOptions() override;
67 
69  virtual void postParse(boost::program_options::variables_map &vars) override;
70 
74  boost::program_options::options_description sim_controls_{"Simulator controls"};
75 
78 
80  double density_ = Creativity::densityFromBoundary(s_.readers, s_.dimensions, s_.boundary);
81 
82 };
83 
84 }}
This class handles command line argument parsing.
Definition: CmdArgs.hpp:31
std::string tmpdir
The temporary directory for results. If empty, use output file dirname.
Definition: Simulator.hpp:49
Definition: CLI.hpp:5
Primary namespace for all Creativity library code.
Definition: config.hpp:4
uint32_t dimensions
The number of dimensions in the simulation.
Definition: CreativitySettings.hpp:15
std::string output
The output file for simulation results; default is "creativity-SEED.crstate" for the CLI...
Definition: Simulator.hpp:46
double boundary
The boundary in each dimension to use for simulation members.
Definition: CreativitySettings.hpp:22
Common base class for CLI and GUI argument handling for running a simulation.
Definition: Simulator.hpp:24
CreativitySettings & s_
The settings reference in which to store given values.
Definition: Simulator.hpp:77
std::string policy
Stores the –policy= argument given.
Definition: Simulator.hpp:41
Simulation parameters that are used to configure the simulation when calling setup().
Definition: CreativitySettings.hpp:10
uint32_t readers
The number of readers in the simulation.
Definition: CreativitySettings.hpp:12