C++ main module for emicrom Package  1.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | List of all members
EMMG_MagnetostrictionOperator Class Reference

This class describes the magnetostriction operator EMM_MagnetostrictionOperator of the landau lifschitz system EMM_LandauLifschitzSystem basedon an EMMG_RealField. More...

#include <EMMG_MagnetostrictionOperator.h>

Inheritance diagram for EMMG_MagnetostrictionOperator:
Inheritance graph
[legend]
Collaboration diagram for EMMG_MagnetostrictionOperator:
Collaboration graph
[legend]

Public Member Functions

virtual void computeMagneticExcitationField (const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &H) const
 compute the normalized excitation magnetic field at M More...
 
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 More...
 
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 More...
 
virtual tReal computeEnergy (const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &W) const
 compute the energy of the operator More...
 
virtual tBoolean isAffine () const
 return true if the operator is either constant or linear More...
 
virtual tBoolean isGradientComputationable () const
 return true if the gradient of the magnetic excitation is computationable More...
 
virtual tULLInt getMemorySize () const
 return the memory size in byte More...
 
void setIsMagneticAdimension (const tBoolean &v)
 set if the adimensionment of the equation is magnetic More...
 
void setDisplacementMethod (const tString &m)
 set the displacement method "FEM" or "FVM" ("FDM" deprecated) More...
 
void setDisplacementOperator (SP::EMM_DisplacementOperator op)
 set the reverse relation Displacement operator More...
 
void resetDisplacementOperator ()
 reset the reverse relation Displacement operator More...
 
const EMM_DisplacementOperatorgetDisplacementOperator () const
 get the displacement operator More...
 
EMM_DisplacementOperatorgetDisplacementOperator ()
 get the displacement operator More...
 
virtual tUSInt getDataFieldsNumber () const
 get the number of field used in the operator More...
 
virtual tBoolean getDataFieldSpace (const tUSInt &index, tString &dataName, tFlag &supportType, tString &dFieldType, tUIndex &n, tDimension &dim) const
 get the data field at index for saving data in vtk,txt,... files. More...
 
virtual tBoolean getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const float *&values) const
 get the data field at index for saving data in vtk,txt,... files. More...
 
virtual tBoolean getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const double *&values) const
 get the data field at index for saving data in vtk,txt,... files. More...
 
virtual tBoolean getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const long double *&values) const
 get the data field at index for saving data in vtk,txt,... files. More...
 
virtual tBoolean backup (const tString &prefix, const tString &suffix, const tString &ext) const
 backup of the operator data into file(s) used for restoring More...
 
virtual tBoolean restore (const EMM_LandauLifschitzSystem &system, const tString &prefix, const tString &suffix, const tString &ext)
 restore the operator data from file(s) More...
 
virtual tBoolean computeFieldsAtTime (const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0)
 compute the fields of operator at time More...
 
virtual tBoolean updateAtNextTimeStep (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &Mt)
 update the data of operator at next time step More...
 
virtual void adimensionize (const tReal &Le, const tReal &Ms, const tReal &T, const tReal &L)
 adimensionize the operator More...
 
virtual tBoolean discretize (const EMM_LandauLifschitzSystem &system)
 discretize and initialize the operator depending on method More...
 
virtual tBoolean resetToInitialState (const EMM_LandauLifschitzSystem &system)
 reset the operator at initial state t=0 More...
 
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 More...
 
tReal computeMagneticExcitationFieldAndEnergy (const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, EMM_RealField &Ht) const
 compute the energy of the operator More...
 
virtual tString getName () const
 return an human reading name of the operator More...
 
const tBooleanisCubicVolume () const
 return the true if the element is cubic More...
 
const tRealgetElementVolume () const
 return the adimensionized volume of the element More...
 
void getSharedPointer (SP::CORE_Object &p)
 get the shared pointer of this class into p More...
 
void getSharedPointer (SPC::CORE_Object &p) const
 get the shared pointer of this class into p More...
 
tString getClassName () const
 return the class name of the object More...
 
tString getIdentityString () const
 return the identity string of the object of the form className_at_address More...
 
tString getPointerAddress () const
 return the identity string of the object More...
 
template<class T >
tBoolean isInstanceOf () const
 test if the clas T is an instance of this class More...
 
tBoolean isInstanceOf (const tString &name) const
 test if the object is an instance of className More...
 

Static Public Member Functions

static SP::EMMG_MagnetostrictionOperator New ()
 create a cubic anisotropy operator More...
 
static void setIsMemoryChecked (const tBoolean &v)
 set if the memory checking is used More...
 
static void setOut (SP::CORE_Out out)
 set the output stream More...
 
static void resetOut ()
 reset the output stream More...
 
static void setThread (SP::CORE_Thread thread)
 set the thread More...
 
static void resetThread ()
 reset the output stream More...
 
static CORE_Outout ()
 get the output More...
 
static SP::CORE_Out getOut ()
 get the output More...
 
static CORE_ThreadgetThread ()
 get the profilier More...
 
static const tBooleanisMemoryChecked ()
 get if the memory checking is used More...
 
static tString getClassName (const tString &identityString)
 return the class name of the object More...
 
template<class T >
static tString getTypeName ()
 get type name More...
 
static tBoolean is64Architecture ()
 return true if the machine is a 64 bits machine More...
 
static tBoolean is32Architecture ()
 return true if the machine is a 32 bits machine More...
 
static tString pointer2String (const void *obj)
 return the string representation of a pointer More...
 
static void printObjectsInMemory (ostream &f)
 print object in memory More...
 
static void printObjectsInMemory ()
 print object in memory in the standart output More...
 
static tChar getMaxChar ()
 get the max value for tChar type More...
 
static tChar getMinChar ()
 get the min value for tChar type More...
 
static tUChar getMaxUChar ()
 get the max value for tUChar type More...
 
static tUChar getMinUChar ()
 get the min value for tUChar type More...
 
static tSInt getMaxSInt ()
 get the max value for tSInt type More...
 
static tSInt getMinSInt ()
 get the min value for tSInt type More...
 
static tUSInt getMaxUSInt ()
 get the max value for tUSInt type More...
 
static tUSInt getMinUSInt ()
 get the min value for tUSInt type More...
 
static tInt getMaxInt ()
 get the max value for tInt type More...
 
static tInt getMinInt ()
 get the min value for tInt type More...
 
static tUInt getMaxUInt ()
 get the max value for tUInt type More...
 
static tUInt getMinUInt ()
 get the min value for tUInt type More...
 
static tLInt getMaxLInt ()
 get the max value for tLInt type More...
 
static tLInt getMinLInt ()
 get the min value for tLInt type More...
 
static tULInt getMaxULInt ()
 get the max value for tULInt type More...
 
