1 #ifndef SMOMPI_LandauLifschitzBeam_HPP
2 #define SMOMPI_LandauLifschitzBeam_HPP
6 #include "SM_TRNGStochasticFunctions.h"
7 #include "SM_TRNGStochasticFunctions_MT19937.h"
8 #include "SM_BoostStochasticFunctions.h"
9 #include "SM_STDStochasticFunctions.h"
10 #include "SM_MTStochasticFunctions.h"
13 #include "SM_ConstantNoiseRateFunction.h"
14 #include "SM_InverseNoiseRateFunction.h"
15 template<
class StochOutputImplement>
35 if (ftrngp_lcg64!=
null) {
40 if (ftrngp_yarn2!=
null) {
44 if (ftrngp_mrg2!=
null) {
48 if (ftrngp_mrg3!=
null) {
52 if (ftrngp_mrg3s!=
null) {
56 if (ftrngp_mrg4!=
null) {
60 if (ftrngp_mrg5!=
null) {
64 if (ftrngp_mrg5s!=
null) {
73 return run(outputSData);
77 template<
class StochFunctionsImplement,
class StochOutputImplement>
92 return run(outputSData);
96 template<
class StochFunctionsImplement,
class NoiseRateFunctionImplement,
class StochOutputImplement>
100 tString routineName=
"SMOMPI_LandauLifschitzBeam::templatedRun<S,N,O>()";
114 if (!outputSData.
open(*
this)) {
115 std::cout<<
"stochastic output "<<outputSData.
getIdentityString()<<
" not compatble with the system \n";
121 for (tIndex s=s0;s<s1;s++) {
126 "SMOMPI_LandauLifshitzSystemBeam::runWithSCStochasticFunctions(StochFunction,noiseRate,outputSData)",
127 "initialization of S(t=0) failed");
131 outputSData.
open(s,system);
139 outputSData.
close(s,system,ok);
143 outputSData.
close(*
this);
this class describes the exceptions raised for CORE package
Definition: CORE_Exception.h:17
tString getIdentityString() const
retrun the string identification of the class
Definition: CORE_Object.h:321
static void EndCallRoutine(const tString &routineName)
end calling routine
Definition: CORE_Profiler.h:91
static void StartCallRoutine(const tString &routineName)
start calling routine
Definition: CORE_Profiler.h:61
tBoolean runWithSCStochasticFunctions(SM_StochasticOutput< StochOutputImplement > &outputSData)
run the simulations with static inline casting noise rate function & stochastic function
Definition: SMOMPI_LandauLifschitzBeam.hpp:16
This class describes an MPI implementation of SM_LandauLifschitzSystem.
Definition: SMOMPI_LandauLifschitzSystem.h:18
tBoolean stochasticRunWithSCStochasticFunctions(const tIndex &steppersNumber, SM_MultiStochasticFunctions< StochFImplement > &stochasticFunctions, const SM_NoiseRateFunction< NoiseFImplement > &noiseRateFunction)
compute the relaxation process by calling only virtual methods
virtual tBoolean initializeMagneticMomentDirections() final
initialize magnetic moments direction
Definition: SMOMPI_LandauLifschitzSystem.cpp:54
const SM_System & getSystem() const
get the system
Definition: SM_Beam.h:264
const SM_MultiStochasticFunctionsInterface & getStochasticFunctions() const
get the stochastic functions
Definition: SM_Beam.h:236
const tIndex & getBeamSize() const
get the beam size
Definition: SM_Beam.h:166
const tIndex & getStepsNumber() const
get the number of steps for stochastic computation
Definition: SM_Beam.h:207
const tIndex & getPreconditioningStepsNumber() const
get the number of steps for precoditioning
Definition: SM_Beam.h:194
This class describes an noise rate function of the form .
Definition: SM_ConstantNoiseRateFunction.h:13
This class describes an noise rate function of the form .
Definition: SM_InverseNoiseRateFunction.h:13
SM_LandauLifschitzSystem & getLLSystem()
get the landau lifschitz system
Definition: SM_LandauLifschitzBeam.h:82
tBoolean run(SM_StochasticOutput< StochOutputImplement > &outputSData)
run the simulations
Definition: SM_LandauLifschitzBeam.h:98
SM_NoiseRateFunctionInterface & getNoiseRateFunction()
get the noise rate function
Definition: SM_LandauLifschitzSystem.h:278
This class describes a multi stochastic functions based on same random number generator which impleme...
Definition: SM_MultiStochasticFunctionsInterface.h:18
This class describes a multi stochastic functions based on same random number generator which impleme...
Definition: SM_MultiStochasticFunctions.h:26
This class describes a noise rate function.
Definition: SM_NoiseRateFunctionInterface.h:13
This class describes a templated noise rate function as static polymorphism.
Definition: SM_NoiseRateFunction.h:14
this class implements the virtual methods of its base class SM_StochasticOutputComponent with templat...
Definition: SM_StochasticOutput.h:24
tBoolean close(const tIndex &s, const SM_System &system, const tBoolean &hasSucceeded)
close the stochastic data for the simulation s
Definition: SM_StochasticOutput.h:172
tBoolean open(const SM_Beam &beam)
open the stochastic data
Definition: SM_StochasticOutput.h:147