1 #ifndef EMM_GradGaussLegendreRelaxation_H 2 #define EMM_GradGaussLegendreRelaxation_H 65 inline static SP::EMM_GradGaussLegendreRelaxation
New() {
83 if (op.get()==
null)
return false;
84 if (!op->isGradientComputationable())
return false;
96 return *mGradH_F.get();
104 return *mGradF_F.get();
void computeGradFunction(const EMM_RealField &M, const EMM_RealField &H, const EMM_RealField &D, const EMM_RealField &gradH, EMM_RealField &gradF) const
compute the gradient landau-lifschitz function at the direction D in M
Definition: EMM_LandauLifschitzSystem.h:523
This class describes implements the gradient of the landau Lifschitz function to use optimal time ste...
Definition: EMM_GradGaussLegendreRelaxation.h:24
SP_OBJECT(EMM_GradGaussLegendreRelaxation)
SP::EMM_RealField mGradH_F
Definition: EMM_GradGaussLegendreRelaxation.h:38
virtual tBoolean addOperator(SP::EMM_MagneticExcitationOperator op)
add an operator
Definition: EMM_GradGaussLegendreRelaxation.h:82
virtual tBoolean discretize()
discretize the problem
Definition: EMM_GradGaussLegendreRelaxation.cpp:50
#define tBoolean
Definition: types.h:139
static SP::EMM_GradGaussLegendreRelaxation New()
create a shared pointer class of this
Definition: EMM_GradGaussLegendreRelaxation.h:65
This class describes implements the main method for the relaxation processs of the Landau Lifschitz S...
Definition: EMM_GaussLegendreRelaxation.h:55
#define null
Definition: types.h:144
void computeMagnetizationFieldTimeDerivativeGradient(const EMM_RealField &M, const EMM_RealField &H, const EMM_RealField &D, const EMM_RealField &GradH, EMM_RealField &GradF) const
compute the gradient of the time variation of magnetization field
Definition: EMM_GradGaussLegendreRelaxation.h:144
void computeMagneticExcitationFieldGradient(const EMM_RealField &M, const EMM_RealField &D, EMM_RealField &gradH) const
compute the gradient with respect to M of adimensionized H at M in the direction D ...
Definition: EMM_GradGaussLegendreRelaxation.cpp:56
DEFINE_SVPTR(EMM_GradGaussLegendreRelaxation)
virtual void computeLandauLifschitzFields(const EMM_RealField &M, const EMM_RealField &H, EMM_RealField &F)
compute the landau lifschitz fields.
Definition: EMM_GradGaussLegendreRelaxation.cpp:77
tReal computeEnergyTimeDerivatives(tReal &dE_dt, tReal &d2E_dt2) const
computes the two first derivatives of the energy at t=0
Definition: EMM_GradGaussLegendreRelaxation.cpp:93
SP::EMM_RealField mGradF_F
Definition: EMM_GradGaussLegendreRelaxation.h:36
const EMM_RealField & getMagneticExcitationFieldGradient() const
get the gradient of the magnetic excitation in the direction F where F is the magnetization time deri...
Definition: EMM_GradGaussLegendreRelaxation.h:95
EMM_GradGaussLegendreRelaxation(void)
create the class
Definition: EMM_GradGaussLegendreRelaxation.cpp:5
DEFINE_SPTR(EMM_GradGaussLegendreRelaxation)
tReal computeEnergyTimeDerivativesAtTime(const tReal &t, const tFlag &order, tReal &dE_dt, tReal &d2E_dt2)
computes the two first derivatives of the energy at t
Definition: EMM_GradGaussLegendreRelaxation.cpp:128
static const tFlag M
Definition: EMM_LandauLifschitzSystem.h:110
This class describes a real field.
Definition: EMM_RealField.h:21
#define tReal
Definition: types.h:118
virtual tBoolean addOperator(SP::EMM_MagneticExcitationOperator op)
add an operator
Definition: EMM_LandauLifschitzSystem.h:369
virtual ~EMM_GradGaussLegendreRelaxation(void)
destroy the class
Definition: EMM_GradGaussLegendreRelaxation.cpp:30
virtual void toDoAfterThisSetting()
method called after the setting of the shared pointer this method can only be called once...
Definition: EMM_GradGaussLegendreRelaxation.cpp:35
const EMM_RealField & getMagnetizationFieldTimeDerivativeGradient() const
get the gradient of the magnetization time derivative field in the direction where is the magnetiza...
Definition: EMM_GradGaussLegendreRelaxation.h:103
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141
#define tFlag
Definition: types.h:74