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

This class describes a resolution of Landau-Lifschitz system of the Core Package for E-MicroM package with an ODE integration. More...

#include <EMM_LandauLifschitzODE.h>

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

Public Member Functions

void setTimeIntegrationOrder (const int &order)
 set the time integration order More...
 
const tUCIntgetTimeIntegrationOrder () const
 get the time integration order More...
 
virtual const tUIntegergetTimeStepsNumber () const
 return the computed time steps More...
 
virtual const tRealgetTime () const
 return the current time More...
 
virtual const tRealgetTimeStep () const
 return the current time step More...
 
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 More...
 
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 More...
 
virtual void integrate (const tBoolean &isRestoring, tSInt &retCode)
 solve the system More...
 
void solveODE (const tBoolean &isRestoring, tSInt &retCode)
 solve the ODE system More...
 
tBoolean setMesh (SP::EMM_Grid3D mesh)
 set the mesh More...
 
const EMM_Grid3DgetMesh () const
 return the mesh associated to the problem for reading More...
 
EMM_Grid3DgetMesh ()
 return the mesh associated to the problem for writing More...
 
const tUIndexgetMagnetizedElementsNumber () const
 get the number of mage,ntozed elements More...
 
const EMM_MatterFieldgetMatterField () const
 return the matter index for each cell for reading More...
 
EMM_MatterFieldgetMatterField ()
 return the matter index for each cell for writing More...
 
const tStringgetPrefix () const
 get the prefix of the generating files More...
 
const tStringgetOutputPath () const
 get the output path in which the files are generated More...
 
virtual void adimensionize ()
 adimensionize the system: It get the max length of the cell and adimensionize the physical parameters of all matters see EMM_Matter::adimensionize() and compute the charactristic time see EMM_Stepper::setCharacteriticTime() More...
 
virtual tBoolean discretize (const tBoolean &isMnormalized)
 discretize the problem More...
 
tBoolean discretize ()
 discretize the problem More...
 
virtual tBoolean addOperator (SP::EMM_MagneticExcitationOperator op)
 add an operator More...
 
void clearOperators ()
 clear all operators More...
 
const SV::EMM_MagneticExcitationOperator & getOperators () const
 return the operators vector More...
 
SV::EMM_MagneticExcitationOperator & getOperators ()
 return the operators vector More...
 
tUIndex getOperatorsNumber () const
 return the number of operators More...
 
const EMM_OperatorgetOperator (const tUIndex &index) const
 get the operator at index for reading More...
 
EMM_OperatorgetOperator (const tUIndex &index)
 get the operator at index for writing More...
 
tBoolean isAffine () const
 return true if the system has only affine operators More...
 
tBoolean resetToInitialState ()
 reset to initial state More...
 
virtual tBoolean resetOperatorsToInitialState ()
 initialize the problem More...
 
void computeFunction (const EMM_RealField &M, const EMM_RealField &H, EMM_RealField &F) const
 compute the landau-lifschitz function More...
 
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 More...
 
void computePartialGradMFunction (const EMM_RealField &M, const EMM_RealField &H, const EMM_RealField &D, EMM_RealField &gradF) const
 compute the partial gradient with respect to M of landau-lifschitz function at the direction D in M More...
 
void setInitialMagnetization (const tString &dataFile)
 set the initialization data for magnetization field More...
 
void setInitialMagnetization (const tReal data[3])
 set the initialization data for magnetization field More...
 
void setInitialMagnetization (const tReal &M0, const tReal &M1, const tReal &M2)
 set the initialization data for magnetization field More...
 
void setInitialMagnetization (const EMM_RealField &data)
 set the initialization data for magnetization field More...
 
void setEvolutionScheme (const tFlag &f)
 set the evolution scheme More...
 
const tFlaggetEvolutionScheme () const
 return the evolution scheme between M & opertaor fields More...
 
tBoolean isMagnetizationStatic () const
 return true if M is permanent More...
 
const EMM_RealFieldgetMagnetizationField () const
 return the adimensionized magnetisation field associated to the problem for reading at time 0 of the current time step More...
 
EMM_RealFieldgetMagnetizationField ()
 return the adimensionized magnetizaton field associated to the problem for writing at time 0 of the current time step More...
 
const EMM_RealFieldgetMagnetizationFieldTimeDerivative () const
 get the magnetization variation field with respect to time at time 0 of the current time step More...
 
EMM_RealFieldgetMagnetizationFieldTimeDerivative ()
 get the magnetization variation field with respect to time at time 0 of the current time step More...
 
const EMM_RealArraygetSigma () const
 get the sigma parameters More...
 
void computeMagnetizationFieldTimeDerivative (const EMM_RealField &Mt, const EMM_RealField &Ht, EMM_RealField &Ft) const
 compute the time variation of magnetization field at Mt and Ht for time t of the current time step More...
 
EMM_RealFieldgetWorkingMagneticExcitationField () const
 get mutable adimensionized magnetic excitation working field More...
 
const EMM_RealFieldgetMagneticExcitationField () const
 get adimensionized magnetic excitation at time 0 of time step More...
 
EMM_RealFieldgetMagneticExcitationField ()
 get adimensionized magnetic excitation at time 0 of time step More...
 
void computeMagneticExcitationField (const EMM_RealField &M, EMM_RealField &H) const
 compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is $M_s H(M) $ ) More...
 
const EMM_RealFieldcomputeMagneticExcitationField ()
 compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is $M_s H(m) $ ) More...
 
void computeMagnetizationExcitationField (const EMM_RealField &M, EMM_RealField &H) const
 compute the magnetic excittaion corresponting the the magnetized operator $M_s H_d(M) $ ) More...
 
tReal computeMagneticExcitationFieldAndEnergies (const EMM_RealField &M, EMM_RealField &H, tReal Es[]) const
 compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is $M_s H(m) $ ) and return its energy More...
 
virtual void computeLandauLifschitzFields (const EMM_RealField &M, const EMM_RealField &H, EMM_RealField &F)
 compute the landau lifschitz fields More...
 
void computeMeanMagnetizationField (tReal *meanM) const
 compute the mean of magnetization field with respect of sigma weight at time 0 of time step More...
 
void computeMeanField (const EMM_RealField &F, tReal *meanF) const
 compute the mean of field over the magnetized domain More...
 
const tRealgetEnergy () const
 return the energy More...
 
const tRealgetEnergyTimeDerivative (tReal &dE_dt) const
 return the energy and its first derivative with respect to time More...
 
void setMinimumEnergyVariation (const tReal &v)
 set minimum energy variation under which the relaxation is supposed to be reached More...
 
const tRealgetMinimumEnergyVariation () const
 get minimum energy variation under which the relaxation is supposed to be reached More...
 
tReal computeEnergy () const
 compute the energy More...
 