static tULInt getMinULInt ()
 get the min value for tULInt type More...
 
static tLLInt getMaxLLInt ()
 get the max value for tULInt type More...
 
static tLLInt getMinLLInt ()
 get the min value for tLLInt type More...
 
static tULLInt getMaxULLInt ()
 get the max value for tULLInt type More...
 
static tULLInt getMinULLInt ()
 get the min value for tULLInt type More...
 
static tFloat getMaxFloat ()
 get the max value for tFloat type More...
 
static tFloat getMinFloat ()
 get the min value for tFloat type More...
 
template<class T >
static T getEpsilon ()
 get the epsilon value for T type More...
 
template<class T >
static T getInfinity ()
 get the infinity for T type More...
 
static tFloat getFloatEpsilon ()
 get the epsilon value for tFloat type More...
 
static tFloat getFloatInfinity ()
 get the infinity value for tFloat type More...
 
static tDouble getMaxDouble ()
 get the max value for tDouble type More...
 
static tDouble getMinDouble ()
 get the min value for tDouble type More...
 
static tDouble getDoubleInfinity ()
 get the infinity value for tFloat type More...
 
static tDouble getDoubleEpsilon ()
 get the epsilon value for tDouble type More...
 
static tLDouble getMinLDouble ()
 get the min value for tLDouble type More...
 
static tLDouble getMaxLDouble ()
 get the max value for tLDouble type More...
 
static tLDouble getLDoubleEpsilon ()
 get the epsilon value for tLDouble type More...
 
static tDouble getLDoubleInfinity ()
 get the infinity value for tDouble type More...
 
static tIndex getMaxIndex ()
 get the max value for the array/vector indexing type More...
 
static tIndex getMinIndex ()
 get the min value for the array/vector indexing type More...
 
static tUIndex getMaxUIndex ()
 get the max value for difference the array/vector indexing type More...
 
static tUIndex getMinUIndex ()
 get the min value for difference the array/vector indexing type More...
 
static tFlag getMaxFlag ()
 get the max value for the tFlag type More...
 
static tFlag getMinFlag ()
 get the min value for the tFlag type More...
 
static tUInteger getMaxUInteger ()
 get the max value for the unsigned integer type More...
 
static tUInteger getMinUInteger ()
 get the min value for the unsigned integer type More...
 
static tInteger getMaxInteger ()
 get the max value for the integer type More...
 
static tInteger getMinInteger ()
 get the min value for the integer type More...
 
static tReal getMaxReal ()
 get the max value for the real type More...
 
static tReal getMinReal ()
 get the min value for the real type More...
 
static tReal getRealEpsilon ()
 get the eps which is the difference between 1 and the least value greater than 1 that is representable. More...
 
static tReal getRealInfinity ()
 get the infinity value More...
 
template<class T >
static T computeEpsilon ()
 compute epsilon More...
 

Static Public Attributes

static const tReal Mu0 =4*M_PI*1e-07
 
static const tReal Gamma =-1.7e11
 
static const tDimension X =0
 
static const tDimension Y =1
 
static const tDimension Z =2
 
static const tReal NULL_VALUE [] ={0,0,0}
 

Protected Member Functions

 EMMG_MagnetostrictionOperator (void)
 create More...
 
virtual ~EMMG_MagnetostrictionOperator (void)
 destroy More...
 
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 More...
 
tReal computeEnergy (const tReal &t, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M) const
 compute the energy of the magnetostriction operator at current displacement and velocity More...
 
virtual tString toString () const
 turn the operator into string More...
 
virtual void toDoAfterThisSetting ()
 method called after the setting of the shared pointer this method can only be called once. More...
 
void setThis (SP::CORE_Object p)
 set this weak shared pointer called toDoAfterThis setting method More...
 

Private Member Functions

 SP_OBJECT (EMMG_MagnetostrictionOperator)
 

Detailed Description

This class describes the magnetostriction operator EMM_MagnetostrictionOperator of the landau lifschitz system EMM_LandauLifschitzSystem basedon an EMMG_RealField.

Author
Stéphane Despréaux
Version
1.0

Constructor & Destructor Documentation

◆ EMMG_MagnetostrictionOperator()

EMMG_MagnetostrictionOperator::EMMG_MagnetostrictionOperator ( void  )
inlineprotected

create

Referenced by New().

Here is the caller graph for this function:

◆ ~EMMG_MagnetostrictionOperator()

virtual EMMG_MagnetostrictionOperator::~EMMG_MagnetostrictionOperator ( void  )
inlineprotectedvirtual

destroy

Member Function Documentation

◆ adimensionize()

virtual void EMM_MagnetostrictionOperator::adimensionize ( const tReal Le,
const tReal Ms,
const tReal T,
const tReal L 
)
inlinevirtualinherited

adimensionize the operator

Parameters
[in]Le: common adimensionization for elastic tensor
[in]Ms: common magnetization at saturation
[in]T: caracterictic time
[in]L: caracteristic length

adimensionize the associated displacement operator

Reimplemented from EMM_Operator.

References EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::discretize(), EMM_Object::Mu0, EMM_MagnetostrictionOperator::resetToInitialState(), tBoolean, tDimension, tReal, and tUIndex.

Here is the call graph for this function:

◆ backup()

tBoolean EMM_MagnetostrictionOperator::backup ( const tString prefix,
const tString suffix,
const tString ext 
) const
virtualinherited

backup of the operator data into file(s) used for restoring

Parameters
prefix: common prefix of the saving files
suffix: common suffix of the saving files
ext: common extension of the saving files
Returns
if the displacement operaor backup has succeeded

Reimplemented from EMM_Operator.

References EMM_MagnetostrictionOperator::mDisplacementOperator.

Referenced by EMM_MagnetostrictionOperator::getDataField().

Here is the caller graph for this function:

◆ computeEnergy() [1/2]

virtual tReal EMMG_MagnetostrictionOperator::computeEnergy ( const tReal t,
const EMM_RealArray sigma,
const EMM_RealField M,
EMM_RealField W 
) const
inlinevirtual

compute the energy of the operator

