C++ main module for emicrom Package  1.0
EMM_LandauLifschitzODE_RK.h
Go to the documentation of this file.
1 #ifndef EMM_LandauLifschitzODE_RK_H
2 #define EMM_LandauLifschitzODE_RK_H
3 
4 
6 
42 
44  // ATTRIBUTES
45 
46 public:
47 
48 
49 
50 
51 private:
52 
53 
54 
55 
56  //fields
57  SV::EMM_RealField mFs;
58 
59 protected:
60  // METHODS
61 
62  // CONSTRUCTORS
63 
67 
68 
69 
70  // DESTRUCTORS
71 
72 
75  virtual ~EMM_LandauLifschitzODE_RK(void);
76 
77 
78 public:
79 
80  //NEW constructor
81 protected:
82 
83 
84  //DATA methods
85  //=============
86 public:
87 
88 
89 
93  void setOrder(const tUSInt& n);
94 
98  inline tUSInt getOrder() const {
99  return mFs.getSize();
100  }
101 
105  inline const SV::EMM_RealField& getIntermediateFields() const {
106  return mFs;
107  }
108 
112  virtual const tReal* getACoefficients() const=0;
116  virtual const tReal* getBCoefficients() const=0;
117 
121  virtual const tReal* getCTCoefficients() const=0;
122 
126  virtual const tReal* getCHCoefficients() const=0;
127 
128 
129  //MAGNETIZATION field methods
130  //===========================
131 public:
149  const tFlag& errorNorm,
150  const tReal& epsilon,
151  tUSInt& nEvaluations,
152  const EMM_RealField& dM_dt0,
153  const EMM_RealField& M0,
154  EMM_RealField& Mt);
155 
156 
157 
158 
159 
160 };
161 
162 #endif
virtual const tReal * getCTCoefficients() const =0
get the CT coefficients
#define tUSInt
Definition: types.h:28
This class describes a resolution of Landau-Lifschitz system of the Core Package for E-MicroM package...
Definition: EMM_LandauLifschitzODE.h:26
const SV::EMM_RealField & getIntermediateFields() const
get the intermediate fields F=dM/dt used by RK in ]0,dt[
Definition: EMM_LandauLifschitzODE_RK.h:105
virtual ~EMM_LandauLifschitzODE_RK(void)
destroy the class
Definition: EMM_LandauLifschitzODE_RK.cpp:16
EMM_LandauLifschitzODE_RK(void)
create the class
Definition: EMM_LandauLifschitzODE_RK.cpp:11
SP_OBJECT(EMM_LandauLifschitzODE_RK)
SV::EMM_RealField mFs
Definition: EMM_LandauLifschitzODE_RK.h:57
virtual const tReal * getBCoefficients() const =0
get the B coefficients
tUSInt getOrder() const
get the order of the runge kutta
Definition: EMM_LandauLifschitzODE_RK.h:98
This class implements a general Runge Kutta formulation to integrate the ODE System.
Definition: EMM_LandauLifschitzODE_RK.h:41
virtual tReal integrateMagnetizationFieldAtTime(tReal &dt, const tFlag &errorNorm, const tReal &epsilon, tUSInt &nEvaluations, const EMM_RealField &dM_dt0, const EMM_RealField &M0, EMM_RealField &Mt)
integrate the magnetization field at time t from time and derivative field at time 0 ...
Definition: EMM_LandauLifschitzODE_RK.cpp:42
virtual const tReal * getCHCoefficients() const =0
get the CH coefficients
DEFINE_SPTR(EMM_LandauLifschitzODE_RK)
This class describes a real field.
Definition: EMM_RealField.h:21
void setOrder(const tUSInt &n)
set the order of the runge kutta
Definition: EMM_LandauLifschitzODE_RK.cpp:19
#define tReal
Definition: types.h:118
#define tFlag
Definition: types.h:74
virtual const tReal * getACoefficients() const =0
get the A coefficients