tReal computeEnergyTimeDerivative (const EMM_RealField &F, const EMM_RealField &H) const
 compute the energy derivative with rsepect to t More...
 
void setMinimumTimeStep (const tReal &v)
 set minimum time step under which the relaxation process is supposed to be reached More...
 
const tRealgetMinimumTimeStep () const
 get minimum time step under which the relaxation process is supposed to be reached More...
 
tBoolean setStepper (SP::EMM_Stepper time)
 set the reverse time relation More...
 
void resetStepper ()
 reset the reverse time relation More...
 
const EMM_SteppergetStepper () const
 get the time descriptor for reading More...
 
EMM_SteppergetStepper ()
 get the time descriptor for writing More...
 
virtual tString getInformation (const tUSInt &retCode)
 return the information relativly to ret code of the integrate method More...
 
void setIsLogPrinted (const tBoolean &v)
 set if the log is printed in log file More...
 
const tBooleanisLogPrinted () const
 get if the log is printed in log file More...
 
void printLog (const tUInteger &timeStep, const tReal &t, const map< tString, tString > &stepperData, const tUIndex &nMagnetizedElements, const tReal Es[], const tReal &dE_dt, const tReal &DeltaE_DeltaT, const tReal *meanM, const tReal *meanH) const
 print the log More...
 
void setOutputPath (const tString &currentPath, const tString &path, const tString &prefix)
 set the output path More...
 
void setBackupStep (const tUInteger &n)
 set the backup steps to save relaxation More...
 
void setBackupsNumber (const tUInteger &n)
 set the backups number More...
 
void setIsBackupEnabled (const tBoolean &v)
 set if the backup is enabled More...
 
const tBooleanisBackupEnabled () const
 get if the backup is enabled More...
 
const tUIntegergetBackupsNumber () const
 get the backups number More...
 
const tUIntegergetBackupStep () const
 get the backup step More...
 
virtual tString toString () const
 turn the class into a string 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 tUSInt getEnergiesNumber ()
 return the energie number 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 tSInt MIN_CODE =-4
 
static const tSInt MAGNETIZATION_FIELD_UPDATE_ERROR =-4
 
static const tSInt OPERATORS_FIELDS_UPDATE_ERROR =-3
 
static const tSInt E_INCREASING =-2
 
static const tSInt E_IS_NAN =-1
 
static const tSInt RELAXATION_IS_REACHED =0
 
static const tSInt DE_DT_MIN_IS_REACHED =1
 
static const tSInt MAXIMUM_ITERATION_IS_REACHED =2
 
static const tSInt M_PARALLEL_H =3
 
static const tSInt DT_MIN_IS_REACHED =4
 
static const tFlag OsM =1
 
static const tFlag MOs =2
 
static const tFlag M =3
 
static const tFlag Os =4
 
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

 EMM_LandauLifschitzODE (void)
 create the class More...
 
virtual ~EMM_LandauLifschitzODE (void)
 destroy the class More...
 
tBoolean computeOperatorsFieldsAtTime (const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt, const EMM_RealField &M)
 compute the fields of all operators at time t More...
 
tBoolean updateOperatorsAtNextTimeStep (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &Mt)
 update the operator at next time time with respect of the value of the magnetization field at next time More...
 
tBoolean initializeOperators (const EMM_RealArray &sigma, const EMM_RealField &M)
 initialize the data of operator field at t=0 from M More...
 
tRealgetEnergyTimeDerivative ()
 get the energgy time derivative More...
 
tRealgetEnergies ()
 get the energies 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 (EMM_LandauLifschitzODE)
 

Private Attributes

tUCInt mTimeIntegrationOrder
 
tUInteger mTimeStep
 
tReal mDt
 
tReal mT
 

Detailed Description

This class describes a resolution of Landau-Lifschitz system of the Core Package for E-MicroM package with an ODE integration.

The purpose of the class is to solve the Landau-Lifschitz system EMM_LandauLifschitzSystem by an ODE integration.

It computes the evolution of the magnetization field by the method EMM_LandauLifschitzODE::solveODE() which is the implementation of the method EMM_LandauLifschitzSystem::integrate()

The solving of the system needs to define the time step integrator EMM_ODETimeStep which computes either a constant time step or an adpative time step.

Author
Stephane Despreaux
Version
1.0

Constructor & Destructor Documentation

◆ EMM_LandauLifschitzODE()

EMM_LandauLifschitzODE::EMM_LandauLifschitzODE ( void  )
protected

create the class

◆ ~EMM_LandauLifschitzODE()

EMM_LandauLifschitzODE::~EMM_LandauLifschitzODE ( void  )
protectedvirtual

destroy the class

Member Function Documentation

◆ addOperator()

virtual tBoolean EMM_LandauLifschitzSystem::addOperator ( SP::EMM_MagneticExcitationOperator  op)
inlinevirtualinherited

add an operator

Parameters
opthe operator to add

Reimplemented in EMM_GradGaussLegendreRelaxation.

References null.

Referenced by EMM_GradGaussLegendreRelaxation::addOperator(), and EMMH_Hysteresis::run().

Here is the caller graph for this function:

◆ adimensionize()

void EMM_LandauLifschitzSystem::adimensionize ( )
virtualinherited

adimensionize the system: It get the max length of the cell and adimensionize the physical parameters of all matters see EMM_Matter::adimensionize() and compute the charactristic time see EMM_Stepper::setCharacteriticTime()

References EMM_LandauLifschitzSystem::getStepper(), EMM_LandauLifschitzSystem::mMatters, EMM_LandauLifschitzSystem::mMesh, EMM_LandauLifschitzSystem::mOperators, EMM_Stepper::setCharacteristicTime(), and tReal.

Referenced by EMM_LandauLifschitzSystem::getOutputPath(), and EMMH_Hysteresis::run().

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

◆ clearOperators()

void EMM_LandauLifschitzSystem::clearOperators ( )
inlineinherited

clear all operators

◆ computeEnergy()

tReal EMM_LandauLifschitzSystem::computeEnergy ( ) const
inherited

compute the energy

Returns
the computed energy :
  • gets the matgnetization field and
  • computes the energy for each operator

References EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_LandauLifschitzSystem::getSigma(), EMM_LandauLifschitzSystem::M, EMM_LandauLifschitzSystem::mHop, EMM_LandauLifschitzSystem::mOperators, and tReal.

Referenced by EMM_LandauLifschitzSystem::getMinimumEnergyVariation().

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

◆ computeEnergyTimeDerivative()

tReal EMM_LandauLifschitzSystem::computeEnergyTimeDerivative ( const EMM_RealField F,
const EMM_RealField H 
) const
inlineinherited

compute the energy derivative with rsepect to t

