C++ main module for emicrom Package  1.0
EMM_GaussLegendreRelaxation.h
Go to the documentation of this file.
1 #ifndef EMM_GaussLegendreRelaxation_H
2 #define EMM_GaussLegendreRelaxation_H
3 
5 
7 
8 
56 
58  // ATTRIBUTES
59 
60 public:
61 
62 
63 private:
64 
65  //GL integration
66  SP::MATH_GaussLegendreIntegration mIntegrator;
67 
68  //local field for GL integration
69  SP::EMM_RealField mMs;
70  SP::EMM_RealField mFs;
71 
72 
73 
74 protected:
75  // METHODS
76 
77  // CONSTRUCTORS
78 
82 
83 
84 
85  // DESTRUCTORS
86 
87 
90  virtual ~EMM_GaussLegendreRelaxation(void);
91 
92 
93 public:
94 
98  inline static SP::EMM_GaussLegendreRelaxation New() {
99  SP::EMM_GaussLegendreRelaxation sp(new EMM_GaussLegendreRelaxation(),EMM_GaussLegendreRelaxation::Delete());
100  sp->setThis(sp);
101  return sp;
102  }
103 
107  virtual void toDoAfterThisSetting();
108 
109 
110 
111 
112  // SET methods
113  //============
114 
115  // GET methods
116  // ============
117 public:
122  return *mMs.get();
123  }
128  return *mFs.get();
129  }
130 
136  return *mMs.get();
137  }
138 
143 
144  return *mFs.get();
145  }
146 
147 
148 
149 public:
150 
159  virtual tBoolean discretize();
160 
161 
187  const tFlag& order,
188  const EMM_RealArray& sigma,
189  const EMM_RealField& dM_dt0,
190  const EMM_RealField& M0,
191  EMM_RealField& M);
192 
193 
194 
195 
196 private:
208  const EMM_RealArray& sigma,
209  const EMM_RealField& dM_dt0,
210  const EMM_RealField& M0,
211  EMM_RealField& Mt);
212 
225  const EMM_RealArray& sigma,
226  const EMM_RealField& dM_dt0,
227  const EMM_RealField& M0,
228  EMM_RealField& Mt);
229 
230 };
231 
232 #endif
DEFINE_SVPTR(EMM_GaussLegendreRelaxation)
tBoolean computeMagnetizationFieldAtTimeWithGL1Interpolation(const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, EMM_RealField &Mt)
compute the new Mt by gauss legendre interpolation of degre N (N=1)
Definition: EMM_GaussLegendreRelaxation.cpp:65
EMM_RealField & getIntermediateMagnetizationTimeDerivativeField()
get temporary magnetization time derivative field used in computeMagnetizationFieldAtTime() ...
Definition: EMM_GaussLegendreRelaxation.h:142
virtual ~EMM_GaussLegendreRelaxation(void)
destroy the class
Definition: EMM_GaussLegendreRelaxation.cpp:34
SP_OBJECT(EMM_GaussLegendreRelaxation)
tBoolean computeMagnetizationFieldAtTimeWithGLnInterpolation(const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, EMM_RealField &Mt)
compute the new Mt by gauss legendre interpolation of degre N (N=4)
Definition: EMM_GaussLegendreRelaxation.cpp:78
SP::EMM_RealField mFs
Definition: EMM_GaussLegendreRelaxation.h:70
#define tBoolean
Definition: types.h:139
SP::MATH_GaussLegendreIntegration mIntegrator
Definition: EMM_GaussLegendreRelaxation.h:66
virtual void toDoAfterThisSetting()
method called after the setting of the shared pointer this method can only be called once...
Definition: EMM_GaussLegendreRelaxation.cpp:37
This class describes implements the main method for the relaxation processs of the Landau Lifschitz S...
Definition: EMM_GaussLegendreRelaxation.h:55
virtual tBoolean integrateMagnetizationFieldAtTime(const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0, EMM_RealField &M)
integrate the magnetic field at tme t in [0,dt [ where dt will be the next time step ...
Definition: EMM_GaussLegendreRelaxation.cpp:141
const EMM_RealField & getIntermediateMagnetizationField() const
get temporary magnetization field used in computeMagnetizationFieldAtTime()
Definition: EMM_GaussLegendreRelaxation.h:121
virtual tBoolean discretize()
discretize the problem
Definition: EMM_GaussLegendreRelaxation.cpp:52
EMM_RealField & getIntermediateMagnetizationField()
get temporary magnetization field only used in computeMagnetizationFieldAtTime()
Definition: EMM_GaussLegendreRelaxation.h:135
This class describes a real array.
Definition: EMM_RealArray.h:16
static SP::EMM_GaussLegendreRelaxation New()
create a shared pointer class of this
Definition: EMM_GaussLegendreRelaxation.h:98
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzRelaxation.h:32
DEFINE_SPTR(EMM_GaussLegendreRelaxation)
SP::EMM_RealField mMs
Definition: EMM_GaussLegendreRelaxation.h:69
static const tFlag M
Definition: EMM_LandauLifschitzSystem.h:110
This class describes a real field.
Definition: EMM_RealField.h:21
const EMM_RealField & getIntermediateMagnetizationTimeDerivativeField() const
get temporary magnetization time derivative field used in computeMagnetizationFieldAtTime() ...
Definition: EMM_GaussLegendreRelaxation.h:127
EMM_GaussLegendreRelaxation(void)
create the class
Definition: EMM_GaussLegendreRelaxation.cpp:8
#define tReal
Definition: types.h:118
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141
#define tFlag
Definition: types.h:74