1 #ifndef EMMG_StaticMagneticTensorOperator_H 2 #define EMMG_StaticMagneticTensorOperator_H 54 inline static SP::EMMG_StaticMagneticTensorOperator
New() {
79 if (nCells==0)
return;
83 if (gM==
null)
throw EMM_Exception(
"generic",
"EMMG_MagneticTensorOperator::computeMagneticExcitationField(..)",
84 "M is an incompatible real field");
89 if (gH==
null)
throw EMM_Exception(
"generic",
"EMMG_MagneticTensorOperator:: computeMagneticExcitationField(..)",
90 "H is an incompatible real field");
113 if (nCells==0)
return false;
117 if (gM==
null)
throw EMM_Exception(
"generic",
"EMMG_MagneticTensorOperator::computeMagneticExcitationFieldGradient(..)",
118 "M is an incompatible real field");
123 if (gD==
null)
throw EMM_Exception(
"generic",
"EMMG_MagneticTensorOperator:: computeMagneticExcitationFieldGradient(..)",
124 "D is an incompatible real field");
128 if (gGradH==
null)
throw EMM_Exception(
"generic",
"EMMG_MagneticTensorOperator:: computeMagneticExcitationFieldGradient(..)",
129 "GradH is an incompatible real field");
157 if (nCells==0)
return 0;
161 if (gM==
null)
throw EMM_Exception(
"generic",
"EMMG_MagnetostrictionOperator::computeMagneticExcitationField(..)",
162 "M is an incompatible real field");
165 if (gH==
null)
throw EMM_Exception(
"generic",
"EMMG_MagnetostrictionOperator::computeMagneticExcitationField(..)",
166 "H is an incompatible real field");
192 if (nCells==0)
return 0;
196 if (gM==
null)
throw EMM_Exception(
"generic",
"EMMG_StaticMagneticTensorOperator:: computeEnergy(..)",
197 "M is an incompatible real field");
virtual tUIndex getSize() const =0
return the size of the field
DEFINE_SPTR(EMMG_StaticMagneticTensorOperator)
This class describes a generic real field.
Definition: EMMG_RealField.h:17
static SP::EMMG_StaticMagneticTensorOperator New()
create a cubic anisotropy operator
Definition: EMMG_StaticMagneticTensorOperator.h:54
#define tBoolean
Definition: types.h:139
virtual tReal computeEnergy(const tReal &t, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *Mt) const
compute the energy of the anistropy operator
Definition: EMM_StaticMagneticTensorOperator.cpp:174
EMMG_StaticMagneticTensorOperator(void)
create
Definition: EMMG_StaticMagneticTensorOperator.h:39
SP_OBJECT(EMMG_StaticMagneticTensorOperator)
#define null
Definition: types.h:144
#define tDimension
Definition: EMM_Types.h:10
This class describes the static magnetostriction operator EMM_StaticMagneticTensorOperator of the lan...
Definition: EMMG_StaticMagneticTensorOperator.h:15
virtual void computeMagneticExcitationField(const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, tReal *H) const
compute the normalized excitation magnetic field at M for stress tensors
Definition: EMM_StaticMagneticTensorOperator.cpp:103
This class describes the static Magnetic Tensor operator of the landau lifschitz system EMM_LandauLif...
Definition: EMM_StaticMagneticTensorOperator.h:41
#define tUIndex
Definition: types.h:126
This class describes a real array.
Definition: EMM_RealArray.h:16
const tDimension & getDimension() const
get the dimension
Definition: EMM_RealField.h:553
virtual ~EMMG_StaticMagneticTensorOperator(void)
destroy
Definition: EMMG_StaticMagneticTensorOperator.h:46
virtual void computeMagneticExcitationField(const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &H) const
compute the normalized excitation magnetic field at M
Definition: EMMG_StaticMagneticTensorOperator.h:69
virtual tBoolean computeMagneticExcitationFieldGradient(const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, const tReal *D, tReal *gradH) const
compute the gradient of the magnetic excitation field at M in the direction D
Definition: EMM_StaticMagneticTensorOperator.cpp:141
virtual tBoolean computeMagneticExcitationFieldGradient(const EMM_RealArray &sigma, const EMM_RealField &M, const EMM_RealField &D, EMM_RealField &gradH) const
compute the gradient of the magnetic excitation field at M in the direction D
Definition: EMMG_StaticMagneticTensorOperator.h:102
this class describes the exceptions raised for E-MicromM package
Definition: EMM_Exception.h:14
virtual tReal computeEnergyWithMagneticExcitation(const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &M, const EMM_RealField &H) const
compute the energy of the operator
Definition: EMMG_StaticMagneticTensorOperator.h:150
This class describes a real field.
Definition: EMM_RealField.h:21
virtual void setSize(const tUIndex &n)=0
set the size
#define tReal
Definition: types.h:118
virtual tReal computeEnergy(const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &W) const
compute the energy of the operator
Definition: EMMG_StaticMagneticTensorOperator.h:185
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141