Parameters
Fthe time variation of magnetization field
Hthe total magnetic excitation field
Returns
the computed energy variation : $ \frac{dE}{dt}=-2.\int_\omega \sigma H \cdot F d\omega $

References EMM_RealField::dot(), EMM_LandauLifschitzSystem::getMesh(), and EMM_LandauLifschitzSystem::getSigma().

Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), and EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime().

Here is the call graph for this function:
Here is the caller 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_LandauLifschitzODE::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

Parameters
stepperthe time step integrator
dt: the time step for computing M
dtNew: the new time step for next step
orderorder of integration of the fields of operator (0|1|2) (if 0 take the time integration order by default of the operator)
sigmathe magnetized weight of each cell
dM_dt0the variation of M at time 0 from the current time step
M0: the magnetization field at time 0 from the curent time step
Mt: the magnetization field at time t+dt
Returns
true if the error on M at t+dt is in tolerate bound.

References EMM_ODETimeStep::computeNewTimeStep(), EMM_LandauLifschitzSystem::computeOperatorsFieldsAtTime(), EMM_RealField::copy(), EMM_LandauLifschitzSystem::getEvolutionScheme(), EMM_ODETimeStep::getMagnetizationFieldAtTime(), EMM_LandauLifschitzSystem::M, EMM_LandauLifschitzSystem::MOs, EMM_LandauLifschitzSystem::Os, EMM_LandauLifschitzSystem::OsM, and tBoolean.

Referenced by getTimeStep().

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

◆ computeFunction()

void EMM_LandauLifschitzSystem::computeFunction ( const EMM_RealField M,
const EMM_RealField H,
EMM_RealField F 
) const
inlineinherited

compute the landau-lifschitz function

Parameters
Mthe magnetization field
Hthe total excitation magnetic field
Fthe return output vector landau-lifschitz function compute $ F= \alpha* (M \wedge H + \beta M \wedge \left (M \wedge H \right ) $

References EMM_LandauLifschitzSystem::getSigma().

Referenced by EMM_GaussLegendreRelaxation::computeMagnetizationFieldAtTimeWithGLnInterpolation(), and EMM_LandauLifschitzSystem::computeMagnetizationFieldTimeDerivative().

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

◆ computeGradFunction()

void EMM_LandauLifschitzSystem::computeGradFunction ( const EMM_RealField M,
const EMM_RealField H,
const EMM_RealField D,
const EMM_RealField gradH,
EMM_RealField gradF 
) const
inlineinherited

compute the gradient landau-lifschitz function at the direction D in M

Parameters
M: the magnetization field
H: the total excitation magnetic field
D: the gradient direction
gradH: the gradient of H at M in the direction D
gradF: the gradient of the landau-lisfchtiz function at M in the direction D

compute the gradient of the landau lifschitz at M in the direction D: $ GradF_M(D)=\alpha.[D \wedge H+\beta (D \wedge (M \wedge H)+M \wedge (D \wedge H))]+F(M,GradH_M(D)) $

References EMM_LandauLifschitzSystem::getSigma().

Referenced by EMM_GradGaussLegendreRelaxation::computeMagnetizationFieldTimeDerivativeGradient().

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

◆ computeLandauLifschitzFields()

virtual void EMM_LandauLifschitzSystem::computeLandauLifschitzFields ( const EMM_RealField M,
const EMM_RealField H,
EMM_RealField F 
)
inlinevirtualinherited

compute the landau lifschitz fields

Parameters
Mthe magnetization field
Hthe total magnetic excitation field
Fthe total magnetization field time derivative
Returns
the derivative of the energy with respect to time $ \frac{dE}{dt}=-2.\int_\omega \sigma H \cdot F d\omega $ compute $ F=\displaystyle - \left ( M \wedge H + \beta \sigma(x) M \wedge ( M \wedge H ) \right ) $.

Reimplemented in EMM_GradGaussLegendreRelaxation.

References EMM_LandauLifschitzSystem::computeMagnetizationFieldTimeDerivative(), EMM_LandauLifschitzSystem::computeMeanField(), EMM_LandauLifschitzSystem::computeMeanMagnetizationField(), and tReal.

Referenced by EMM_GradGaussLegendreRelaxation::computeLandauLifschitzFields(), EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), and EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime().

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

◆ computeMagneticExcitationField() [1/2]

void EMM_LandauLifschitzSystem::computeMagneticExcitationField ( const EMM_RealField M,
EMM_RealField H 
) const
inherited

compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is $M_s H(M) $ )

Parameters
Mthe magnetization field
Hthe total magnetic excitation field

use the working field at index 1

References EMM_LandauLifschitzSystem::getSigma(), EMM_RealField::getSize(), EMM_LandauLifschitzSystem::mHop, EMM_LandauLifschitzSystem::mOperators, and EMM_RealField::setSize().

Referenced by EMMH_Hysteresis::run().

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

◆ computeMagneticExcitationField() [2/2]

const EMM_RealField& EMM_LandauLifschitzSystem::computeMagneticExcitationField ( )
inlineinherited

◆ computeMagneticExcitationFieldAndEnergies()

tReal EMM_LandauLifschitzSystem::computeMagneticExcitationFieldAndEnergies ( const EMM_RealField M,
EMM_RealField H,
tReal  Es[] 
) const
inherited

compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is $M_s H(m) $ ) and return its energy

Parameters
Mthe magnetization field
Hthe total magetic excitation field
Esthe energy of each operators
Returns
the energy of the system

use the Hop mutable field

References EMM_LandauLifschitzSystem::getSigma(), EMM_RealField::getSize(), EMM_LandauLifschitzSystem::mHop, EMM_LandauLifschitzSystem::mOperators, EMM_RealField::setSize(), and tReal.

Referenced by EMM_LandauLifschitzSystem::computeMagneticExcitationField().

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

◆ computeMagnetizationExcitationField()

void EMM_LandauLifschitzSystem::computeMagnetizationExcitationField ( const EMM_RealField M,
EMM_RealField H 
) const
inherited

compute the magnetic excittaion corresponting the the magnetized operator $M_s H_d(M) $ )

Parameters
Mthe magnetization field
Hthe magnetization excitation field

References EMM_LandauLifschitzSystem::getSigma(), EMM_RealField::getSize(), EMM_LandauLifschitzSystem::mOperators, and EMM_RealField::setSize().

Referenced by EMM_LandauLifschitzSystem::getMagneticExcitationField(), and EMMH_Hysteresis::run().

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

◆ computeMagnetizationFieldTimeDerivative()

void EMM_LandauLifschitzSystem::computeMagnetizationFieldTimeDerivative ( const EMM_RealField Mt,
const EMM_RealField Ht,
EMM_RealField Ft 
) const
inlineinherited

compute the time variation of magnetization field at Mt and Ht for time t of the current time step

