|
C++ main module for emicrom Package
1.0
|
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM. More...
#include <EMM_LandauLifschitzSystem.h>


Public Member Functions | |
| tBoolean | setMesh (SP::EMM_Grid3D mesh) |
| set the mesh More... | |
| const EMM_Grid3D & | getMesh () const |
| return the mesh associated to the problem for reading More... | |
| EMM_Grid3D & | getMesh () |
| return the mesh associated to the problem for writing More... | |
| const tUIndex & | getMagnetizedElementsNumber () const |
| get the number of mage,ntozed elements More... | |
| const EMM_MatterField & | getMatterField () const |
| return the matter index for each cell for reading More... | |
| EMM_MatterField & | getMatterField () |
| return the matter index for each cell for writing More... | |
| const tString & | getPrefix () const |
| get the prefix of the generating files More... | |
| const tString & | getOutputPath () 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_Operator & | getOperator (const tUIndex &index) const |
| get the operator at index for reading More... | |
| EMM_Operator & | getOperator (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 tFlag & | getEvolutionScheme () const |
| return the evolution scheme between M & opertaor fields More... | |
| tBoolean | isMagnetizationStatic () const |
| return true if M is permanent More... | |
| const EMM_RealField & | getMagnetizationField () const |
| return the adimensionized magnetisation field associated to the problem for reading at time 0 of the current time step More... | |
| EMM_RealField & | getMagnetizationField () |
| return the adimensionized magnetizaton field associated to the problem for writing at time 0 of the current time step More... | |
| const EMM_RealField & | getMagnetizationFieldTimeDerivative () const |
| get the magnetization variation field with respect to time at time 0 of the current time step More... | |
| EMM_RealField & | getMagnetizationFieldTimeDerivative () |
| get the magnetization variation field with respect to time at time 0 of the current time step More... | |
| const EMM_RealArray & | getSigma () 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_RealField & | getWorkingMagneticExcitationField () const |
| get mutable adimensionized magnetic excitation working field More... | |
| const EMM_RealField & | getMagneticExcitationField () const |
| get adimensionized magnetic excitation at time 0 of time step More... | |
| EMM_RealField & | getMagneticExcitationField () |
| 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 ) More... | |
| void | computeMagnetizationExcitationField (const EMM_RealField &M, EMM_RealField &H) const |
compute the magnetic excittaion corresponting the the magnetized operator ) More... | |
| const EMM_RealField & | computeMagneticExcitationField () |
compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is ) 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 ) 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 tReal & | getEnergy () const |
| return the energy More... | |
| const tReal & | getEnergyTimeDerivative (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 tReal & | getMinimumEnergyVariation () 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 tReal & | getMinimumTimeStep () const |
| get minimum time step under which the relaxation process is supposed to be reached More... | |
| virtual const tUInteger & | getTimeStepsNumber () const =0 |
| return the computed time steps More... | |
| virtual const tReal & | getTime () const =0 |
| return the current time More... | |
| virtual const tReal & | getTimeStep () const =0 |
| return the current time step More... | |
| tBoolean | setStepper (SP::EMM_Stepper time) |
| set the reverse time relation More... | |
| void | resetStepper () |
| reset the reverse time relation More... | |
| const EMM_Stepper & | getStepper () const |
| get the time descriptor for reading More... | |
| EMM_Stepper & | getStepper () |
| get the time descriptor for writing More... | |
| virtual void | integrate (const tBoolean &isRestoring, tSInt &retCode)=0 |
| integrate the system over the time 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 tBoolean & | isLogPrinted () 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 ¤tPath, 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 tBoolean & | isBackupEnabled () const |
| get if the backup is enabled More... | |
| const tUInteger & | getBackupsNumber () const |
| get the backups number More... | |
| const tUInteger & | getBackupStep () 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_Out & | out () |
| get the output More... | |
| static SP::CORE_Out | getOut () |
| get the output More... | |
| static CORE_Thread & | getThread () |
| get the profilier More... | |
| static const tBoolean & | isMemoryChecked () |
| 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_LandauLifschitzSystem (void) | |
| create the class More... | |
| virtual | ~EMM_LandauLifschitzSystem (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... | |
| tReal * | getEnergies () |
| get the energies More... | |
| tReal & | getEnergyTimeDerivative () |
| get the energgy time derivative 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_LandauLifschitzSystem) | |
Private Attributes | |
| tString | mOutputPath |
| tString | mPrefix |
| tUInteger | mBackupStep |
| tUInteger | mBackupsNumber |
| tBoolean | mIsBackupEnabled |
| tBoolean | mIsLogPrinted |
| tString | mMInitialDataFile |
| SP::EMM_RealField | mMInitialData |
| tFlag | mEvolutionScheme |
| tReal | mMinDt |
| tReal | mMinEnergyVariation |
| tReal | mEs [MAX_OPERATORS+1] |
| tReal | mdE_dt |
| SP::EMM_LandauLifschitzFunction | mLLFunction |
| SP::EMM_Grid3D | mMesh |
| SP::EMM_MatterField | mMatters |
| SV::EMM_MagneticExcitationOperator | mOperators |
| SP::EMM_Stepper | mStepper |
| SP::EMM_RealArray | mSigma |
| SP::EMM_RealField | mM |
| SP::EMM_RealField | mF |
| SP::EMM_RealField | mH |
| SP::EMM_RealField | mHop |
Static Private Attributes | |
| static const tString | RET_STRING [] |
| static const tFlag | MAX_OPERATORS =5 |
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM.

where :
is the total magnetic excitation
the magnetization field
is the time in second
is the magnetization at saturation
is vacuum permeability
is the gyroscopic precession
is the absorption coefficientBy default, the physical values are:



(which may depend on matter)We will adimensionize the equation by :
where m is adimensionized and
with
is the magnetization at saturation in point X
, where h and H are not necessarly linears
where t is adimensionized and
in seconds.
a set of domains in which matter is uniform.With this kind of normalization, the adimensionized equation is:

with
. The caracteristic time is
expressed in secunds. see EMM_LandauLifschitzSystem class for description of the system
We note :
the magnetic field.
, the adimensionized length relation with real length where L is the caracteristic dimension of a mesh cell. Its order is about
.
the corresponding set of adimensionized domains in which matter is uniform.The energy of the system is
with the relation
.
So, 
The normalized energy is
is defined as
where
where
where
.
The characteritic volumic energy
is expressed in
.
So, we have
.
And 
In particular case where h is linear and self-adjointness, the adimensionized energy can be written as
in order to respect the general relation
.
the silving of the system consists in :
@author Stephane Despreaux @version 1.0
|
protected |
create the class
References CORE_Run::getClassFactory(), and mLLFunction.

|
protectedvirtual |
destroy the class
|
inlinevirtual |
add an operator
| op | the operator to add |
Reimplemented in EMM_GradGaussLegendreRelaxation.
References null.
Referenced by EMM_GradGaussLegendreRelaxation::addOperator(), and EMMH_Hysteresis::run().

|
virtual |
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 getStepper(), mMatters, mMesh, mOperators, EMM_Stepper::setCharacteristicTime(), and tReal.
Referenced by getOutputPath(), and EMMH_Hysteresis::run().


|
inline |
clear all operators
| tReal EMM_LandauLifschitzSystem::computeEnergy | ( | ) | const |
compute the energy
References getMagnetizationField(), getSigma(), M, mHop, mOperators, and tReal.
Referenced by getMinimumEnergyVariation().


|
inline |
compute the energy derivative with rsepect to t
| F | the time variation of magnetization field |
| H | the total magnetic excitation field |
References EMM_RealField::dot(), getMesh(), and getSigma().
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), and EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime().