Parameters
ttime in [0,dt[ where dt will be the next time step
sigmaweight of each cell
Mthe magnetization field
Wthe excitation magnetic field of the operator not computed
Returns
the energy

compute E such that:

$ \displaystyle \frac{dE}{dM} \cdot \delta= \displaystyle -2 \sum_i \int_{\omega_i} \sigma_i H(M) \cdot \delta d\omega_i $

Implements EMM_MagneticExcitationOperator.

References EMM_MagnetostrictionOperator::computeEnergy(), EMM_RealField::getDimension(), EMM_RealField::getSize(), null, tDimension, and tUIndex.

Here is the call graph for this function:

◆ computeEnergy() [2/2]

tReal EMM_MagnetostrictionOperator::computeEnergy ( const tReal t,
const tUIndex nCells,
const tDimension dim,
const EMM_RealArray sigma,
const tReal M 
) const
protectedinherited

compute the energy of the magnetostriction operator at current displacement and velocity

Parameters
tthe time in [0,dt[ where dt is the time step
nCells: number of cells
dimdimension of each point of mesh
sigmathe weight of each cell
Mthe magnetization field values
Returns
energy value : $ E(m,u)=\displaystyle \frac{1}{2} \int_\omega \sigma^4(x)[\tilde \lambda^e:(\tilde \lambda^m:m \otimes m)]:(\tilde \lambda^m:m \otimes m) d\omega $ $ \displaystyle -\int_\omega \sigma^2(x) \epsilon(u):(\tilde \lambda^e:(\tilde \lambda^m:m \otimes m)) d\omega $ $ \displaystyle +\frac{1}{2} \int_\omega (\tilde \lambda^e:\epsilon(u)):\epsilon(u) d\omega $ $ \displaystyle +\frac{1}{2} \int_\omega |\frac{\partial u}{\partial t}|^2d\omega $

References EMM_DisplacementOperator::computeEnergy(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_MagnetostrictionOperator::getDisplacementOperator(), EMM_Operator::getElementVolume(), EMM_DisplacementOperator::getLambdaMDoubleDotLambdaEDoubleDotLambdaM(), CORE_Array< T >::getSize(), CORE_Object::getThread(), EMM_MagnetostrictionOperator::mMagneticExcitationAdimensionizedParameter, CORE_Thread::startChrono(), tBoolean, tReal, and tString.

Referenced by computeEnergy(), computeEnergyWithMagneticExcitation(), and EMM_MagnetostrictionOperator::computeMagneticExcitationFieldGradient().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeEnergyWithMagneticExcitation()

virtual tReal EMMG_MagnetostrictionOperator::computeEnergyWithMagneticExcitation ( const tReal t,
const EMM_RealArray sigma,
const EMM_RealField M,
const EMM_RealField H 
) const
inlinevirtual

compute the energy of the operator

Parameters
tthe time of computation
sigmaweight of each cell
Mthe magnetization field
Hthe excitation magnetic field of the operator already computed
Returns
the energy

compute E such that:

$ \displaystyle \frac{dE}{dM} \cdot \delta= \displaystyle -2 \sum_i \int_{\omega_i} \sigma_i H(M) \cdot \delta d\omega_i $

The normalized energy is $ \displaystyle e_a(m)= - \displaystyle \sum_i \int_{\omega_i} \left [\tilde K_1 \sum_{s,t \in \{0,1,2\}, s>t} (\sigma_i m,U_s)^2(\sigma_i m,U_t)^2 + \tilde K_2 \displaystyle \prod_{s \in \{0,1,2\}} ( \sigma_i m,U_s)^2 \right ] dx$

with $ \tilde K_d= \frac{K_{\phi_d}}{\mu_0 M_s^2} $

Implements EMM_MagneticExcitationOperator.

References EMM_MagnetostrictionOperator::computeEnergy(), EMM_RealField::getDimension(), EMM_RealField::getSize(), null, tDimension, and tUIndex.

Here is the call graph for this function:

◆ computeEpsilon()

template<class T >
static T CORE_Object::computeEpsilon ( )
inlinestaticinherited

compute epsilon

Returns
the epsilon value eps=10^{-p/3} where p is defined by getEpsilon()=10^{-p}

◆ computeFieldsAtTime()

tBoolean EMM_MagnetostrictionOperator::computeFieldsAtTime ( const tReal t,
const tFlag order,
const EMM_RealArray sigma,
const EMM_RealField dM_dt0,
const EMM_RealField M0 
)
virtualinherited

compute the fields of operator at time

Parameters
tthe time
order: order of integration of the fields 1 or 2
sigmathe magnetized weight of each cell
dM_dt0the variation of M at time 0
M0the M at time 0

Implements EMM_Operator.

References EMM_MagnetostrictionOperator::mDisplacementOperator.

Referenced by EMM_MagnetostrictionOperator::getDataField().

Here is the caller graph for this function:

◆ computeMagneticExcitationField() [1/2]

virtual void EMMG_MagnetostrictionOperator::computeMagneticExcitationField ( const EMM_RealArray sigma,
const EMM_RealField M,
EMM_RealField H 
) const
inlinevirtual

compute the normalized excitation magnetic field at M

Parameters
sigmathe weight of the normalized magnetization for each cell
Mnormalized magnetization field
Hreturn excitation magnetic field

Implements EMM_MagneticExcitationOperator.

References EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_RealField::getDimension(), EMM_RealField::getSize(), null, EMM_RealField::setSize(), tDimension, and tUIndex.

Here is the call graph for this function:

◆ computeMagneticExcitationField() [2/2]

void EMM_MagnetostrictionOperator::computeMagneticExcitationField ( const tUIndex nCells,
const tDimension dim,
const EMM_RealArray sigma,
const tReal M,
tReal H 
) const
protectedvirtualinherited

compute the normalized excitation magnetic field at M

Parameters
nCells: number of cells
dimdimension of each point of mesh
sigmathe weight of the normalized magnetization for each cell
Mnormalized magnetization field
Hreturn excitation magnetic field

It computes when u is the current displacement

$ \displaystyle h_m(m)=\left [ \tilde \lambda^m : \left \{ \tilde \lambda^e:\epsilon(u) - \sigma(x)^2 \tilde \lambda^e:\left ( \tilde \lambda^m: m \otimes m \right ) \right \} \right ]. \sigma(x) m $.

$ h_m(m)_p = \displaystyle \sum_{pqkl} \tilde \lambda^m_{pqkl} \left ( \sum_{rs} \tilde \lambda^e_{klrs} \left ( \epsilon_{rs} - \sum_{tv} \tilde \lambda^m_{rstv}.\sigma_i^2 m_t.m_v \right ) \right ) \sigma_i m_q $.

  • m is the normalized magnetism at cell i,
  • $ m_t $ is the t-coordinate of m at cell i
  • $ \displaystyle \epsilon_{rs}= \displaystyle \frac{1}{|\omega_i|} \int_{\omega_i} \frac{1}{2} . \left ( \frac{\partial u_r}{\partial x_s}+ \frac{\partial u_s}{\partial x_r} \right )d\omega_i $ when $ u_r $ is the r-coordinate of u within the cell i

The algorithm to compute H is as follow:

  • $ u $ is the displacement
  • $ m^l $ is the magnetism field for gradient computing
  • $ m^m $ is the magnetism field for gradient computing
  • $ m $ is the magnetism field
  • $ \forall iCell \in [0,nCells[ $
    • $ \tilde \lambda^m=getLambda^m(iCell)$ of size 3x3x3x3
    • $ \tilde \lambda^e=getLambda^e(iCell)$ of size 3x3x3x3
    • $ M_i=m[iCell][0]$
    • $ Ml_i=M^l[iCell][0]$ of size 3
    • $ Mm_i=M^m[iCell][0]$ of size 3
    • $ H[iCell][]={0,0,0} $ of size 3
    • $ \epsilon$[][]=MM_DisplacementOperator::computeElasticTensor(iCell) of size 3x3
    • $ \forall p \in [0,3[ $
      • $ \forall q \in [0,3[ $
        • $ Hg_{pq}=0 $
        • $ \forall m,l \in [0,3[^2 $
          • $ \tilde \lambda^m=\tilde \lambda^m[p][q][m][l] $
          • c=0
          • $ \forall r,s \in [0,3[^2 $
            • $ \tilde \lambda^e=\tilde \lambda^e[m][l][r][s] $
            • $ c_1=0 $
            • $ \forall t,v \in [0,3[^2 $
              • $ c_1+=\tilde \lambda^m[r][s][t][v]*Ml_i[t]*Mm_i[v] $
            • $ c_1+=\epsilon[r][s] $
            • $ c+=\tilde \lambda^e . c_1 $
          • $ Hg_{pq}+= \tilde \lambda^m*c $
        • $ H[iCell][p]+=Hg_{pq}*M_i[q] $

References CORE_Array< T >::getSize(), CORE_Object::getThread(), EMM_MagnetostrictionOperator::mDisplacementOperator, EMM_MagnetostrictionOperator::mMagneticExcitationAdimensionizedParameter, CORE_Thread::startChrono(), CORE_Thread::stopChrono(), tBoolean, and tReal.

Referenced by EMM_MagnetostrictionOperator::adimensionize(), and computeMagneticExcitationField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeMagneticExcitationFieldAndEnergy()

tReal EMM_MagneticExcitationOperator::computeMagneticExcitationFieldAndEnergy ( const tReal t,
const EMM_RealArray sigma,
const EMM_RealField Mt,
EMM_RealField Ht 
) const
inlineinherited

compute the energy of the operator

Parameters
ttime in [0,dt[ where dt will be the next time step
sigmaweight of each cell
Mtthe magnetization field
Htthe return magnetic excitation field
Returns
the energy
  • compute Ht=H(Mt)
  • compute energy of the operator

References EMM_MagneticExcitationOperator::computeEnergy(), EMM_MagneticExcitationOperator::computeEnergyWithMagneticExcitation(), EMM_MagneticExcitationOperator::computeMagneticExcitationField(), and tReal.

Referenced by EMM_MagneticExcitationLinearOperator::computeEnergy(), and EMMG_AnisotropyOperator::computeEnergy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeMagneticExcitationFieldGradient() [1/2]

virtual tBoolean EMMG_MagnetostrictionOperator::computeMagneticExcitationFieldGradient ( const EMM_RealArray sigma,
const EMM_RealField M,
const EMM_RealField D,
EMM_RealField gradH 
) const
inlinevirtual

compute the gradient of the magnetic excitation field at M in the direction D

Parameters
sigmathe weight of each cell
Mthe magnetization field
Dthe gradient direction
gradH: the return gradient of the magnetic excitation field at M in the direction D
Returns
true if the gradient is not null

Implements EMM_MagneticExcitationOperator.

◆ computeMagneticExcitationFieldGradient() [2/2]

virtual tBoolean EMM_MagnetostrictionOperator::computeMagneticExcitationFieldGradient ( const tUIndex nCells,
const tDimension dim,
const EMM_RealArray sigma,
const tReal M,
const tReal D,
tReal gradH 
) const
inlinevirtualinherited

compute the gradient of the magnetic excitation field at M in the direction D

Parameters
nCells: number of cells
dimdimension of each point of mesh
sigmathe weight of each cell
Mthe magnetization field values
Dthe gradient direction values
gradH: the return gradient of the magnetic excitation field at M in the direction D values
Returns
true if the gradient is not null

References EMM_MagnetostrictionOperator::computeEnergy(), tDimension, EMM_MagnetostrictionOperator::toString(), tReal, tString, and tUIndex.

Here is the call graph for this function:

◆ discretize()

tBoolean EMM_MagnetostrictionOperator::discretize ( const EMM_LandauLifschitzSystem system)
virtualinherited

discretize and initialize the operator depending on method

Parameters
systemlandau lifschitz system used to discretize the operator
Returns
true if the discretization succeeds

Reimplemented from EMM_Operator.

References EMM_Operator::discretize(), EMM_MagnetostrictionOperator::mDisplacementOperator, null, CORE_Object::out(), CORE_Out::println(), and tReal.

Referenced by EMM_MagnetostrictionOperator::adimensionize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getClassName() [1/2]

tString CORE_Object::getClassName ( ) const
inherited

return the class name of the object

Returns
the class name of the object

References tString.

Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().

Here is the caller graph for this function:

◆ getClassName() [2/2]

static tString CORE_Object::getClassName ( const tString identityString)
inlinestaticinherited

return the class name of the object

Parameters
identityStringthe identity string of the object
Returns
the class name

◆ getDataField() [1/3]

virtual tBoolean EMM_MagnetostrictionOperator::getDataField ( const tUSInt index,
tString dataName,
tUIndex n,
tDimension dim,
const float *&  values 
) const
inlinevirtualinherited

get the data field at index for saving data in vtk,txt,... files.

Parameters
indexindex of the field in [0,getDataFieldsNumber()[
dataNamename of the field
nnumber of element of the field
dimdimension of the field in [1,3[
valuesvalues of the field
Returns
true if the field at index exists

Reimplemented from EMM_Operator.

◆ getDataField() [2/3]

virtual tBoolean EMM_MagnetostrictionOperator::getDataField ( const tUSInt index,
tString dataName,
tUIndex n,
tDimension dim,
const double *&  values 
) const
inlinevirtualinherited

get the data field at index for saving data in vtk,txt,... files.

Parameters
indexindex of the field in [0,getDataFieldsNumber()[
dataNamename of the field
nnumber of element of the field
dimdimension of the field in [1,3[
valuesvalues of the field
Returns
true if the field at index exists

Reimplemented from EMM_Operator.

◆ getDataField() [3/3]

virtual tBoolean EMM_MagnetostrictionOperator::getDataField ( const tUSInt index,
tString dataName,
tUIndex n,
tDimension dim,
const long double *&  values 
) const
inlinevirtualinherited

get the data field at index for saving data in vtk,txt,... files.

Parameters
indexindex of the field in [0,getDataFieldsNumber()[
dataNamename of the field
nnumber of element of the field
dimdimension of the field in [1,3[
valuesvalues of the field
Returns
true if the field at index exists

Reimplemented from EMM_Operator.

References EMM_MagnetostrictionOperator::backup(), EMM_MagnetostrictionOperator::computeFieldsAtTime(), EMM_MagnetostrictionOperator::restore(), tBoolean, tFlag, tReal, tString, and EMM_MagnetostrictionOperator::updateAtNextTimeStep().

Here is the call graph for this function:

◆ getDataFieldsNumber()

virtual tUSInt EMM_MagnetostrictionOperator::getDataFieldsNumber ( ) const
inlinevirtualinherited

get the number of field used in the operator

Returns
the number of data

Reimplemented from EMM_Operator.

◆ getDataFieldSpace()

virtual tBoolean EMM_MagnetostrictionOperator::getDataFieldSpace ( const tUSInt index,
tString dataName,
tFlag supportType,
tString dFieldType,
tUIndex n,
tDimension dim 
) const
inlinevirtualinherited

get the data field at index for saving data in vtk,txt,... files.

Parameters
indexindex of the field in [0,getDataFieldsNumber()[
dataNamename of the field
supportType: mesh element whre the field is applied EMM_Grid3D::ELEMENT; || EMM_Grid3D::POINT
dFieldType: type of the field double,float,int,....
nnumber of element of the field
dimdimension of the field in [1,3[
Returns
true if the field at index exists

Reimplemented from EMM_Operator.

◆ getDisplacementOperator() [1/2]

const EMM_DisplacementOperator& EMM_MagnetostrictionOperator::getDisplacementOperator ( ) const
inlineinherited

get the displacement operator

Returns
the displacement operator

Referenced by EMM_MagnetostrictionOperator::computeEnergy().

Here is the caller graph for this function:

◆ getDisplacementOperator() [2/2]

EMM_DisplacementOperator& EMM_MagnetostrictionOperator::getDisplacementOperator ( )
inlineinherited

get the displacement operator

Returns
the displacement operator

◆ getDoubleEpsilon()

static tDouble CORE_Object::getDoubleEpsilon ( )
inlinestaticinherited

get the epsilon value for tDouble type

Returns
the epsilon value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getDoubleInfinity()

static tDouble CORE_Object::getDoubleInfinity ( )
inlinestaticinherited

get the infinity value for tFloat type

Returns
the intinity value for tFloat type

◆ getElementVolume()

const tReal& EMM_Operator::getElementVolume ( ) const
inlineinherited

◆ getEpsilon()

template<class T >
static T CORE_Object::getEpsilon ( )
inlinestaticinherited

get the epsilon value for T type

Returns
the epsilon value for T type

◆ getFloatEpsilon()

static tFloat CORE_Object::getFloatEpsilon ( )
inlinestaticinherited

get the epsilon value for tFloat type

Returns
the epsilon value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getFloatInfinity()

static tFloat CORE_Object::getFloatInfinity ( )
inlinestaticinherited

get the infinity value for tFloat type

Returns
the intinity value for tFloat type

◆ getIdentityString()

tString CORE_Object::getIdentityString ( ) const
inlineinherited

◆ getInfinity()

template<class T >
static T CORE_Object::getInfinity ( )
inlinestaticinherited

get the infinity for T type

Returns
the infinity value for T type

◆ getLDoubleEpsilon()

static tLDouble CORE_Object::getLDoubleEpsilon ( )
inlinestaticinherited

get the epsilon value for tLDouble type

Returns
the epsilon value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getLDoubleInfinity()

static tDouble CORE_Object::getLDoubleInfinity ( )
inlinestaticinherited

get the infinity value for tDouble type

Returns
the infinity value for tDouble type

◆ getMaxChar()

static tChar CORE_Object::getMaxChar ( )
inlinestaticinherited

get the max value for tChar type

Returns
the max value for tChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxDouble()

static tDouble CORE_Object::getMaxDouble ( )
inlinestaticinherited

get the max value for tDouble type

Returns
the max value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxFlag()

static tFlag CORE_Object::getMaxFlag ( )
inlinestaticinherited

get the max value for the tFlag type

Returns
the max value for the tFlag type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxFloat()

static tFloat CORE_Object::getMaxFloat ( )
inlinestaticinherited

get the max value for tFloat type

Returns
the max value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxIndex()

static tIndex CORE_Object::getMaxIndex ( )
inlinestaticinherited

get the max value for the array/vector indexing type

Returns
the max value for the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxInt()

static tInt CORE_Object::getMaxInt ( )
inlinestaticinherited

get the max value for tInt type

Returns
the max value for tInt type

Referenced by MATSGN_FFT::fastFourierTransform3D_FFTW(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxInteger()

static tInteger CORE_Object::getMaxInteger ( )
inlinestaticinherited

get the max value for the integer type

Returns
the max value for the integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLDouble()

static tLDouble CORE_Object::getMaxLDouble ( )
inlinestaticinherited

get the max value for tLDouble type

Returns
the max value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLInt()

static tLInt CORE_Object::getMaxLInt ( )
inlinestaticinherited

get the max value for tLInt type

Returns
the max value for tLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLLInt()

static tLLInt CORE_Object::getMaxLLInt ( )
inlinestaticinherited

get the max value for tULInt type

Returns
the max value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxReal()

static tReal CORE_Object::getMaxReal ( )
inlinestaticinherited

get the max value for the real type

Returns
he max value for the real type

Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxSInt()

static tSInt CORE_Object::getMaxSInt ( )
inlinestaticinherited

get the max value for tSInt type

Returns
the max value for tSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUChar()

static tUChar CORE_Object::getMaxUChar ( )
inlinestaticinherited

get the max value for tUChar type

Returns
the max value for tUChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUIndex()

static tUIndex CORE_Object::getMaxUIndex ( )
inlinestaticinherited

get the max value for difference the array/vector indexing type

Returns
the max value for difference the array/vector indexing type

Referenced by CORE_Vector< T >::addAfterIndices(), CORE_Vector< T >::search(), CORE_Test::testType(), CORE_Integer::toHexString(), and CORE_Integer::toString().

Here is the caller graph for this function:

◆ getMaxUInt()

static tUInt CORE_Object::getMaxUInt ( )
inlinestaticinherited

get the max value for tUInt type

Returns
the max value for tUInt type

Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUInteger()

static tUInteger CORE_Object::getMaxUInteger ( )
inlinestaticinherited

get the max value for the unsigned integer type

Returns
the max value for the unsigned integer type

Referenced by MATH_Pn::computeExtrenums(), EMM_MultiScaleGrid::computeLevelsNumber(), EMM_Input::restoreBackup(), MATH_P0::solve(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxULInt()

static tULInt CORE_Object::getMaxULInt ( )
inlinestaticinherited

get the max value for tULInt type

Returns
the max value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxULLInt()

static tULLInt CORE_Object::getMaxULLInt ( )
inlinestaticinherited

get the max value for tULLInt type

Returns
the max value for tULLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUSInt()

static tUSInt CORE_Object::getMaxUSInt ( )
inlinestaticinherited

get the max value for tUSInt type

Returns
the max value for tUSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMemorySize()

virtual tULLInt EMM_MagnetostrictionOperator::getMemorySize ( ) const
inlinevirtualinherited

return the memory size in byte

Returns
the memory size of the storage in bytes 1 Kb = 1024 bytes 1 Mb = 1024 Kb 1 Gb = 1024 Mb 1 Tb = 1024 Gb 1 Hb = 1024 Tb

Reimplemented from EMM_Operator.

References EMM_Operator::getMemorySize().

Here is the call graph for this function:

◆ getMinChar()

static tChar CORE_Object::getMinChar ( )
inlinestaticinherited

get the min value for tChar type

Returns
the min value for tChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinDouble()

static tDouble CORE_Object::getMinDouble ( )
inlinestaticinherited

get the min value for tDouble type

Returns
the min value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinFlag()

static tFlag CORE_Object::getMinFlag ( )
inlinestaticinherited

get the min value for the tFlag type

Returns
the min value for the tFlag type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinFloat()

static tFloat CORE_Object::getMinFloat ( )
inlinestaticinherited

get the min value for tFloat type

Returns
the min value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinIndex()

static tIndex CORE_Object::getMinIndex ( )
inlinestaticinherited

get the min value for the array/vector indexing type

Returns
the min value for the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinInt()

static tInt CORE_Object::getMinInt ( )
inlinestaticinherited

get the min value for tInt type

Returns
the min value for tInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinInteger()

static tInteger CORE_Object::getMinInteger ( )
inlinestaticinherited

get the min value for the integer type

Returns
the minin value for the integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLDouble()

static tLDouble CORE_Object::getMinLDouble ( )
inlinestaticinherited

get the min value for tLDouble type

Returns
the min value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLInt()

static tLInt CORE_Object::getMinLInt ( )
inlinestaticinherited

get the min value for tLInt type

Returns
the min value for tLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLLInt()

static tLLInt CORE_Object::getMinLLInt ( )
inlinestaticinherited

get the min value for tLLInt type

Returns
the min value for tLLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinReal()

static tReal CORE_Object::getMinReal ( )
inlinestaticinherited

get the min value for the real type

Returns
the min value for the real type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinSInt()

static tSInt CORE_Object::getMinSInt ( )
inlinestaticinherited

get the min value for tSInt type

Returns
the min value for tSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUChar()

static tUChar CORE_Object::getMinUChar ( )
inlinestaticinherited

get the min value for tUChar type

Returns
the min value for tUChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUIndex()

static tUIndex CORE_Object::getMinUIndex ( )
inlinestaticinherited

get the min value for difference the array/vector indexing type

Returns
the min value for difference the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUInt()

static tUInt CORE_Object::getMinUInt ( )
inlinestaticinherited

get the min value for tUInt type

Returns
the min value for tUInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUInteger()

static tUInteger CORE_Object::getMinUInteger ( )
inlinestaticinherited

get the min value for the unsigned integer type

Returns
the min value for the unsigned integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinULInt()

static tULInt CORE_Object::getMinULInt ( )
inlinestaticinherited

get the min value for tULInt type

Returns
the min value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinULLInt()

static tULLInt CORE_Object::getMinULLInt ( )
inlinestaticinherited

get the min value for tULLInt type

Returns
the min value for tULLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUSInt()

static tUSInt CORE_Object::getMinUSInt ( )
inlinestaticinherited

get the min value for tUSInt type

Returns
the min value for tUSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getName()

virtual tString EMM_Operator::getName ( ) const
inlinevirtualinherited

return an human reading name of the operator

Returns
the name of the operator

References CORE_Object::getClassName(), EMM_Operator::isAffine(), EMM_Operator::isGradientComputationable(), tBoolean, tString, and tUIndex.

Here is the call graph for this function:

◆ getOut()

static SP::CORE_Out CORE_Object::getOut ( )
inlinestaticinherited

get the output

Returns
the shared pointer to the output stream

References CORE_Object::OUT.

◆ getPointerAddress()

tString CORE_Object::getPointerAddress ( ) const
inlineinherited

return the identity string of the object

Returns
the identity string of the object

References CORE_Object::pointer2String().

Here is the call graph for this function:

◆ getRealEpsilon()

static tReal CORE_Object::getRealEpsilon ( )
inlinestaticinherited

get the eps which is the difference between 1 and the least value greater than 1 that is representable.

Returns
the eps which is the difference between 1 and the least value greater than 1 that is representable.

Referenced by MATH_P4::solveP4De(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getRealInfinity()

static tReal CORE_Object::getRealInfinity ( )
inlinestaticinherited

◆ getSharedPointer() [1/2]

void CORE_Object::getSharedPointer ( SP::CORE_Object &  p)
inlineinherited

◆ getSharedPointer() [2/2]

void CORE_Object::getSharedPointer ( SPC::CORE_Object &  p) const
inlineinherited

get the shared pointer of this class into p

Parameters
p: shared pointer of the class This

◆ getThread()

static CORE_Thread& CORE_Object::getThread ( )
inlinestaticinherited

get the profilier

Returns
the profiler

Referenced by MATH_MaskVector::add(), MATH_Vector::add(), EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFEMOperator::computeElasticTensor(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_FullExchangeOperator::computeMagneticExcitationField(), EMM_StaticMagnetostrictionOperator::computeMagneticExcitationField(), EMM_LinearAnisotropyOperator::computeMagneticExcitationField(), EMM_StaticMagneticTensorOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_MinimalExchangeOperator::computeMagneticExcitationField(), EMM_AnisotropyOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().

Here is the caller graph for this function:

◆ getTypeName()

template<class T >
static tString CORE_Object::getTypeName ( )
inlinestaticinherited

get type name

Returns
the type name of the class

References tString.

◆ is32Architecture()

static tBoolean CORE_Object::is32Architecture ( )
inlinestaticinherited

return true if the machine is a 32 bits machine

Returns
true is the computing is done in a 32 bits machine

References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.

Referenced by CORE_Test::testType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is64Architecture()

static tBoolean CORE_Object::is64Architecture ( )
inlinestaticinherited

return true if the machine is a 64 bits machine

Returns
true is the computing is done in a 64 bits machine

Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ isAffine()

virtual tBoolean EMM_MagnetostrictionOperator::isAffine ( ) const
inlinevirtualinherited

return true if the operator is either constant or linear

Returns
true if the operator is either constant or linear

Implements EMM_Operator.

◆ isCubicVolume()

const tBoolean& EMM_Operator::isCubicVolume ( ) const
inlineinherited

return the true if the element is cubic

Returns
true is all size of the volum is same

References EMM_Operator::mIsCubic.

Referenced by EMM_FullExchangeOperator::discretize(), and EMM_MinimalExchangeOperator::discretize().

Here is the caller graph for this function:

◆ isGradientComputationable()

virtual tBoolean EMM_MagnetostrictionOperator::isGradientComputationable ( ) const
inlinevirtualinherited

return true if the gradient of the magnetic excitation is computationable

Returns
true if the the gradient of the magnetic excitation is computationable

Implements EMM_Operator.

◆ isInstanceOf() [1/2]

template<class T >
tBoolean CORE_Object::isInstanceOf ( ) const
inlineinherited

test if the clas T is an instance of this class

Returns
true if the object is an instance of T

References null.

Referenced by MATH_ToeplitzTest::toeplitzTest().

Here is the caller graph for this function:

◆ isInstanceOf() [2/2]

tBoolean CORE_Object::isInstanceOf ( const tString name) const
inlineinherited

test if the object is an instance of className

Parameters
namename of the class
Returns
true if the object is an instance of class Name

References CORE_Object::getIdentityString().

Here is the call graph for this function:

◆ isMemoryChecked()

static const tBoolean& CORE_Object::isMemoryChecked ( )
inlinestaticinherited

get if the memory checking is used

Returns
true: if the memory checking is used.

References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New()

static SP::EMMG_MagnetostrictionOperator EMMG_MagnetostrictionOperator::New ( )
inlinestatic

create a cubic anisotropy operator

Returns
a shared cubic to a planar anisotropy operator

References EMMG_MagnetostrictionOperator().

Referenced by EMMG_ClassFactory::NewInstance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ out()

static CORE_Out& CORE_Object::out ( )
inlinestaticinherited

get the output

Returns
the output stream

Referenced by EMM_Matter::adimensionize(), EMM_DisplacementFVMOperator::backup(), EMM_DisplacementOperator::backup(), MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralVectorProjector(), EMM_Test::caseTest(), EMM_Test::caseTests(), EMM_MatterField::computeAnisotropyDirectionsField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), MATH_MultiLevelsToeplitzMatrix::copy(), CORE_Exception::CORE_Exception(), EMM_MatterField::createAnisotropyOperator(), CORE_Run::createIO(), EMM_ElementaryTest::defaultBackupTest(), EMM_ElementaryTest::defaultTest(), MATH_MultiLevelsFFTToeplitzMatrix::diagonalize(), EMM_DisplacementFVMOperator::discretize(), EMM_MagnetostrictionOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_TensorsTest::doubleDotCrossDoubleDotScalarTests(), EMM_4Tensors::doubleDotCrossProduct(), EMM_TensorsTest::doubleDotCrossProductTests(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_TensorsTest::doubleDotCrossSquaredScalarTests(), EMM_4Tensors::doubleDotProduct(), EMM_TensorsTest::doubleDotProductTests(), EMM_DisplacementWaveTest::elasticWaveTest(), EMM_Test::elementaryTests(), FFTW_Test::fftwTutorial(), MATH_IntegrationTest::gaussLegendreTest(), EMM_MagnetostrictionTest::HComputingTest(), EMM_DemagnetizedPeriodicalTest::HTest(), EMMH_HysteresisTest::hysteresisDefaultCycleTest(), EMM_TensorsTest::initializationTests(), EMM_MultiScaleGrid::initialize(), EMM_MultiScaleSDGrid::initialize(), EMM_MatterField::loadFromANIFile(), EMM_AnisotropyDirectionsField::loadFromFile(), EMM_Matter::loadFromFile(), EMM_Grid3D::loadFromGEOFile(), EMM_MatterField::loadFromLOCFile(), EMM_Array< tCellFlag >::loadFromStream(), EMM_Matter::loadFromStream(), EMM_Matter::loadMattersFromFile(), EMM_Run::loadSystemFromOptions(), EMM_ElementaryTest::magnetostrictionBackupTest(), CORE_Run::make(), EMMH_Run::makeHysteresis(), EMM_Run::makeRun(), CORE_Run::makeType(), EMM_ElementaryTest::optionsTest(), MATH_PolynomialTest::P4Tests(), EMM_Test::primaryTests(), EMM_LandauLifschitzSystem::printLog(), CORE_Run::printOptions(), EMM_2PackedSymmetricTensors::product(), EMMG_SLDemagnetizedOperator::projectionOnSpectralSpace(), CORE_Run::readOptionsFromCommandLine(), CORE_Test::readVectorTest(), EMM_DemagnetizedPeriodicalTest::relaxationTest(), EMM_DisplacementFVMOperator::restore(), EMM_DisplacementOperator::restore(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), EMM_AnisotropyDirectionsField::saveToFile(), EMM_MatterField::saveToFile(), EMM_Grid3D::saveToGEOFile(), CORE_IOTest::searchTest(), EMMH_Hysteresis::setInitialMagnetizationField(), MATH_MultiLevelsToeplitzMatrix::setLevels(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_TensorsTest::squaredDoubleDotCrossScalarTests(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_TensorsTest::squaredDoubleDotScalarTests(), EMM_TensorsTest::squaredDoubleDotTests(), EMM_MatterTest::testAdimensionize(), EMM_MatterTest::testANIFile(), CORE_Test::testComplex(), CORE_Test::testDateWeek(), FFTW_Test::testDFT(), EMM_MatterTest::testIO(), EMM_ODETest::testODE(), CORE_Test::testOut(), CORE_Test::testReal(), EMM_FieldTest::testRealArray(), EMM_Grid3DTest::testSegment(), EMM_Grid3DTest::testThinSheet(), CORE_Test::testTime(), CORE_Test::testType(), MATH_FullMatrix::toString(), EMM_DemagnetizedPeriodicalTest::xyPeriodicalCubeSDGTest(), and EMM_DemagnetizedPeriodicalTest::xyPeriodicalSheetSDGTest().

Here is the caller graph for this function:

◆ pointer2String()

tString CORE_Object::pointer2String ( const void *  obj)
staticinherited

return the string representation of a pointer

Parameters
obj: oject to get the string pointer
Returns
the string pointer of the object

References tString.

Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().

Here is the caller graph for this function:

◆ printObjectsInMemory() [1/2]

void CORE_Object::printObjectsInMemory ( ostream &  f)
staticinherited

print object in memory

Parameters
f: output to print the objects in memory

References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.

Here is the call graph for this function:

◆ printObjectsInMemory() [2/2]

static void CORE_Object::printObjectsInMemory ( )
inlinestaticinherited

print object in memory in the standart output

Referenced by CORE_Object::is32Architecture(), and main().

Here is the caller graph for this function:

◆ resetDisplacementOperator()

void EMM_MagnetostrictionOperator::resetDisplacementOperator ( )
inherited

reset the reverse relation Displacement operator

References EMM_MagnetostrictionOperator::mDisplacementOperator, and null.

Referenced by EMM_MagnetostrictionOperator::setDisplacementOperator(), and EMM_MagnetostrictionOperator::setIsMagneticAdimension().

Here is the caller graph for this function:

◆ resetOut()

static void CORE_Object::resetOut ( )
inlinestaticinherited

reset the output stream

Referenced by run().

Here is the caller graph for this function:

◆ resetThread()

static void CORE_Object::resetThread ( )
inlinestaticinherited

reset the output stream

Referenced by run().

Here is the caller graph for this function:

◆ resetToInitialState()

tBoolean EMM_MagnetostrictionOperator::resetToInitialState ( const EMM_LandauLifschitzSystem system)
virtualinherited

reset the operator at initial state t=0

Parameters
systemthe data to initialize the operator
Returns
true if it succeeds

Implements EMM_Operator.

References EMM_MagnetostrictionOperator::mDisplacementOperator.

Referenced by EMM_MagnetostrictionOperator::adimensionize().

Here is the caller graph for this function:

◆ restore()

tBoolean EMM_MagnetostrictionOperator::restore ( const EMM_LandauLifschitzSystem system,
const tString prefix,
const tString suffix,
const tString ext 
)
virtualinherited

restore the operator data from file(s)

Parameters
system: general data to restore the operator
prefix: common prefix of the saving files
suffix: common suffix of the saving files
ext: common extension of the saving files
Returns
if the displacement operaor backup has succeeded

Reimplemented from EMM_Operator.

References EMM_MagnetostrictionOperator::mDisplacementOperator.

Referenced by EMM_MagnetostrictionOperator::getDataField().

Here is the caller graph for this function:

◆ setDisplacementMethod()

void EMM_MagnetostrictionOperator::setDisplacementMethod ( const tString m)
inherited

set the displacement method "FEM" or "FVM" ("FDM" deprecated)

Parameters
mthe displacement method either "FEM" or "FVM"

References CORE_String::New().

Referenced by EMM_MagnetostrictionOperator::setIsMagneticAdimension().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDisplacementOperator()

void EMM_MagnetostrictionOperator::setDisplacementOperator ( SP::EMM_DisplacementOperator  op)
inherited

set the reverse relation Displacement operator

Parameters
opthe displacement operator

References EMM_MagnetostrictionOperator::mDisplacementOperator, null, and EMM_MagnetostrictionOperator::resetDisplacementOperator().

Referenced by EMM_MagnetostrictionOperator::setIsMagneticAdimension().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setIsMagneticAdimension()

void EMM_MagnetostrictionOperator::setIsMagneticAdimension ( const tBoolean v)
inlineinherited

set if the adimensionment of the equation is magnetic

Parameters
vis magnetic adimension

References EMM_MagnetostrictionOperator::resetDisplacementOperator(), EMM_MagnetostrictionOperator::setDisplacementMethod(), EMM_MagnetostrictionOperator::setDisplacementOperator(), and tString.

Here is the call graph for this function:

◆ setIsMemoryChecked()

static void CORE_Object::setIsMemoryChecked ( const tBoolean v)
inlinestaticinherited

set if the memory checking is used

Parameters
v: true to check memory

Referenced by main().

Here is the caller graph for this function:

◆ setOut()

static void CORE_Object::setOut ( SP::CORE_Out  out)
inlinestaticinherited

set the output stream

Parameters
out: the shared pointer to the new output stream

References null.

◆ setThis()

void CORE_Object::setThis ( SP::CORE_Object  p)
inlineprotectedinherited

set this weak shared pointer called toDoAfterThis setting method

Parameters
p: shared pointer of the class This

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

◆ setThread()

static void CORE_Object::setThread ( SP::CORE_Thread  thread)
inlinestaticinherited

set the thread

Parameters
threadthe shared pointer to the thread

References null.

Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().

Here is the caller graph for this function:

◆ SP_OBJECT()

EMMG_MagnetostrictionOperator::SP_OBJECT ( EMMG_MagnetostrictionOperator  )
private

◆ toDoAfterThisSetting()

virtual void EMM_Object::toDoAfterThisSetting ( )
inlineprotectedvirtualinherited

method called after the setting of the shared pointer this method can only be called once.

Reimplemented from CORE_Object.

Reimplemented in EMM_DisplacementOperator, EMM_DisplacementFVMOperator, EMM_GaussLegendreRelaxation, and EMM_GradGaussLegendreRelaxation.

Referenced by EMM_GaussLegendreRelaxation::toDoAfterThisSetting(), and EMM_DisplacementOperator::toDoAfterThisSetting().

Here is the caller graph for this function:

◆ toString()

tString EMM_MagnetostrictionOperator::toString ( ) const
protectedvirtualinherited

turn the operator into string

Reimplemented from CORE_Object.

References CORE_Object::toString().

Referenced by EMM_MagnetostrictionOperator::computeMagneticExcitationFieldGradient().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateAtNextTimeStep()

tBoolean EMM_MagnetostrictionOperator::updateAtNextTimeStep ( const tReal dt,
const EMM_RealArray sigma,
const EMM_RealField Mt 
)
virtualinherited

update the data of operator at next time step

Parameters
dtthe time step (if dt==0) upadte the field at initialization of the relaxation
sigmathe magnetized weight of each cell
Mtthe magnetization field at each point at next time step
Returns
true if the updating of the operator has succeeded

Implements EMM_Operator.

References EMM_MagnetostrictionOperator::mDisplacementOperator.

Referenced by EMM_MagnetostrictionOperator::getDataField().

Here is the caller graph for this function:

Member Data Documentation

◆ Gamma

const tReal EMM_Object::Gamma =-1.7e11
staticinherited

◆ Mu0

const tReal EMM_Object::Mu0 =4*M_PI*1e-07
staticinherited

◆ NULL_VALUE

const tReal EMM_Object::NULL_VALUE ={0,0,0}
staticinherited

◆ X

const tDimension EMM_Object::X =0
staticinherited

◆ Y

const tDimension EMM_Object::Y =1
staticinherited

◆ Z

const tDimension EMM_Object::Z =2
staticinherited

The documentation for this class was generated from the following file: