2
3
4
5
6
7
8
9
10
11
12
13
14
15
17
18
19
20
21#ifndef DISPERSION_ENGINE_H
22#define DISPERSION_ENGINE_H
26#include "data_management/GraphTreeObject.h"
27#include "data_management/DataIO.hpp"
30#include "architecture/Executive.h"
35
36
38 Dispersion(std::string nme,
double d_v, clockwerk::
GraphTreeObject* parent)
39 : default_val(d_v), value
(parent
, nme
, 0.0
) {}
41 clockwerk::
DataIO<
double> value;
42 clockwerk::
DataIO<
double>& operator () () {
return value;}
46
47
49 UniformDispersion(std::string nme,
double d_v,
double mn,
double mx, clockwerk::
GraphTreeObject* parent)
50 :
Dispersion(nme, d_v, parent), min(mn), max(mx) {}
56
57
59 NormalDispersion(std::string nme,
double d_v,
double mn,
double sd, clockwerk::
GraphTreeObject* parent)
60 :
Dispersion(nme, d_v, parent), mean(mn), stdev(sd) {}
65 const int HASH_MULTIPLIER = 37;
66 const int HASH_ADDER = 3;
69
70
71
72
73
74
75
76
77
81 DispersionEngine(clockwerk::
Executive &e) : exc(&e) {}
88 void initialize(
int seed,
int run,
int nruns=1000);
105 double default_val,
double min,
double max);
114 double default_val,
double mean,
double stdev);
134 int _hash(
int run_number,
int seed);
Class for inter-object communication.
Definition DataIO.hpp:46
DataIO(GraphTreeObject *data_parent, std::string data_name, T initial_value)
Constructor for the DataIO object.
Definition DataIO.hpp:134
Central control mechanism to run simulations and software.
Definition Executive.h:43
Base class for object organization.
Definition GraphTreeObject.h:87
Class to generate input dispersions for the simulation.
Definition DispersionEngine.h:78
int _hash(int run_number, int seed)
Function to generate a hashed seed from run number and seed.
Definition DispersionEngine.cpp:134
NormalDispersion & createNormalInputDispersion(const std::string &name, double default_val, double mean, double stdev)
Function to generate a normal input dispersion.
Definition DispersionEngine.cpp:86
Dispersion * operator()(const std::string &query)
Call operator to get pointer to dispersion matching string.
Definition DispersionEngine.cpp:100
void setNormalValue(NormalDispersion *dispersion_ptr)
Function to set the value of a dispersion.
Definition DispersionEngine.cpp:57
void setUniformValue(UniformDispersion *dispersion_ptr)
Function to set the value of a dispersion.
Definition DispersionEngine.cpp:42
UniformDispersion & createUniformInputDispersion(const std::string &name, double default_val, double min, double max)
Function to generate a uniform input dispersion.
Definition DispersionEngine.cpp:72
void dump()
Function to dump all knob information.
Definition DispersionEngine.cpp:116
void initialize(int seed, int run, int nruns=1000)
Function to initialize the dispersion engine.
Definition DispersionEngine.cpp:31
Class to generate random numbers according to normal distribution.
Definition NormalRandom.hpp:40
Class to propagate CR3BP dynamics in characteristic units.
Definition ConfigurationWriter.cpp:18
Struct to store all data associated with dispersion.
Definition DispersionEngine.h:37
Struct to store all data associated with normal dispersion.
Definition DispersionEngine.h:58