|
inlinestaticinherited |
compute epsilon
|
inline |
compute the landau-lifschitz function
| M | the magnetization field |
| H | the total excitation magnetic field |
| F | the return output vector landau-lifschitz function compute |
References getSigma().
Referenced by EMM_GaussLegendreRelaxation::computeMagnetizationFieldAtTimeWithGLnInterpolation(), and computeMagnetizationFieldTimeDerivative().


|
inline |
compute the gradient landau-lifschitz function at the direction D in M
| 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:
References getSigma().
Referenced by EMM_GradGaussLegendreRelaxation::computeMagnetizationFieldTimeDerivativeGradient().


|
inlinevirtual |
compute the landau lifschitz fields
| M | the magnetization field |
| H | the total magnetic excitation field |
| F | the total magnetization field time derivative |
compute
. Reimplemented in EMM_GradGaussLegendreRelaxation.
References computeMagnetizationFieldTimeDerivative(), computeMeanField(), computeMeanMagnetizationField(), and tReal.
Referenced by EMM_GradGaussLegendreRelaxation::computeLandauLifschitzFields(), EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), and EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime().


| void EMM_LandauLifschitzSystem::computeMagneticExcitationField | ( | const EMM_RealField & | M, |
| EMM_RealField & | H | ||
| ) | const |
compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is
)
| M | the magnetization field |
| H | the total magnetic excitation field |
use the working field at index 1
References getSigma(), EMM_RealField::getSize(), mHop, mOperators, and EMM_RealField::setSize().
Referenced by EMMH_Hysteresis::run().


