C++ mpi module for stochmagnet_main Package
SM_LandauLifschitzBeam.h
1 #ifndef SM_LandauLifschitzBeam_H
2 #define SM_LandauLifschitzBeam_H
3 
4 //base class
5 #include "SM_Beam.h"
6 
7 //LL system header
8 #include "SM_LandauLifschitzSystem.h"
9 
21 
22  //attributes
23 private :
24 
26  typedef SM_Beam SuperClass;
27 
28 
29 protected:
30  // CONSTRUCTORS
34  }
35  // DESTRUCTORS
38  virtual ~SM_LandauLifschitzBeam(void) {
39  }
40 public :
41  // CREATE class as a pointer
42 
43 
44  //MEMORY
45 
59  virtual tMemSize getMemorySize() const override {
60  return sizeof(*this)+getContentsMemorySize();
61  }
62 
71  virtual tMemSize getContentsMemorySize() const override {
72  tMemSize mem=SuperClass::getContentsMemorySize();
73 
74  return mem;
75  }
76 
77  //system set & get
78  //=================
79 
83  return *dynamic_cast<SM_LandauLifschitzSystem*>(&getSystem());
84  }
87  inline const SM_LandauLifschitzSystem& getLLSystem() const {
88  return *dynamic_cast<const SM_LandauLifschitzSystem*>(&getSystem());
89  }
90 
91  //beam runner
92  //============
97  template<class StochOutputImplement>
98  inline tBoolean run(SM_StochasticOutput<StochOutputImplement>& outputSData) {
99  return SM_Beam::run<SM_LandauLifschitzSystem,StochOutputImplement>(outputSData);
100  }
101 
107  template<class StochOutputImplement>
109  const std::function<void(const tReal&,const tReal& ,const tReal&,tReal& )>& F);
110 
111 
112 
113 
114 
115 };
116 
117 
118 #include "SM_LandauLifschitzBeam.hpp"
119 #endif
This class defines a general stochastic beam of trajectories of system.
Definition: SM_Beam.h:61
const SM_System & getSystem() const
get the system
Definition: SM_Beam.h:264
virtual tMemSize getContentsMemorySize() const override
return the memory size of the included associations
Definition: SM_Beam.h:133
This class is a simulation of a beam of trajectories form a laudau-Lifschitz system.
Definition: SM_LandauLifschitzBeam.h:20
const SM_LandauLifschitzSystem & getLLSystem() const
get the landau lifschitz system
Definition: SM_LandauLifschitzBeam.h:87
virtual tMemSize getContentsMemorySize() const override
return the memory size of the included associations
Definition: SM_LandauLifschitzBeam.h:71
SM_LandauLifschitzSystem & getLLSystem()
get the landau lifschitz system
Definition: SM_LandauLifschitzBeam.h:82
SM_LandauLifschitzBeam(void)
create
Definition: SM_LandauLifschitzBeam.h:33
tBoolean stochasticJRun(SM_StochasticOutput< StochOutputImplement > &outputSData, const std::function< void(const tReal &, const tReal &, const tReal &, tReal &)> &F)
run the simulations
Definition: SM_LandauLifschitzBeam.hpp:5
virtual tMemSize getMemorySize() const override
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_LandauLifschitzBeam.h:59
tBoolean run(SM_StochasticOutput< StochOutputImplement > &outputSData)
run the simulations
Definition: SM_LandauLifschitzBeam.h:98
virtual ~SM_LandauLifschitzBeam(void)
destroy
Definition: SM_LandauLifschitzBeam.h:38
This class is a simulation of one trajectory class for Stoch Magnet package.
Definition: SM_LandauLifschitzSystem.h:59
this class implements the virtual methods of its base class SM_StochasticOutputComponent with templat...
Definition: SM_StochasticOutput.h:24