Parameters
Mtthe magnetization field
Htthe total magnetic excitation field
Ftthe return derivation of the magnetization field with respect of time:

$ F_t=\displaystyle - \left ( M_t \wedge H_t + \beta \sigma(x) M_t \wedge ( M_t \wedge H_t ) \right ) $.

References EMM_LandauLifschitzSystem::computeFunction().

Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), and EMM_LandauLifschitzSystem::computeLandauLifschitzFields().

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

◆ computeMeanField()

void EMM_LandauLifschitzSystem::computeMeanField ( const EMM_RealField F,
tReal meanF 
) const
inherited

compute the mean of field over the magnetized domain

Parameters
F: field to compute the mean
meanFmean of the field F in dimension 3

References EMM_Grid3D::getMagnetizedElementsNumber(), EMM_LandauLifschitzSystem::getMesh(), EMM_RealField::getSize(), EMM_RealField::mean(), tReal, tUIndex, and tUSInt.

Referenced by EMM_LandauLifschitzSystem::computeLandauLifschitzFields(), and EMMH_Hysteresis::run().

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

◆ computeMeanMagnetizationField()

void EMM_LandauLifschitzSystem::computeMeanMagnetizationField ( tReal meanM) const
inherited

compute the mean of magnetization field with respect of sigma weight at time 0 of time step

Parameters
meanMmean of magnetization field

References EMM_LandauLifschitzSystem::getMagnetizationField(), EMM_Grid3D::getMagnetizedElementsNumber(), EMM_LandauLifschitzSystem::getMesh(), EMM_LandauLifschitzSystem::getSigma(), EMM_RealField::getSize(), EMM_LandauLifschitzSystem::M, EMM_RealField::mean(), tReal, tUIndex, and tUSInt.

Referenced by EMM_LandauLifschitzSystem::computeLandauLifschitzFields(), and EMMH_Hysteresis::run().

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

◆ computeOperatorsFieldsAtTime()

tBoolean EMM_LandauLifschitzSystem::computeOperatorsFieldsAtTime ( const tReal t,
const tFlag order,
const EMM_RealArray sigma,
const EMM_RealField dM_dt,
const EMM_RealField M 
)
protectedinherited

compute the fields of all operators at time t

Parameters
tthe time step to compute
orderorder of integration of the fields of operator (0|1|2) (if 0 take the time integration order by default of the operator)
sigmathe magnetized weight of each cell
dM_dtthe variation of M at time 0 from the current time step
M: the magnetization field at time 0 from the curent time step

References EMM_LandauLifschitzSystem::mOperators, and tBoolean.

Referenced by computeFieldsAtTime(), EMM_LandauLifschitzRelaxation::computeFieldsAtTime(), and EMM_LandauLifschitzSystem::getOperator().

Here is the caller graph for this function:

◆ computePartialGradMFunction()

void EMM_LandauLifschitzSystem::computePartialGradMFunction ( const EMM_RealField M,
const EMM_RealField H,
const EMM_RealField D,
EMM_RealField gradF 
) const
inlineinherited

compute the partial gradient with respect to M of landau-lifschitz function at the direction D in M

Parameters
M: the magnetization field
H: the total excitation magnetic field
D: the gradient direction
gradF: the gradient of the landau-lisfchtiz function at M in the direction D

compute the gradient of the landau lifschitz at M in the direction D: $ GradF_M(D)=\alpha.[D \wedge H+\beta (D \wedge (M \wedge H)+M \wedge (D \wedge H))] $

References EMM_LandauLifschitzSystem::getSigma().

Here is the call graph for this function:

◆ discretize() [1/2]

tBoolean EMM_LandauLifschitzSystem::discretize ( const tBoolean isMnormalized)
virtualinherited

discretize the problem

Parameters
[in]isMnormalized: true if M is normalized, false to normalize it
Returns
false if one of the following conditon is fullfilled:
  • no time descriptor has been set
  • no network descriptor has been set
  • the discretization of the time failed
  • the discretization of the mu field failed and the field init value is set to 0
  • the discretization of the operators failed

It :

  • creates the relative magnetization at saturation $ \sigma $ and $ \beta $ of the landau lifschitz function for each cell if not uniform
  • allocates the memory for the total magnetic excitation field H
  • discretizes the associated time see EMM_Stepper::discretize()
  • initializes the magnetization field M and normalizes it (see EMM_RealField::normalize() ) is isMnomalized is false
  • discretized all the operators see EMM_Operator::discretize()

References EMM_Matter::ALPHA, EMM_RealField::copy(), EMM_Grid3D::getElementsNumber(), EMM_RealField::getSize(), CORE_Object::getThread(), EMM_RealField::initField(), EMM_Input::loadFieldFromFile(), EMM_LandauLifschitzSystem::M, EMM_LandauLifschitzSystem::MAX_OPERATORS, EMM_LandauLifschitzSystem::mF, EMM_LandauLifschitzSystem::mH, EMM_LandauLifschitzSystem::mHop, EMM_LandauLifschitzSystem::mLLFunction, EMM_LandauLifschitzSystem::mM, EMM_LandauLifschitzSystem::mMatters, EMM_LandauLifschitzSystem::mMesh, EMM_LandauLifschitzSystem::mMInitialData, EMM_LandauLifschitzSystem::mMInitialDataFile, EMM_LandauLifschitzSystem::mOperators, EMM_Matter::Ms, EMM_LandauLifschitzSystem::mSigma, EMM_RealField::normalize(), CORE_Thread::startChrono(), CORE_Thread::stopChrono(), tBoolean, tDimension, CORE_Integer::toString(), tReal, tUIndex, and EMM_RealField::unmagnetized().

Referenced by EMMH_Hysteresis::run().

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

◆ discretize() [2/2]

tBoolean EMM_LandauLifschitzSystem::discretize ( )
inlineinherited

discretize the problem

Returns
false if one of the following conditon is fullfilled:
  • no time descriptor has been set
  • no network descriptor has been set
  • the discretization of the time failed
  • the discretization of the mu field failed and the field init value is set to 0
  • the discretization of the operators failed

It :

  • creates the relative magnetization at saturation $ \sigma $ and $ \beta $ of the landau lifschitz function for each cell if not uniform
  • allocates the memory for the total magnetic excitation field H
  • discretizes the associated time see EMM_Stepper::discretize()
  • initializes the magnetization field M and normalizes it (see EMM_RealField::normalize() )
  • discretized all the operators see EMM_Operator::discretize()

Referenced by EMM_GaussLegendreRelaxation::discretize(), and EMM_LandauLifschitzSystem::getOutputPath().

Here is the caller graph for this function:

◆ getBackupsNumber()

const tUInteger& EMM_LandauLifschitzSystem::getBackupsNumber ( ) const
inlineinherited

get the backups number

Returns
the number of backups

