C++ main module for emicrom Package  1.0
EMM_LandauLifschitzODE.h
Go to the documentation of this file.
1 #ifndef EMM_LandauLifschitzODE_H
2 #define EMM_LandauLifschitzODE_H
3 
4 
6 
7 
8 #include "EMM_ODETimeStep.h"
9 
27 
29  // ATTRIBUTES
30 
31 public:
32 
33 
34 
35 private:
36 
37  //integration order for displacement field
39 
40  //time data
44 
45 
46 
47 
48 protected:
49  // METHODS
50 
51  // CONSTRUCTORS
52 
56 
57 
58 
59  // DESTRUCTORS
60 
61 
64  virtual ~EMM_LandauLifschitzODE(void);
65 
66 
67 public:
68 
69  //NEW constructor
70 protected:
71 
72 
73  //DATA methods
74  //=============
75 public:
76 
80  inline void setTimeIntegrationOrder(const int& order) {
81  mTimeIntegrationOrder=order;
82  }
83 
87  inline const tUCInt& getTimeIntegrationOrder() const {
88  return mTimeIntegrationOrder;
89  }
90 
94  virtual const tUInteger& getTimeStepsNumber() const {
95  return mTimeStep;
96  }
100  virtual const tReal& getTime() const {
101  return mT;
102  }
106  virtual const tReal& getTimeStep() const {
107  return mDt;
108  }
109 
110 
111 
112 
113 
114  //Integration methods
115  //===================
116 
117 
118 public:
136  const tFlag& errorNorm,
137  const tReal& epsilon,
138  tUSInt& nEvaluations,
139  const EMM_RealField& dM_dt0,
140  const EMM_RealField& M0,
141  EMM_RealField& Mt)=0;
142 
143 
144 
145 
146 
147 
148  //fields methods
149  //==============
150 public:
151 
164  tReal& dt,
165  tReal& dtNew,
166  const tFlag& order,
167  const EMM_RealArray& sigma,
168  const EMM_RealField& dM_dt0,
169  const EMM_RealField& M0,
170  EMM_RealField& Mt);
171 
178  virtual void integrate(const tBoolean& isRestoring,tSInt& retCode) {
179  solveODE(isRestoring,retCode);
180  }
181 
209  void solveODE(const tBoolean& isRestoring,tSInt& retCode);
210 
211 
212 
213 };
214 
215 #endif
virtual ~EMM_LandauLifschitzODE(void)
destroy the class
Definition: EMM_LandauLifschitzODE.cpp:37
tReal mT
Definition: EMM_LandauLifschitzODE.h:43
#define tUInteger
Definition: types.h:91
virtual const tReal & getTimeStep() const
return the current time step
Definition: EMM_LandauLifschitzODE.h:106
tUInteger mTimeStep
Definition: EMM_LandauLifschitzODE.h:41
const tUCInt & getTimeIntegrationOrder() const
get the time integration order
Definition: EMM_LandauLifschitzODE.h:87
EMM_LandauLifschitzODE(void)
create the class
Definition: EMM_LandauLifschitzODE.cpp:13
#define tUCInt
Definition: types.h:21
#define tUSInt
Definition: types.h:28
#define tBoolean
Definition: types.h:139
This class describes a resolution of Landau-Lifschitz system of the Core Package for E-MicroM package...
Definition: EMM_LandauLifschitzODE.h:26
virtual const tUInteger & getTimeStepsNumber() const
return the computed time steps
Definition: EMM_LandauLifschitzODE.h:94
tUCInt mTimeIntegrationOrder
Definition: EMM_LandauLifschitzODE.h:38
void solveODE(const tBoolean &isRestoring, tSInt &retCode)
solve the ODE system
Definition: EMM_LandauLifschitzODE.cpp:137
tReal mDt
Definition: EMM_LandauLifschitzODE.h:42
virtual void integrate(const tBoolean &isRestoring, tSInt &retCode)
solve the system
Definition: EMM_LandauLifschitzODE.h:178
#define tSInt
Definition: types.h:30
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzSystem.h:88
void setTimeIntegrationOrder(const int &order)
set the time integration order
Definition: EMM_LandauLifschitzODE.h:80
This class describes a real array.
Definition: EMM_RealArray.h:16
tBoolean computeFieldsAtTime(EMM_ODETimeStep &stepper, tReal &dt, tReal &dtNew, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, EMM_RealField &Mt)
compute the fields of all operators and the magnetization field at time t
Definition: EMM_LandauLifschitzODE.cpp:44
DEFINE_SPTR(EMM_LandauLifschitzODE)
SP_OBJECT(EMM_LandauLifschitzODE)
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)=0
integrate the magnetization field at time t from time and derivative field at time 0 ...
This class describes a real field.
Definition: EMM_RealField.h:21
This class describes an ODE Time step.
Definition: EMM_ODETimeStep.h:15
#define tReal
Definition: types.h:118
virtual const tReal & getTime() const
return the current time
Definition: EMM_LandauLifschitzODE.h:100
#define tFlag
Definition: types.h:74