|
inline |
compute the total adimensionized magnetic excitation H of the system (real magnetic excitation is
)
References computeMagneticExcitationFieldAndEnergies(), getMagneticExcitationField(), getMagnetizationField(), and tReal.
Referenced by EMM_GaussLegendreRelaxation::computeMagnetizationFieldAtTimeWithGLnInterpolation(), getMagneticExcitationField(), EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), and EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime().


| tReal EMM_LandauLifschitzSystem::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
) and return its energy
| M | the magnetization field |
| H | the total magetic excitation field |
| Es | the energy of each operators |
use the Hop mutable field
References getSigma(), EMM_RealField::getSize(), mHop, mOperators, EMM_RealField::setSize(), and tReal.
Referenced by computeMagneticExcitationField().


| void EMM_LandauLifschitzSystem::computeMagnetizationExcitationField | ( | const EMM_RealField & | M, |
| EMM_RealField & | H | ||
| ) | const |
compute the magnetic excittaion corresponting the the magnetized operator
)
| M | the magnetization field |
| H | the magnetization excitation field |
References getSigma(), EMM_RealField::getSize(), mOperators, and EMM_RealField::setSize().
Referenced by getMagneticExcitationField(), and EMMH_Hysteresis::run().


|
inline |
compute the time variation of magnetization field at Mt and Ht for time t of the current time step
| Mt | the magnetization field |
| Ht | the total magnetic excitation field |
| Ft | the return derivation of the magnetization field with respect of time: |
.
References computeFunction().
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), and computeLandauLifschitzFields().


| void EMM_LandauLifschitzSystem::computeMeanField | ( | const EMM_RealField & | F, |
| tReal * | meanF | ||
| ) | const |
compute the mean of field over the magnetized domain
| F | : field to compute the mean |
| meanF | mean of the field F in dimension 3 |
References EMM_Grid3D::getMagnetizedElementsNumber(), getMesh(), EMM_RealField::getSize(), EMM_RealField::mean(), tReal, tUIndex, and tUSInt.
Referenced by computeLandauLifschitzFields(), and EMMH_Hysteresis::run().


| void EMM_LandauLifschitzSystem::computeMeanMagnetizationField | ( | tReal * | meanM | ) | const |
compute the mean of magnetization field with respect of sigma weight at time 0 of time step
| meanM | mean of magnetization field |
References getMagnetizationField(), EMM_Grid3D::getMagnetizedElementsNumber(), getMesh(), getSigma(), EMM_RealField::getSize(), M, EMM_RealField::mean(), tReal, tUIndex, and tUSInt.
Referenced by computeLandauLifschitzFields(), and EMMH_Hysteresis::run().


|
protected |
compute the fields of all operators at time t
| t | the time step to compute |
| order | order of integration of the fields of operator (0|1|2) (if 0 take the time integration order by default of the operator) |
| sigma | the magnetized weight of each cell |
| dM_dt | the variation of M at time 0 from the current time step |
| M | : the magnetization field at time 0 from the curent time step |
References mOperators, and tBoolean.
Referenced by EMM_LandauLifschitzODE::computeFieldsAtTime(), EMM_LandauLifschitzRelaxation::computeFieldsAtTime(), and getOperator().

|
inline |
compute the partial gradient with respect to M of landau-lifschitz function at the direction D in M
| 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:
References getSigma().