References EMM_LandauLifschitzSystem::mBackupsNumber.

Referenced by EMM_Input::restoreBackup().

Here is the caller graph for this function:

◆ getBackupStep()

const tUInteger& EMM_LandauLifschitzSystem::getBackupStep ( ) const
inlineinherited

get the backup step

Returns
the step for backup

References EMM_LandauLifschitzSystem::mBackupStep, EMM_LandauLifschitzSystem::toString(), and tString.

Here is the call 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

◆ 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

◆ getEnergies()

tReal* EMM_LandauLifschitzSystem::getEnergies ( )
inlineprotectedinherited

get the energies

Returns
the energies list

References EMM_LandauLifschitzSystem::mEs.

◆ getEnergiesNumber()

static tUSInt EMM_LandauLifschitzSystem::getEnergiesNumber ( )
inlinestaticinherited

return the energie number

Returns
the energies number

◆ getEnergy()

const tReal& EMM_LandauLifschitzSystem::getEnergy ( ) const
inlineinherited

◆ getEnergyTimeDerivative() [1/2]

const tReal& EMM_LandauLifschitzSystem::getEnergyTimeDerivative ( tReal dE_dt) const
inlineinherited

return the energy and its first derivative with respect to time

Parameters
dE_dtthe derivative of E with respect of time
Returns
the energy

References EMM_LandauLifschitzSystem::mdE_dt, and EMM_LandauLifschitzSystem::mEs.

◆ getEnergyTimeDerivative() [2/2]

tReal& EMM_LandauLifschitzSystem::getEnergyTimeDerivative ( )
inlineprotectedinherited

get the energgy time derivative

Returns
the energies list

References EMM_LandauLifschitzSystem::mdE_dt.

◆ getEpsilon()

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

get the epsilon value for T type

Returns
the epsilon value for T type

◆ getEvolutionScheme()

const tFlag& EMM_LandauLifschitzSystem::getEvolutionScheme ( ) const
inlineinherited

return the evolution scheme between M & opertaor fields

Returns
the evolution scheme in {OsM,MOs,M,Os}
  • MOs : M(t+dt) =F(M(t),Os(t)) and Os(t+dt)=U(M(t+dt),Os(t))
  • OsM : Os(t+dt)=U(M(t),Os(t)) and Ms(t+dt)=F(M(t),Os(t+dt))
  • M : M(t+dt) =F(M(t),Os(0))
  • Os : Os(t+dt)=U(M(0),Os(t))

References EMM_LandauLifschitzSystem::mEvolutionScheme.

Referenced by computeFieldsAtTime(), and EMM_LandauLifschitzRelaxation::computeFieldsAtTime().

Here is the caller graph for this function:

◆ 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

◆ getInformation()

virtual tString EMM_LandauLifschitzSystem::getInformation ( const tUSInt retCode)
inlinevirtualinherited

return the information relativly to ret code of the integrate method

Parameters
retCode: the return code of the relaxation
Returns
the information relativly to ret code

References EMM_LandauLifschitzSystem::MIN_CODE.

◆ 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

◆ getMagneticExcitationField() [1/2]

const EMM_RealField& EMM_LandauLifschitzSystem::getMagneticExcitationField ( ) const
inlineinherited

◆ getMagneticExcitationField() [2/2]

EMM_RealField& EMM_LandauLifschitzSystem::getMagneticExcitationField ( )
inlineinherited

get adimensionized magnetic excitation at time 0 of time step

Returns
H

References EMM_LandauLifschitzSystem::computeMagneticExcitationField(), and EMM_LandauLifschitzSystem::computeMagnetizationExcitationField().

Here is the call graph for this function:

◆ getMagnetizationField() [1/2]

const EMM_RealField& EMM_LandauLifschitzSystem::getMagnetizationField ( ) const
inlineinherited

◆ getMagnetizationField() [2/2]

EMM_RealField& EMM_LandauLifschitzSystem::getMagnetizationField ( )
inlineinherited

return the adimensionized magnetizaton field associated to the problem for writing at time 0 of the current time step

Returns
M

◆ getMagnetizationFieldTimeDerivative() [1/2]

const EMM_RealField& EMM_LandauLifschitzSystem::getMagnetizationFieldTimeDerivative ( ) const
inlineinherited

◆ getMagnetizationFieldTimeDerivative() [2/2]

EMM_RealField& EMM_LandauLifschitzSystem::getMagnetizationFieldTimeDerivative ( )
inlineinherited

get the magnetization variation field with respect to time at time 0 of the current time step

Returns
F= $ \displaystyle - \left ( M\wedge H + \beta \sigma(x) M \wedge ( M \wedge H ) \right ) $.

◆ getMagnetizedElementsNumber()

const tUIndex& EMM_LandauLifschitzSystem::getMagnetizedElementsNumber ( ) const
inlineinherited

get the number of mage,ntozed elements

Referenced by EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), and EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime().

Here is the caller graph for this function:

◆ getMatterField() [1/2]

const EMM_MatterField& EMM_LandauLifschitzSystem::getMatterField ( ) const
inlineinherited

return the matter index for each cell for reading

Returns
the matter indices array

Referenced by EMM_MinimalExchangeOperator::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementOperator::discretize(), and EMM_Output::saveVTI().

Here is the caller graph for this function:

◆ getMatterField() [2/2]

EMM_MatterField& EMM_LandauLifschitzSystem::getMatterField ( )
inlineinherited

return the matter index for each cell for writing

Returns
the matter indices array

◆ 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:

◆ getMesh() [1/2]

const EMM_Grid3D& EMM_LandauLifschitzSystem::getMesh ( ) const
inlineinherited

◆ getMesh() [2/2]

EMM_Grid3D& EMM_LandauLifschitzSystem::getMesh ( )
inlineinherited

return the mesh associated to the problem for writing

Returns
the mesh

◆ 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:

◆ getMinimumEnergyVariation()

const tReal& EMM_LandauLifschitzSystem::getMinimumEnergyVariation ( ) const
inlineinherited

get minimum energy variation under which the relaxation is supposed to be reached

Returns
the minimum energy variation

References EMM_LandauLifschitzSystem::computeEnergy(), EMM_LandauLifschitzSystem::mMinEnergyVariation, and tReal.

Here is the call graph for this function:

◆ getMinimumTimeStep()

const tReal& EMM_LandauLifschitzSystem::getMinimumTimeStep ( ) const
inlineinherited

get minimum time step under which the relaxation process is supposed to be reached

Returns
the min time step

References EMM_LandauLifschitzSystem::getTime(), EMM_LandauLifschitzSystem::getTimeStep(), EMM_LandauLifschitzSystem::getTimeStepsNumber(), EMM_LandauLifschitzSystem::mMinDt, tReal, and tUInteger.

Here is the call 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:

