C++ mpi module for stochmagnet_main Package
SMOMPI_BeamRunner.h
1 #ifndef SMOMPI_BeamRunner_H
2 #define SMOMPI_BeamRunner_H
3 
4 //inherits header
5 #include "CORE_Object.h"
6 
7 //beam cycle manager header
8 #include "SM_BeamCycle.h"
9 
10 //stochastic output headers
11 #include "SM_StochasticJs.h"
12 
37 
38  //attributes
39 private :
40 
41 
42 
43 public:
44  // CONSTRUCTORS
48  }
49 
50  // DESTRUCTORS
53  virtual ~SMOMPI_BeamRunner(void) {
54  }
55 
56 
57 
58 public :
59  // CREATE class
60 
61 
62  //SET & GET methods
63 
64 
65 
66 
67  //MEMORY
68 
82  virtual tMemSize getMemorySize() const {
83  return sizeof(*this)+getContentsMemorySize();
84  }
85 
86 
87  // MAIN Method
88 
89 public:
90 
91 public:
92 
93 
94 public:
95 
102  template<class BEAM,class STOCHASTIC_OUTPUT> requires ( functions_type::isBaseOf<SM_StochasticJs,STOCHASTIC_OUTPUT>)
103  static inline tBoolean RunBeam(const tBoolean& isTemplatedRun,
104  BEAM& beam,
105  STOCHASTIC_OUTPUT& stochasticOutput) {
106  return beam.stochasticJRun(stochasticOutput,stochasticOutput.getJFunction());
107  }
108 
115  template<class BEAM,class STOCHASTIC_OUTPUT> requires ( ! (functions_type::isBaseOf<SM_StochasticJs,STOCHASTIC_OUTPUT>) )
116  static tBoolean RunBeam(const tBoolean& isTemplatedRun,
117  BEAM& beam,
118  STOCHASTIC_OUTPUT& stochasticOutput);
119 
126  template<class STOCHASTIC_OUTPUT>
127  static tBoolean Run(const CORE_Run& runner,
128  STOCHASTIC_OUTPUT& stochasticOutput,
129  const CORE_OptionsList& options);
130 
138  template<class BEAM_CYCLE,class STOCHASTIC_OUTPUT>
139  static tBoolean Run(const CORE_Run& runner,
140  SM_BeamCycle<BEAM_CYCLE>& cycleManager,
141  STOCHASTIC_OUTPUT& stochasticOutput,
142  const CORE_OptionsList& options);
143 
144 
145 
146 
147 };
148 
149 #include "SMOMPI_BeamRunner.hpp"
150 
151 #endif
abstract base class for most classes.
Definition: CORE_Object.h:65
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: CORE_Object.h:278
This class is an list of options.
Definition: CORE_OptionsList.h:36
This class is a Run class for core package.
Definition: CORE_Run.h:44
This class is a Beam Runner class for Stoch Microm package.
Definition: SMOMPI_BeamRunner.h:36
virtual ~SMOMPI_BeamRunner(void)
destroy
Definition: SMOMPI_BeamRunner.h:53
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SMOMPI_BeamRunner.h:82
static tBoolean Run(const CORE_Run &runner, STOCHASTIC_OUTPUT &stochasticOutput, const CORE_OptionsList &options)
compute the stochastic output from options
Definition: SMOMPI_BeamRunner.hpp:41
requires(functions_type::isBaseOf< SM_StochasticJs, STOCHASTIC_OUTPUT >) static inline tBoolean RunBeam(const tBoolean &isTemplatedRun
run the beam simulations with stochastic output
requires(!(functions_type::isBaseOf< SM_StochasticJs, STOCHASTIC_OUTPUT >)) static tBoolean RunBeam(const tBoolean &isTemplatedRun
run the beam simulations with stochastic output
SMOMPI_BeamRunner(void)
create
Definition: SMOMPI_BeamRunner.h:47
This class is an interface of Beam Cycle class for Stoch Microm package.
Definition: SM_BeamCycle.h:20