discretize the problem
| [in] | isMnormalized | : true if M is normalized, false to normalize it |
It :
and
of the landau lifschitz function for each cell if not uniformReferences EMM_Matter::ALPHA, EMM_RealField::copy(), EMM_Grid3D::getElementsNumber(), EMM_RealField::getSize(), CORE_Object::getThread(), EMM_RealField::initField(), EMM_Input::loadFieldFromFile(), M, MAX_OPERATORS, mF, mH, mHop, mLLFunction, mM, mMatters, mMesh, mMInitialData, mMInitialDataFile, mOperators, EMM_Matter::Ms, 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().


|
inline |
discretize the problem
It :
and
of the landau lifschitz function for each cell if not uniformReferenced by EMM_GaussLegendreRelaxation::discretize(), and getOutputPath().

|
inline |
get the backups number
References mBackupsNumber.
Referenced by EMM_Input::restoreBackup().

|
inline |
get the backup step
References mBackupStep, toString(), and tString.

|
inherited |
return the class name of the object
References tString.
Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().

return the class name of the object
| identityString | the identity string of the object |
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineprotected |
|
inlinestatic |
return the energie number
|
inline |
return the energy
References mEs.
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), EMMH_Hysteresis::run(), and EMM_Output::saveRelaxation().

|
inlineprotected |
|
inlinestaticinherited |
get the epsilon value for T type
|
inline |
return the evolution scheme between M & opertaor fields
References mEvolutionScheme.
Referenced by EMM_LandauLifschitzODE::computeFieldsAtTime(), and EMM_LandauLifschitzRelaxation::computeFieldsAtTime().

|
inlinestaticinherited |
get the epsilon value for tFloat type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the identity string of the object of the form className_at_address
References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.
Referenced by MATH_GaussLegendreIntegration::copy(), EMM_MultiScaleGrid::initialize(), CORE_Object::isInstanceOf(), CORE_Object::printObjectsInMemory(), MATH_Matrix::toString(), EMMG_SLPeriodicMultiScale::toString(), EMM_Stepper::toString(), EMM_AnisotropyDirectionsField::toString(), EMM_BlockMassMatrix::toString(), CORE_Object::toString(), EMM_Tensors::toString(), EMM_MultiScaleGrid::toString(), EMM_MatterField::toString(), EMM_Grid3D::toString(), and toString().


|
inlinestaticinherited |
get the infinity for T type
return the information relativly to ret code of the integrate method
| retCode | : the return code of the relaxation |
References MIN_CODE.
|
inlinestaticinherited |
get the epsilon value for tLDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the infinity value for tDouble type
|
inline |
get adimensionized magnetic excitation at time 0 of time step
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), computeMagneticExcitationField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMMH_Hysteresis::run(), and EMM_Output::saveVTI().

|
inline |
get adimensionized magnetic excitation at time 0 of time step
References computeMagneticExcitationField(), and computeMagnetizationExcitationField().

|
inline |
return the adimensionized magnetisation field associated to the problem for reading at time 0 of the current time step
Referenced by computeEnergy(), EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), computeMagneticExcitationField(), EMM_LandauLifschitzRelaxation::computeMagnetizationFieldAtTime(), computeMeanMagnetizationField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_GaussLegendreRelaxation::discretize(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_DisplacementFEMOperator::resetToInitialState(), EMM_DisplacementOperator::resetToInitialState(), EMM_DisplacementOperator::restore(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), and EMM_Output::saveVTI().

|
inline |
return the adimensionized magnetizaton field associated to the problem for writing at time 0 of the current time step
|
inline |
get the magnetization variation field with respect to time at time 0 of the current time step
. Referenced by EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), EMM_LandauLifschitzRelaxation::computeMagnetizationFieldAtTime(), EMM_OptimalTimeStep::computeOptimalTimeStep(), and EMM_LandauLifschitzRelaxation::integrateMagnetizationFieldAtTime().

|
inline |
get the magnetization variation field with respect to time at time 0 of the current time step
.
|
inline |
get the number of mage,ntozed elements
Referenced by EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), and EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime().

|
inline |
return the matter index for each cell for reading
Referenced by EMM_MinimalExchangeOperator::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DisplacementFVMOperator::discretize(), EMM_DisplacementOperator::discretize(), and EMM_Output::saveVTI().

|
inline |
return the matter index for each cell for writing
|
inlinestaticinherited |
get the max value for tChar type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for the tFlag type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tFloat type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for the array/vector indexing type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tInt type
Referenced by MATSGN_FFT::fastFourierTransform3D_FFTW(), and CORE_Test::testType().

|
inlinestaticinherited |
get the max value for the integer type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tLDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tLInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for the real type
Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tSInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tUChar type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get 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().

|
inlinestaticinherited |
get the max value for tUInt type
Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().

|
inlinestaticinherited |
get 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().

|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tULLInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the max value for tUSInt type
Referenced by CORE_Test::testType().

|
inline |
return the mesh associated to the problem for reading
Referenced by computeEnergyTimeDerivative(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), computeMeanField(), computeMeanMagnetizationField(), EMM_StaticMagneticTensorOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_StaticMagnetostrictionOperator::discretize(), EMM_Operator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMM_DisplacementFVMOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_ZeemanOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_DisplacementOperator::discretize(), EMM_LandauLifschitzODE_RKd::integrateMagnetizationFieldAtTime(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVMOperator::resetToInitialState(), EMM_ZeemanOperator::resetToInitialState(), EMM_DisplacementOperator::resetToInitialState(), and EMM_Output::saveVTI().

|
inline |
return the mesh associated to the problem for writing
|
inlinestaticinherited |
get the min value for tChar type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for the tFlag type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tFloat type
Referenced by CORE_Test::testType().

|
inline |
get minimum energy variation under which the relaxation is supposed to be reached
References computeEnergy(), mMinEnergyVariation, and tReal.

|
inline |
get minimum time step under which the relaxation process is supposed to be reached
References getTime(), getTimeStep(), getTimeStepsNumber(), mMinDt, tReal, and tUInteger.

|
inlinestaticinherited |
get the min value for the array/vector indexing type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for the integer type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tLDouble type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tLInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tLLInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for the real type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tSInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tUChar type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for difference the array/vector indexing type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tUInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for the unsigned integer type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tULInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tULLInt type
Referenced by CORE_Test::testType().

|
inlinestaticinherited |
get the min value for tUSInt type
Referenced by CORE_Test::testType().

|
inline |
get the operator at index for reading
| index | index of the operator in [0,getOperatorsNumber()[ |
References null, and CORE_Integer::toString().

|
inline |
get the operator at index for writing
| index | index of the operator in [0,getOperatorsNumber()[ |
References computeOperatorsFieldsAtTime(), initializeOperators(), isAffine(), null, resetOperatorsToInitialState(), resetToInitialState(), tBoolean, tFlag, CORE_Integer::toString(), tReal, and updateOperatorsAtNextTimeStep().

|
inline |
return the operators vector
References mOperators.
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), EMM_GradGaussLegendreRelaxation::computeMagneticExcitationFieldGradient(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), and EMM_Output::saveVTI().

|
inline |
|
inline |
return the number of operators
|
inlinestaticinherited |
|
inline |
get the output path in which the files are generated
References adimensionize(), discretize(), mOutputPath, and tBoolean.

|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().

|
inline |
|
inlinestaticinherited |
get 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().

|
inlinestaticinherited |
get the infinity value
Referenced by BrentFunction::BrentFunction(), EMM_OperatorsTest::compareDiscretizedData(), EMM_IterativeTimeStep::EMM_IterativeTimeStep(), EMM_SLElementaryDemagnetizedMatrix::Kxy(), NRFunction::NRFunction(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), and CORE_Test::testType().

|
inlineinherited |
get the shared pointer of this class into p
| p | : shared pointer of the class This |
Referenced by CORE_Map< Key, Value >::getSharedPointer(), CORE_ArrayList< tString >::getSharedPointer(), EMM_Array< tCellFlag >::getSharedPointer(), CORE_Array< tCellFlag >::getSharedPointer(), CORE_MorseArray< tUChar >::getSharedPointer(), CORE_Vector< T >::getSharedPointer(), and CORE_Object::printObjectsInMemory().

|
inlineinherited |
get the shared pointer of this class into p
| p | : shared pointer of the class This |
|
inline |
get the sigma parameters
for all cell i. References CORE_Array< T >::get().
Referenced by computeEnergy(), EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), computeEnergyTimeDerivative(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivatives(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), computeFunction(), computeGradFunction(), computeMagneticExcitationField(), computeMagneticExcitationFieldAndEnergies(), EMM_GradGaussLegendreRelaxation::computeMagneticExcitationFieldGradient(), computeMagnetizationExcitationField(), EMM_LandauLifschitzRelaxation::computeMagnetizationFieldAtTime(), computeMeanMagnetizationField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), 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().


|
inline |
get the time descriptor for reading
Referenced by adimensionize(), and EMMH_Hysteresis::run().

|
inline |
get the time descriptor for writing
References integrate(), tBoolean, and tSInt.

|
inlinestaticinherited |
get the profilier
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(), 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(), 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().

|
pure virtual |
return the current time
Implemented in EMM_LandauLifschitzRelaxation, and EMM_LandauLifschitzODE.
Referenced by getMinimumTimeStep(), and EMM_Output::saveRelaxation().

|
pure virtual |
return the current time step
Implemented in EMM_LandauLifschitzRelaxation, and EMM_LandauLifschitzODE.
Referenced by getMinimumTimeStep(), EMMH_Hysteresis::run(), and EMM_Output::saveRelaxation().

|
pure virtual |
return the computed time steps
Implemented in EMM_LandauLifschitzRelaxation, and EMM_LandauLifschitzODE.
Referenced by getMinimumTimeStep(), EMMH_Hysteresis::run(), and EMM_Output::saveRelaxation().

|
inlinestaticinherited |
|
inline |
get mutable adimensionized magnetic excitation working field
Referenced by EMM_LandauLifschitzRelaxation::computeEnergyAtTime(), EMM_LandauLifschitzRelaxation::computeEnergyTimeDerivativeAtTime(), EMM_GradGaussLegendreRelaxation::computeEnergyTimeDerivativesAtTime(), and EMM_GradGaussLegendreRelaxation::computeMagneticExcitationFieldGradient().

|
protected |
initialize the data of operator field at t=0 from M
| sigma | weigh of each cell |
| M | magnetization at t=0 |
Referenced by getOperator().

|
pure virtual |
integrate the system over the time
| isRestoring | if true, compute the integratio of the landau-lifshcitz system over the time from the last backup |
| retCode | the return code of the method
|
Implemented in EMM_LandauLifschitzRelaxation, and EMM_LandauLifschitzODE.
Referenced by getStepper(), and EMMH_Hysteresis::run().

|
inlinestaticinherited |
return true if the machine is a 32 bits machine
References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.
Referenced by CORE_Test::testType().


|
inlinestaticinherited |
return true if the machine is a 64 bits machine
Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().

| tBoolean EMM_LandauLifschitzSystem::isAffine | ( | ) | const |
return true if the system has only affine operators
References mOperators.
Referenced by getOperator().

|
inline |
|
inlineinherited |
test if the clas T is an instance of this class
References null.
Referenced by MATH_ToeplitzTest::toeplitzTest().

test if the object is an instance of className
| name | name of the class |
References CORE_Object::getIdentityString().

|
inline |
get if the log is printed in log file
References mIsLogPrinted, printLog(), tReal, tUIndex, and tUInteger.

|
inline |
return true if M is permanent
|
inlinestaticinherited |
get if the memory checking is used
References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.
Referenced by main().


|
inlinestaticinherited |
get the output
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(), 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().

|
staticinherited |
return the string representation of a pointer
| obj | : oject to get the string pointer |
References tString.
Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().

| 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 |
print the log
| timeStep | the iterations number |
| t | the current time |
| stepperData | : data of the stepper |
| nMagnetizedElements | the number of magnetized elements |
| Es | energies : total energy at 0 + energy for operator at index i in [1,nOperators] |
| dE_dt | variation of energy with respect to time |
| DeltaE_DeltaT | : the effective variation of energy between 2 succesive iterations |
| meanM | the man of the magnetization field |
| meanH | the man of the magnetic excitation field |
References mOperators, CORE_Object::out(), CORE_Out::print(), CORE_Out::println(), tFlag, CORE_Real::toString(), CORE_Integer::toString(), and tReal.
Referenced by isLogPrinted().


|
staticinherited |
print object in memory
| f | : output to print the objects in memory |
References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.

|
inlinestaticinherited |
print object in memory in the standart output
Referenced by CORE_Object::is32Architecture(), and main().

|
virtual |
initialize the problem
It resets to initial state all the operator data
References CORE_Object::getThread(), mOperators, CORE_Thread::startChrono(), CORE_Thread::stopChrono(), and tBoolean.
Referenced by getOperator(), resetToInitialState(), and EMMH_Hysteresis::run().


|
inlinestaticinherited |
|
inline |
reset the reverse time relation
References mStepper, and null.
Referenced by setStepper().

|
inlinestaticinherited |
| tBoolean EMM_LandauLifschitzSystem::resetToInitialState | ( | ) |
reset to initial state
It resets to initial state all the operator data & M
References EMM_RealField::copy(), EMM_Grid3D::getElementsNumber(), EMM_RealField::getSize(), EMM_RealField::initField(), EMM_Input::loadFieldFromFile(), M, mM, mMesh, mMInitialData, mMInitialDataFile, EMM_RealField::normalize(), resetOperatorsToInitialState(), tDimension, and EMM_RealField::unmagnetized().
Referenced by getOperator().


|
inline |
set the backups number
| n | the number of backups >0 |
|
inline |
set the backup steps to save relaxation
| n | the step for backup |
|
inline |
set the evolution scheme
| f | : evolution flag in
|
|
inline |
set the initialization data for magnetization field
| dataFile | the file name of the description field file |
Referenced by EMMH_Hysteresis::run(), and EMMH_Hysteresis::setInitialMagnetizationField().

|
inline |
set the initialization data for magnetization field
| data | the uniform init magnetization |
References EMM_RealField::setValue().

|
inline |
set the initialization data for magnetization field
| M0 | : x-coordinate of initial magnetization |
| M1 | : y-coordinate of initial magnetization |
| M2 | : z-coordinate of initial magnetization |
References EMM_RealField::setValue(), and tDimension.

|
inline |
set the initialization data for magnetization field
| data | the uniform init magnetization |
|
inline |
set if the backup is enabled
| v | true to enable the backup process |
Referenced by EMMH_Hysteresis::run().

|
inline |
set if the log is printed in log file
| v | true to enable the log printing |
Referenced by EMMH_Hysteresis::run().

|
inlinestaticinherited |
set if the memory checking is used
| v | : true to check memory |
Referenced by main().

|
inline |
set the mesh
| mesh | : the mesh to set |
References null.
|
inline |
set minimum energy variation under which the relaxation is supposed to be reached
| v | the minimum energy variation |
|
inline |
set minimum time step under which the relaxation process is supposed to be reached
| v | min time step |
|
inlinestaticinherited |
|
inline |
set the output path
| currentPath | the curent path from whih the path is defined |
| path | the output path |
| prefix | the prefix of the file |
References CORE_File::isAbsolutePath(), mOutputPath, and CORE_File::PATH_SEPARATOR.

|
inline |
set the reverse time relation
| time | : the time to set |
References CORE_Object::getThis(), null, and resetStepper().

|
inlineprotectedinherited |
set this weak shared pointer called toDoAfterThis setting method
| p | : shared pointer of the class This |
References CORE_Object::toDoAfterThisSetting().

|
inlinestaticinherited |
set the thread
| thread | the shared pointer to the thread |
References null.
Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().

|
private |
|
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().

|
virtual |
turn the class into a string
Reimplemented from CORE_Object.
References CORE_Object::getIdentityString(), mLLFunction, mM, mMatters, mMesh, mOperators, mStepper, tString, and tUIndex.
Referenced by getBackupStep(), and EMMH_Hysteresis::run().


|
protected |
update the operator at next time time with respect of the value of the magnetization field at next time
| dt | the time step |
| sigma | the magnetized weight of each cell |
| Mt | the magnetization field at each point at next time step |
call the method EMM_MagneticExcitationOperator::updateAtNextTimeStep() for each operator
References mOperators, and tBoolean.
Referenced by getOperator().

|
static |
|
static |
|
static |
|
static |
|
staticinherited |
|
static |
Referenced by computeEnergy(), EMM_LandauLifschitzODE::computeFieldsAtTime(), EMM_LandauLifschitzRelaxation::computeFieldsAtTime(), computeMeanMagnetizationField(), discretize(), EMM_GaussLegendreRelaxation::getIntermediateMagnetizationTimeDerivativeField(), EMM_GradGaussLegendreRelaxation::getMagnetizationFieldTimeDerivativeGradient(), EMM_TaylorExpansionRelaxation::New(), and resetToInitialState().
|
static |
|
static |
|
staticprivate |
Referenced by discretize().
|
static |
|
private |
Referenced by getBackupsNumber().
|
private |
Referenced by getBackupStep().
|
private |
Referenced by getEnergyTimeDerivative().
|
private |
Referenced by getEnergies(), getEnergy(), and getEnergyTimeDerivative().
|
private |
Referenced by getEvolutionScheme().
|
private |
Referenced by discretize().
|
private |
Referenced by discretize().
|
mutableprivate |
|
static |
Referenced by getInformation().
|
private |
Referenced by isBackupEnabled().
|
private |
Referenced by isLogPrinted().
|
private |
Referenced by discretize(), EMM_LandauLifschitzSystem(), and toString().
|
private |
Referenced by discretize(), resetToInitialState(), and toString().
|
private |
Referenced by adimensionize(), discretize(), and toString().
|
private |
Referenced by adimensionize(), discretize(), resetToInitialState(), and toString().
|
private |
Referenced by getMinimumTimeStep().
|
private |
Referenced by getMinimumEnergyVariation().
|
private |
Referenced by discretize(), and resetToInitialState().
|
private |
Referenced by discretize(), and resetToInitialState().
|
private |
Referenced by adimensionize(), computeEnergy(), computeMagneticExcitationField(), computeMagneticExcitationFieldAndEnergies(), computeMagnetizationExcitationField(), computeOperatorsFieldsAtTime(), discretize(), getOperators(), isAffine(), printLog(), resetOperatorsToInitialState(), toString(), and updateOperatorsAtNextTimeStep().
|
static |
|
private |
Referenced by getOutputPath(), and setOutputPath().
|
private |
Referenced by getPrefix().
|
private |
Referenced by discretize().
|
private |
Referenced by resetStepper(), and toString().
|
staticinherited |
Referenced by EMM_MatterField::adimensionize(), EMM_MagnetostrictionOperator::adimensionize(), EMM_Matter::adimensionize(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitation(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_CubicAnisotropyOperator::ComputeMagneticExcitationGradient(), EMM_Test::createMatters(), EMM_MatterField::getElasticTensorAdimensionizedParameter(), and EMM_MatterTest::testAdimensionize().
|
staticinherited |
Referenced by EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradAlmostNullUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_SSGROperator::computeGradAlmostNullUAtFaceByStokesIntegration(), EMM_DisplacementFVM_VOGGROperator::computeGradAlmostNullUAtNextCellByOstrogradskiGreenIntegration(), EMM_DisplacementFVM_VTEGROperator::computeGradUAtCellByTaylorExpansionWithNeumannInterpolation(), EMM_DisplacementFVM_VGROperator::computeGradUAtFace(), EMM_DisplacementFVM_SSGROperator::computeGradUAtFaceByStokesIntegration(), EMM_DisplacementFVM_STEGROperator::computeGradUAtFaceByTaylorExpansion(), EMM_DisplacementFVM_Interpolator::interpolateUAtEdge(), and EMM_DisplacementFVM_Interpolator::interpolateUAtVertices().
|
static |
|
static |
|
static |
|
static |
|
staticprivate |
|
staticinherited |
|
staticinherited |
Referenced by EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_RealField::fitToSize(), EMM_MassMatrix::getElementVolume(), EMM_CanonicalMassMatrix::isSymmetric(), EMM_BlockMassMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_RealField::setValue(), EMM_CanonicalMassMatrix::solve(), EMM_BlockMassMatrix::solve(), EMM_BlockMassMatrix::toString(), and EMMG_RealField::wedge().
|
staticinherited |
1.8.13