◆ getOperator() [1/2]

const EMM_Operator& EMM_LandauLifschitzSystem::getOperator ( const tUIndex index) const
inlineinherited

get the operator at index for reading

Parameters
indexindex of the operator in [0,getOperatorsNumber()[
Returns
the operator

References null, and CORE_Integer::toString().

Here is the call graph for this function:

◆ getOperator() [2/2]

EMM_Operator& EMM_LandauLifschitzSystem::getOperator ( const tUIndex index)
inlineinherited

◆ getOperators() [1/2]

const SV::EMM_MagneticExcitationOperator& EMM_LandauLifschitzSystem::getOperators ( ) const
inlineinherited

◆ getOperators() [2/2]

SV::EMM_MagneticExcitationOperator& EMM_LandauLifschitzSystem::getOperators ( )
inlineinherited

return the operators vector

Returns
the operators

References EMM_LandauLifschitzSystem::mOperators.

◆ getOperatorsNumber()

tUIndex EMM_LandauLifschitzSystem::getOperatorsNumber ( ) const
inlineinherited

return the number of operators

Returns
the operators number

◆ getOut()

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

get the output

Returns
the shared pointer to the output stream

References CORE_Object::OUT.

◆ getOutputPath()

const tString& EMM_LandauLifschitzSystem::getOutputPath ( ) const
inlineinherited

get the output path in which the files are generated

Returns
the output path

References EMM_LandauLifschitzSystem::adimensionize(), EMM_LandauLifschitzSystem::discretize(), EMM_LandauLifschitzSystem::mOutputPath, and tBoolean.

Here is the call graph for this function:

◆ 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:

◆ getPrefix()

const tString& EMM_LandauLifschitzSystem::getPrefix ( ) const
inlineinherited

get the prefix of the generating files

Returns
the prefix of the files

References EMM_LandauLifschitzSystem::mPrefix.

◆ 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

◆ getSigma()

const EMM_RealArray& EMM_LandauLifschitzSystem::getSigma ( ) const
inlineinherited

get the sigma parameters

Returns
the sigma parameter $ \sigma_i=\displaystyle \frac{M_{s_i}}{M_s} $ for all cell i.

References CORE_Array< T >::get().

Referenced by EMM_LandauLifschitzSystem::computeEnergy(), EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), EMM_LandauLifschitzSystem::computeEnergyTimeDerivative(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), EMM_LandauLifschitzSystem::computeFunction(), EMM_LandauLifschitzSystem::computeGradFunction(), EMM_LandauLifschitzSystem::computeMagneticExcitationField(), EMM_LandauLifschitzSystem::computeMagneticExcitationFieldAndEnergies(), EMM_GradGaussLegendreRelaxation::computeMagneticExcitationFieldGradient(), EMM_LandauLifschitzSystem::computeMagnetizationExcitationField(), EMM_LandauLifschitzRelaxation::computeMagnetizationFieldAtTime(), EMM_LandauLifschitzSystem::computeMeanMagnetizationField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_LandauLifschitzSystem::computePartialGradMFunction(), EMM_FullExchangeOperator::discretize(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_LandauLifschitzRelaxation::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_DisplacementFEMOperator::resetToInitialState(), EMM_DisplacementOperator::resetToInitialState(), EMM_DisplacementOperator::restore(), and EMM_Output::saveVTI().

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

◆ getStepper() [1/2]

const EMM_Stepper& EMM_LandauLifschitzSystem::getStepper ( ) const
inlineinherited

get the time descriptor for reading

Returns
the time descriptor class

Referenced by EMM_LandauLifschitzSystem::adimensionize(), and EMMH_Hysteresis::run().

Here is the caller graph for this function:

◆ getStepper() [2/2]

EMM_Stepper& EMM_LandauLifschitzSystem::getStepper ( )
inlineinherited

get the time descriptor for writing

Returns
the time descriptor class

References EMM_LandauLifschitzSystem::integrate(), tBoolean, and tSInt.

Here is the call graph for this function:

◆ 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(), 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:

◆ getTime()

virtual const tReal& EMM_LandauLifschitzODE::getTime ( ) const
inlinevirtual

return the current time

Returns
the current time of the relaxation

Implements EMM_LandauLifschitzSystem.

References mT.

◆ getTimeIntegrationOrder()

const tUCInt& EMM_LandauLifschitzODE::getTimeIntegrationOrder ( ) const
inline

get the time integration order

Returns
time integration order in {1,2}

References mTimeIntegrationOrder.

◆ getTimeStep()

virtual const tReal& EMM_LandauLifschitzODE::getTimeStep ( ) const
inlinevirtual

return the current time step

Returns
the current time step of the relaxation

Implements EMM_LandauLifschitzSystem.

References computeFieldsAtTime(), integrateMagnetizationFieldAtTime(), mDt, tBoolean, tFlag, tReal, and tUSInt.

Here is the call graph for this function:

◆ getTimeStepsNumber()

virtual const tUInteger& EMM_LandauLifschitzODE::getTimeStepsNumber ( ) const
inlinevirtual

return the computed time steps

Returns
the number time steps of the relaxation

Implements EMM_LandauLifschitzSystem.

References mTimeStep.

◆ getTypeName()

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

get type name

Returns
the type name of the class

References tString.

◆ getWorkingMagneticExcitationField()

EMM_RealField& EMM_LandauLifschitzSystem::getWorkingMagneticExcitationField ( ) const
inlineinherited

◆ initializeOperators()

tBoolean EMM_LandauLifschitzSystem::initializeOperators ( const EMM_RealArray sigma,
const EMM_RealField M 
)
protectedinherited

initialize the data of operator field at t=0 from M

Parameters
sigmaweigh of each cell
Mmagnetization at t=0

Referenced by EMM_LandauLifschitzSystem::getOperator().

Here is the caller graph for this function:

◆ integrate()

virtual void EMM_LandauLifschitzODE::integrate ( const tBoolean isRestoring,
tSInt retCode 
)
inlinevirtual

solve the system

Parameters
isRestoringif true, compute the relaxation from the last backup
retCodethe return code of the method
  • If negative value it failed
  • If positive value , it succeeds

Implements EMM_LandauLifschitzSystem.

References solveODE(), tBoolean, and tSInt.

Here is the call graph for this function:

◆ integrateMagnetizationFieldAtTime()

virtual tReal EMM_LandauLifschitzODE::integrateMagnetizationFieldAtTime ( tReal dt,
const tFlag errorNorm,
const tReal epsilon,
tUSInt nEvaluations,
const EMM_RealField dM_dt0,
const EMM_RealField M0,
EMM_RealField Mt 
)
pure virtual

integrate the magnetization field at time t from time and derivative field at time 0

Parameters
dtthe time step to compute
errorNormnorm used for computing the error
epsilon: parameter to bound error
nEvaluationsnumber of Laudau Lifschitz function calls
dM_dt0magnetization field derivative at time 0
M0magnetization field at time 0
Mtthe magnetization field at time dt
Returns
the estimated error
  • compute M(dt)
  • compute the error on M(dt)
  • compute new time step in dt
Returns
the error done on Mt

Implemented in EMM_LandauLifschitzODE_RK, and EMM_LandauLifschitzODE_RKd.

Referenced by getTimeStep().

Here is the caller graph for this function:

◆ 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()

tBoolean EMM_LandauLifschitzSystem::isAffine ( ) const
inherited

return true if the system has only affine operators

Returns
true if the system has only affine operators see EMM_Operator::isAffine()

References EMM_LandauLifschitzSystem::mOperators.

Referenced by EMM_LandauLifschitzSystem::getOperator().

Here is the caller graph for this function:

◆ isBackupEnabled()

const tBoolean& EMM_LandauLifschitzSystem::isBackupEnabled ( ) const
inlineinherited

get if the backup is enabled

Returns
true if the backup is enabled

References EMM_LandauLifschitzSystem::mIsBackupEnabled.

◆ 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:

◆ isLogPrinted()

const tBoolean& EMM_LandauLifschitzSystem::isLogPrinted ( ) const
inlineinherited

get if the log is printed in log file

Returns
true if the log printing is enabled

References EMM_LandauLifschitzSystem::mIsLogPrinted, EMM_LandauLifschitzSystem::printLog(), tReal, tUIndex, and tUInteger.

Here is the call graph for this function:

◆ isMagnetizationStatic()

tBoolean EMM_LandauLifschitzSystem::isMagnetizationStatic ( ) const
inlineinherited

return true if M is permanent

◆ 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:

◆ 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:

◆ printLog()

void EMM_LandauLifschitzSystem::printLog ( const tUInteger timeStep,
const tReal t,
const map< tString, tString > &  stepperData,
const tUIndex nMagnetizedElements,
const tReal  Es[],
const tReal dE_dt,
const tReal DeltaE_DeltaT,
const tReal meanM,
const tReal meanH 
) const
inherited

print the log

Parameters
timeStepthe iterations number
tthe current time
stepperData: data of the stepper
nMagnetizedElementsthe number of magnetized elements
Esenergies : total energy at 0 + energy for operator at index i in [1,nOperators]
dE_dtvariation of energy with respect to time $ \frac{dE}{dt}=-2.\int_\omega \sigma h \frac{\partial m }{\partial t } d\omega $
DeltaE_DeltaT: the effective variation of energy between 2 succesive iterations
meanMthe man of the magnetization field
meanHthe man of the magnetic excitation field

References EMM_LandauLifschitzSystem::mOperators, CORE_Object::out(), CORE_Out::print(), CORE_Out::println(), tFlag, CORE_Real::toString(), CORE_Integer::toString(), and tReal.

Referenced by EMM_LandauLifschitzSystem::isLogPrinted().

Here is the call graph for this function:
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:

◆ resetOperatorsToInitialState()

tBoolean EMM_LandauLifschitzSystem::resetOperatorsToInitialState ( )
virtualinherited

initialize the problem

It resets to initial state all the operator data

References CORE_Object::getThread(), EMM_LandauLifschitzSystem::mOperators, CORE_Thread::startChrono(), CORE_Thread::stopChrono(), and tBoolean.

Referenced by EMM_LandauLifschitzSystem::getOperator(), EMM_LandauLifschitzSystem::resetToInitialState(), and EMMH_Hysteresis::run().

Here is the call graph for this function:
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:

◆ resetStepper()

void EMM_LandauLifschitzSystem::resetStepper ( )
inlineinherited

reset the reverse time relation

References EMM_LandauLifschitzSystem::mStepper, and null.

Referenced by EMM_LandauLifschitzSystem::setStepper().

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_LandauLifschitzSystem::resetToInitialState ( )
inherited

◆ setBackupsNumber()

void EMM_LandauLifschitzSystem::setBackupsNumber ( const tUInteger n)
inlineinherited

set the backups number

Parameters
nthe number of backups >0

◆ setBackupStep()

void EMM_LandauLifschitzSystem::setBackupStep ( const tUInteger n)
inlineinherited

set the backup steps to save relaxation

Parameters
nthe step for backup

◆ setEvolutionScheme()

void EMM_LandauLifschitzSystem::setEvolutionScheme ( const tFlag f)
inlineinherited

set the evolution scheme

Parameters
f: evolution flag in
  • MOs : M(t+dt) =F(M(t),Os(t)) and Os(t+dt)=U(M(t+dt),Os(t))
  • OsM : Os(t+dt)=U(M(t),Os(t)) and Ms(t+dt)=F(M(t),Os(t+dt))
  • M : M(t+dt) =F(M(t),Os(0))
  • Os : Os(t+dt)=U(M(0),Os(t))

◆ setInitialMagnetization() [1/4]

void EMM_LandauLifschitzSystem::setInitialMagnetization ( const tString dataFile)
inlineinherited

set the initialization data for magnetization field

Parameters
dataFilethe file name of the description field file

Referenced by EMMH_Hysteresis::run(), and EMMH_Hysteresis::setInitialMagnetizationField().

Here is the caller graph for this function:

◆ setInitialMagnetization() [2/4]

void EMM_LandauLifschitzSystem::setInitialMagnetization ( const tReal  data[3])
inlineinherited

set the initialization data for magnetization field

Parameters
datathe uniform init magnetization

References EMM_RealField::setValue().

Here is the call graph for this function:

◆ setInitialMagnetization() [3/4]

void EMM_LandauLifschitzSystem::setInitialMagnetization ( const tReal M0,
const tReal M1,
const tReal M2 
)
inlineinherited

set the initialization data for magnetization field

Parameters
M0: x-coordinate of initial magnetization
M1: y-coordinate of initial magnetization
M2: z-coordinate of initial magnetization

References EMM_RealField::setValue(), and tDimension.

Here is the call graph for this function:

◆ setInitialMagnetization() [4/4]

void EMM_LandauLifschitzSystem::setInitialMagnetization ( const EMM_RealField data)
inlineinherited

set the initialization data for magnetization field

Parameters
datathe uniform init magnetization

◆ setIsBackupEnabled()

void EMM_LandauLifschitzSystem::setIsBackupEnabled ( const tBoolean v)
inlineinherited

set if the backup is enabled

Parameters
vtrue to enable the backup process

Referenced by EMMH_Hysteresis::run().

Here is the caller graph for this function:

◆ setIsLogPrinted()

void EMM_LandauLifschitzSystem::setIsLogPrinted ( const tBoolean v)
inlineinherited

set if the log is printed in log file

Parameters
vtrue to enable the log printing

Referenced by EMMH_Hysteresis::run().

Here is the caller 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:

◆ setMesh()

tBoolean EMM_LandauLifschitzSystem::setMesh ( SP::EMM_Grid3D  mesh)
inlineinherited

set the mesh

Parameters
mesh: the mesh to set
Returns
true if the mesh is compatible

References null.

◆ setMinimumEnergyVariation()

void EMM_LandauLifschitzSystem::setMinimumEnergyVariation ( const tReal v)
inlineinherited

set minimum energy variation under which the relaxation is supposed to be reached

Parameters
vthe minimum energy variation

◆ setMinimumTimeStep()

void EMM_LandauLifschitzSystem::setMinimumTimeStep ( const tReal v)
inlineinherited

set minimum time step under which the relaxation process is supposed to be reached

Parameters
vmin time step

◆ 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.

◆ setOutputPath()

void EMM_LandauLifschitzSystem::setOutputPath ( const tString currentPath,
const tString path,
const tString prefix 
)
inlineinherited

set the output path

Parameters
currentPaththe curent path from whih the path is defined
paththe output path
prefixthe prefix of the file

References CORE_File::isAbsolutePath(), EMM_LandauLifschitzSystem::mOutputPath, and CORE_File::PATH_SEPARATOR.

Here is the call graph for this function:

◆ setStepper()

tBoolean EMM_LandauLifschitzSystem::setStepper ( SP::EMM_Stepper  time)
inlineinherited

set the reverse time relation

Parameters
time: the time to set
Returns
true if the time is compatible

References CORE_Object::getThis(), null, and EMM_LandauLifschitzSystem::resetStepper().

Here is the call graph for this function:

◆ 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:

◆ setTimeIntegrationOrder()

void EMM_LandauLifschitzODE::setTimeIntegrationOrder ( const int &  order)
inline

set the time integration order

Parameters
ordertime integration order in {1,2}

◆ solveODE()

void EMM_LandauLifschitzODE::solveODE ( const tBoolean isRestoring,
tSInt retCode 
)

solve the ODE system

Parameters
isRestoringif true, compute the relaxation from the last backup
retCodethe return code of the method
  • If negative value it failed
  • If positive value , it succeeds

The integration algorithm is described as follow:

  • M is the initial magnetization field
  • E0: is the initial energy
  • restore the integration process if isRestoring is true see EMM_Input::restoreBackup()
  • while either the time step is less than the maximum tim steps number of the relaxation is not reached do :
  • save the end state of relaxation see EM_Output::saveBackup()

References CORE_Object::getThread(), and CORE_Thread::startChrono().

Referenced by integrate().

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

◆ SP_OBJECT()

EMM_LandauLifschitzODE::SP_OBJECT ( EMM_LandauLifschitzODE  )
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_LandauLifschitzSystem::toString ( ) const
virtualinherited

turn the class into a string

Returns
the string representation of the class

Reimplemented from CORE_Object.

References CORE_Object::getIdentityString(), EMM_LandauLifschitzSystem::mLLFunction, EMM_LandauLifschitzSystem::mM, EMM_LandauLifschitzSystem::mMatters, EMM_LandauLifschitzSystem::mMesh, EMM_LandauLifschitzSystem::mOperators, EMM_LandauLifschitzSystem::mStepper, tString, and tUIndex.

Referenced by EMM_LandauLifschitzSystem::getBackupStep(), and EMMH_Hysteresis::run().

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

◆ updateOperatorsAtNextTimeStep()

tBoolean EMM_LandauLifschitzSystem::updateOperatorsAtNextTimeStep ( const tReal dt,
const EMM_RealArray sigma,
const EMM_RealField Mt 
)
protectedinherited

update the operator at next time time with respect of the value of the magnetization field at next time

Parameters
dtthe time step
sigmathe magnetized weight of each cell
Mtthe magnetization field at each point at next time step

call the method EMM_MagneticExcitationOperator::updateAtNextTimeStep() for each operator

References EMM_LandauLifschitzSystem::mOperators, and tBoolean.

Referenced by EMM_LandauLifschitzSystem::getOperator().

Here is the caller graph for this function:

Member Data Documentation

◆ DE_DT_MIN_IS_REACHED

const tSInt EMM_LandauLifschitzSystem::DE_DT_MIN_IS_REACHED =1
staticinherited

◆ DT_MIN_IS_REACHED

const tSInt EMM_LandauLifschitzSystem::DT_MIN_IS_REACHED =4
staticinherited

◆ E_INCREASING

const tSInt EMM_LandauLifschitzSystem::E_INCREASING =-2
staticinherited

◆ E_IS_NAN

const tSInt EMM_LandauLifschitzSystem::E_IS_NAN =-1
staticinherited

◆ Gamma

const tReal EMM_Object::Gamma =-1.7e11
staticinherited

◆ M

const tFlag EMM_LandauLifschitzSystem::M =3
staticinherited

◆ M_PARALLEL_H

const tSInt EMM_LandauLifschitzSystem::M_PARALLEL_H =3
staticinherited

◆ MAGNETIZATION_FIELD_UPDATE_ERROR

const tSInt EMM_LandauLifschitzSystem::MAGNETIZATION_FIELD_UPDATE_ERROR =-4
staticinherited

◆ MAXIMUM_ITERATION_IS_REACHED

const tSInt EMM_LandauLifschitzSystem::MAXIMUM_ITERATION_IS_REACHED =2
staticinherited

◆ mDt

tReal EMM_LandauLifschitzODE::mDt
private

Referenced by getTimeStep().

◆ MIN_CODE

const tSInt EMM_LandauLifschitzSystem::MIN_CODE =-4
staticinherited

◆ MOs

const tFlag EMM_LandauLifschitzSystem::MOs =2
staticinherited

◆ mT

tReal EMM_LandauLifschitzODE::mT
private

Referenced by getTime().

◆ mTimeIntegrationOrder

tUCInt EMM_LandauLifschitzODE::mTimeIntegrationOrder
private

Referenced by getTimeIntegrationOrder().

◆ mTimeStep

tUInteger EMM_LandauLifschitzODE::mTimeStep
private

Referenced by getTimeStepsNumber().

◆ Mu0

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

◆ NULL_VALUE

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

◆ OPERATORS_FIELDS_UPDATE_ERROR

const tSInt EMM_LandauLifschitzSystem::OPERATORS_FIELDS_UPDATE_ERROR =-3
staticinherited

◆ Os

const tFlag EMM_LandauLifschitzSystem::Os =4
staticinherited

◆ OsM

const tFlag EMM_LandauLifschitzSystem::OsM =1
staticinherited

◆ RELAXATION_IS_REACHED

const tSInt EMM_LandauLifschitzSystem::RELAXATION_IS_REACHED =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 files: