C++ main module for emicrom Package
1.0
|
This class describes the magnetostriction operator of the landau lifshcitz system EMM_LandauLifschitzSystem. More...
#include <EMM_MagnetostrictionOperator.h>
Public Member Functions | |
virtual tBoolean | isAffine () const |
return true if the operator is either constant or linear More... | |
virtual tBoolean | isGradientComputationable () const |
return true if the gradient of the magnetic excitation is computationable More... | |
virtual tULLInt | getMemorySize () const |
return the memory size in byte More... | |
void | setIsMagneticAdimension (const tBoolean &v) |
set if the adimensionment of the equation is magnetic More... | |
void | setDisplacementMethod (const tString &m) |
set the displacement method "FEM" or "FVM" ("FDM" deprecated) More... | |
void | setDisplacementOperator (SP::EMM_DisplacementOperator op) |
set the reverse relation Displacement operator More... | |
void | resetDisplacementOperator () |
reset the reverse relation Displacement operator More... | |
const EMM_DisplacementOperator & | getDisplacementOperator () const |
get the displacement operator More... | |
EMM_DisplacementOperator & | getDisplacementOperator () |
get the displacement operator More... | |
virtual tUSInt | getDataFieldsNumber () const |
get the number of field used in the operator More... | |
virtual tBoolean | getDataFieldSpace (const tUSInt &index, tString &dataName, tFlag &supportType, tString &dFieldType, tUIndex &n, tDimension &dim) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const float *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const double *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | getDataField (const tUSInt &index, tString &dataName, tUIndex &n, tDimension &dim, const long double *&values) const |
get the data field at index for saving data in vtk,txt,... files. More... | |
virtual tBoolean | backup (const tString &prefix, const tString &suffix, const tString &ext) const |
backup of the operator data into file(s) used for restoring More... | |
virtual tBoolean | restore (const EMM_LandauLifschitzSystem &system, const tString &prefix, const tString &suffix, const tString &ext) |
restore the operator data from file(s) More... | |
virtual tBoolean | computeFieldsAtTime (const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0) |
compute the fields of operator at time More... | |
virtual tBoolean | updateAtNextTimeStep (const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &Mt) |
update the data of operator at next time step More... | |
virtual void | adimensionize (const tReal &Le, const tReal &Ms, const tReal &T, const tReal &L) |
adimensionize the operator More... | |
virtual tBoolean | discretize (const EMM_LandauLifschitzSystem &system) |
discretize and initialize the operator depending on method More... | |
virtual tBoolean | resetToInitialState (const EMM_LandauLifschitzSystem &system) |
reset the operator at initial state t=0 More... | |
virtual tBoolean | computeMagneticExcitationFieldGradient (const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, const tReal *D, tReal *gradH) const |
compute the gradient of the magnetic excitation field at M in the direction D More... | |
virtual void | computeMagneticExcitationField (const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &H) const =0 |
compute the magnetic excitation field More... | |
virtual tBoolean | computeMagneticExcitationFieldGradient (const EMM_RealArray &sigma, const EMM_RealField &M, const EMM_RealField &D, EMM_RealField &gradH) const =0 |
compute the gradient of the magnetic excitation field at M in the direction D More... | |
tReal | computeMagneticExcitationFieldAndEnergy (const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, EMM_RealField &Ht) const |
compute the energy of the operator More... | |
virtual tReal | computeEnergy (const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, EMM_RealField &W) const =0 |
compute the energy E of the operator More... | |
virtual tString | getName () const |
return an human reading name of the operator More... | |
const tBoolean & | isCubicVolume () const |
return the true if the element is cubic More... | |
const tReal & | getElementVolume () const |
return the adimensionized volume of the element More... | |
void | getSharedPointer (SP::CORE_Object &p) |
get the shared pointer of this class into p More... | |
void | getSharedPointer (SPC::CORE_Object &p) const |
get the shared pointer of this class into p More... | |
tString | getClassName () const |
return the class name of the object More... | |
tString | getIdentityString () const |
return the identity string of the object of the form className_at_address More... | |
tString | getPointerAddress () const |
return the identity string of the object More... | |
template<class T > | |
tBoolean | isInstanceOf () const |
test if the clas T is an instance of this class More... | |
tBoolean | isInstanceOf (const tString &name) const |
test if the object is an instance of className More... | |
Static Public Member Functions | |
static 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 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_MagnetostrictionOperator (void) | |
create More... | |
virtual | ~EMM_MagnetostrictionOperator (void) |
destroy More... | |
virtual void | computeMagneticExcitationField (const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, tReal *H) const |
compute the normalized excitation magnetic field at M More... | |
tReal | computeEnergy (const tReal &t, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M) const |
compute the energy of the magnetostriction operator at current displacement and velocity More... | |
virtual tString | toString () const |
turn the operator into string More... | |
virtual tReal | computeEnergyWithMagneticExcitation (const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, const EMM_RealField &Ht) const =0 |
compute the energy E of the operator 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_MagnetostrictionOperator) | |
Private Attributes | |
tReal | mMagneticExcitationAdimensionizedParameter |
tBoolean | mIsMagneticAdimension |
SP::EMM_DisplacementOperator | mDisplacementOperator |
This class describes the magnetostriction operator of the landau lifshcitz system EMM_LandauLifschitzSystem.
The magnetostriction magnetic excitation at the l-coordinate is modelized as follow
We assume a linear dependence of the stress tensor (expressed in Pa) with respect of the elastic strain tensor by the inverse form of Hook’s linear law : when :
with
The stress tensor and displacement satisfies the conservation of momentum equation with respect to time :
which is modelized by the EMM_DisplacementOperator with where and
We suppose the limit condition on and on where n is the normal of the boundary.
By denoting:
we obtain:
when U verifies the conservation of momentum equation:
We normalize the variables by , , , , and where L is the reference length, is the reference magnetization at saturation and is the magnetization at saturation of the point where m is computed, , and .
u verifies the equation :
where and .
and
.
with
To compute the adimensionized energy defined by , we decompose with :
To compute the energy corresponding to the term of , we can prove that, if we denote by , we have :
So .
By definition , so
To compute the energy corresponding to the term of , coupled with the displacement adimensionized equation of u : gives :
By multipliing the displacement adimensionised equation by over all the domain, we obtain (c is independent from time) :
Then, we have
But
So
So .
So we using the definition of energy ,
.
we can conclude that
The magnetostriction energy is :
On the cell i, the p-coordinate of the magnetostriction magnetic excitation is computed by the formula in the adimensionized non cubic cell where is :
.
The gradient of at m in the direction is, if we suppose the variation of u with respect to m is negligeable (and as it is not, it is not implemented):
where
.
Now if we use a magnetic normalisation of with , we choose so that
.
and
If we use an elastic normalisation of with , we choose so that: .
We have the relation and
For example in an hyper-elastic bar of size 4 micron discretized with 32 elements, when
For the both adimensionments :
We have for the magnetic adimensionment:
We have for the elastic adimensionment:
The factor between the 2 energies depending on the approximation is
|
protected |
create
References mIsMagneticAdimension, and mMagneticExcitationAdimensionizedParameter.
|
protectedvirtual |
destroy
|
inlinevirtual |
adimensionize the operator
[in] | Le | : common adimensionization for elastic tensor |
[in] | Ms | : common magnetization at saturation |
[in] | T | : caracterictic time |
[in] | L | : caracteristic length |
adimensionize the associated displacement operator
Reimplemented from EMM_Operator.
References computeMagneticExcitationField(), discretize(), EMM_Object::Mu0, resetToInitialState(), tBoolean, tDimension, tReal, and tUIndex.
|
virtual |
backup of the operator data into file(s) used for restoring
prefix | : common prefix of the saving files |
suffix | : common suffix of the saving files |
ext | : common extension of the saving files |
Reimplemented from EMM_Operator.
References mDisplacementOperator.
Referenced by getDataField().
|
pure virtualinherited |
compute the energy E of the operator
t | time in [0,dt[ where dt will be the next time step |
sigma | the weight of each element |
Mt | the normalized magnetization field |
W | a working array |
compute the energy E which verifies the general relation:
Implemented in EMM_ZeemanOperator, EMMG_AnisotropyOperator, EMMG_StaticMagneticTensorOperator, EMM_MagneticExcitationLinearOperator, EMMG_CubicAnisotropyOperator, and EMMG_MagnetostrictionOperator.
Referenced by EMM_MagneticExcitationOperator::computeMagneticExcitationFieldAndEnergy().
|
protected |
compute the energy of the magnetostriction operator at current displacement and velocity
t | the time in [0,dt[ where dt is the time step |
nCells | : number of cells |
dim | dimension of each point of mesh |
sigma | the weight of each cell |
M | the magnetization field values |
References EMM_DisplacementOperator::computeEnergy(), EMM_4Tensors::doubleDotCrossSquaredScalar(), getDisplacementOperator(), EMM_Operator::getElementVolume(), EMM_DisplacementOperator::getLambdaMDoubleDotLambdaEDoubleDotLambdaM(), CORE_Array< T >::getSize(), CORE_Object::getThread(), mMagneticExcitationAdimensionizedParameter, CORE_Thread::startChrono(), tBoolean, tReal, and tString.
Referenced by EMMG_MagnetostrictionOperator::computeEnergy(), EMMG_MagnetostrictionOperator::computeEnergyWithMagneticExcitation(), and computeMagneticExcitationFieldGradient().
|
protectedpure virtualinherited |
compute the energy E of the operator
t | time in [0,dt[ where dt will be the next time step |
sigma | the weight of each element |
Mt | : the normalized magnetization field |
Ht | : the magnetic excitation of the operator alreday computed |
compute the energy E which verifies the general relation:
Implemented in EMM_ZeemanOperator, EMM_MagneticExcitationLinearOperator, EMMG_AnisotropyOperator, EMMG_StaticMagneticTensorOperator, EMMG_CubicAnisotropyOperator, and EMMG_MagnetostrictionOperator.
Referenced by EMM_MagneticExcitationOperator::computeMagneticExcitationFieldAndEnergy().
|
inlinestaticinherited |
compute epsilon
|
virtual |
compute the fields of operator at time
t | the time |
order | : order of integration of the fields 1 or 2 |
sigma | the magnetized weight of each cell |
dM_dt0 | the variation of M at time 0 |
M0 | the M at time 0 |
Implements EMM_Operator.
References mDisplacementOperator.
Referenced by getDataField().
|
pure virtualinherited |
compute the magnetic excitation field
sigma | the weight of each cell |
M | the magnetization field |
H | the temporary computed excitation magnetic field |
Implemented in EMM_ZeemanOperator, EMMG_SLDemagnetizedOperator, EMMG_DemagnetizedOperator, EMMG_UniaxialAnisotropyOperator, EMMG_LinearAnisotropyOperator, EMMG_FullExchangeOperator, EMMG_MinimalExchangeOperator, EMMG_AnisotropyOperator, EMMG_MagnetostrictionOperator, EMMG_StaticMagneticTensorOperator, EMMG_StaticMagnetostrictionOperator, EMMG_PlanarAnisotropyOperator, and EMMG_CubicAnisotropyOperator.
Referenced by EMM_MagneticExcitationOperator::computeMagneticExcitationFieldAndEnergy(), EMM_MagneticExcitationLinearOperator::computeMagneticExcitationFieldGradient(), and EMM_MagneticExcitationOperator::~EMM_MagneticExcitationOperator().
|
protectedvirtual |
compute the normalized excitation magnetic field at M
nCells | : number of cells |
dim | dimension of each point of mesh |
sigma | the weight of the normalized magnetization for each cell |
M | normalized magnetization field |
H | return excitation magnetic field |
It computes when u is the current displacement
.
.
The algorithm to compute H is as follow:
References CORE_Array< T >::getSize(), CORE_Object::getThread(), mDisplacementOperator, mMagneticExcitationAdimensionizedParameter, CORE_Thread::startChrono(), CORE_Thread::stopChrono(), tBoolean, and tReal.
Referenced by adimensionize(), and EMMG_MagnetostrictionOperator::computeMagneticExcitationField().
|
inlineinherited |
compute the energy of the operator
t | time in [0,dt[ where dt will be the next time step |
sigma | weight of each cell |
Mt | the magnetization field |
Ht | the return magnetic excitation field |
References EMM_MagneticExcitationOperator::computeEnergy(), EMM_MagneticExcitationOperator::computeEnergyWithMagneticExcitation(), EMM_MagneticExcitationOperator::computeMagneticExcitationField(), and tReal.
Referenced by EMM_MagneticExcitationLinearOperator::computeEnergy(), and EMMG_AnisotropyOperator::computeEnergy().
|
pure virtualinherited |
compute the gradient of the magnetic excitation field at M in the direction D
sigma | the weight of each cell |
M | the magnetization field |
D | the gradient direction |
gradH | : the return gradient of the magnetic excitation field at M in the direction D |
Implemented in EMM_ZeemanOperator, EMM_MagneticExcitationLinearOperator, EMMG_AnisotropyOperator, EMMG_MagnetostrictionOperator, EMMG_StaticMagneticTensorOperator, and EMMG_CubicAnisotropyOperator.
Referenced by EMM_MagneticExcitationOperator::~EMM_MagneticExcitationOperator().
|
inlinevirtual |
compute the gradient of the magnetic excitation field at M in the direction D
nCells | : number of cells |
dim | dimension of each point of mesh |
sigma | the weight of each cell |
M | the magnetization field values |
D | the gradient direction values |
gradH | : the return gradient of the magnetic excitation field at M in the direction D values |
References computeEnergy(), tDimension, toString(), tReal, tString, and tUIndex.
|
virtual |
discretize and initialize the operator depending on method
system | landau lifschitz system used to discretize the operator |
Reimplemented from EMM_Operator.
References EMM_Operator::discretize(), mDisplacementOperator, null, CORE_Object::out(), CORE_Out::println(), and tReal.
Referenced by adimensionize().
|
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 |
|
inlinevirtual |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
|
inlinevirtual |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
|
inlinevirtual |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
values | values of the field |
Reimplemented from EMM_Operator.
References backup(), computeFieldsAtTime(), restore(), tBoolean, tFlag, tReal, tString, and updateAtNextTimeStep().
|
inlinevirtual |
get the number of field used in the operator
Reimplemented from EMM_Operator.
|
inlinevirtual |
get the data field at index for saving data in vtk,txt,... files.
index | index of the field in [0,getDataFieldsNumber()[ |
dataName | name of the field |
supportType | : mesh element whre the field is applied EMM_Grid3D::ELEMENT; || EMM_Grid3D::POINT |
dFieldType | : type of the field double,float,int,.... |
n | number of element of the field |
dim | dimension of the field in [1,3[ |
Reimplemented from EMM_Operator.
|
inline |
get the displacement operator
Referenced by computeEnergy().
|
inline |
get the displacement operator
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the adimensionized volume of the element
References EMM_Operator::mElementVolume.
Referenced by EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_ZeemanOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_MagneticExcitationLinearOperator::computeEnergyWithMagneticExcitation(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_ZeemanOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeMagneticStress(), and EMM_DisplacementOperator::computePotentialEnergy().
|
inlinestaticinherited |
get the epsilon value for T type
|
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 EMM_LandauLifschitzSystem::toString().
|
inlinestaticinherited |
get the infinity for T type
|
inlinestaticinherited |
get the epsilon value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tDouble type
|
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().
|
inlinevirtual |
return the memory size in byte
Reimplemented from EMM_Operator.
References EMM_Operator::getMemorySize().
|
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().
|
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().
|
inlinevirtualinherited |
return an human reading name of the operator
References CORE_Object::getClassName(), EMM_Operator::isAffine(), EMM_Operator::isGradientComputationable(), tBoolean, tString, and tUIndex.
|
inlinestaticinherited |
|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().
|
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 |
|
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(), 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(), computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().
|
inlinestaticinherited |
|
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().
|
inlinevirtual |
return true if the operator is either constant or linear
Implements EMM_Operator.
|
inlineinherited |
return the true if the element is cubic
References EMM_Operator::mIsCubic.
Referenced by EMM_FullExchangeOperator::discretize(), and EMM_MinimalExchangeOperator::discretize().
|
inlinevirtual |
return true if the gradient of the magnetic excitation is computationable
Implements EMM_Operator.
|
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().
|
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(), 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().
|
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().
|
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().
void EMM_MagnetostrictionOperator::resetDisplacementOperator | ( | ) |
reset the reverse relation Displacement operator
References mDisplacementOperator, and null.
Referenced by setDisplacementOperator(), and setIsMagneticAdimension().
|
inlinestaticinherited |
|
inlinestaticinherited |
|
virtual |
reset the operator at initial state t=0
system | the data to initialize the operator |
Implements EMM_Operator.
References mDisplacementOperator.
Referenced by adimensionize().
|
virtual |
restore the operator data from file(s)
system | : general data to restore the operator |
prefix | : common prefix of the saving files |
suffix | : common suffix of the saving files |
ext | : common extension of the saving files |
Reimplemented from EMM_Operator.
References mDisplacementOperator.
Referenced by getDataField().
void EMM_MagnetostrictionOperator::setDisplacementMethod | ( | const tString & | m | ) |
set the displacement method "FEM" or "FVM" ("FDM" deprecated)
m | the displacement method either "FEM" or "FVM" |
References CORE_String::New().
Referenced by setIsMagneticAdimension().
void EMM_MagnetostrictionOperator::setDisplacementOperator | ( | SP::EMM_DisplacementOperator | op | ) |
set the reverse relation Displacement operator
op | the displacement operator |
References mDisplacementOperator, null, and resetDisplacementOperator().
Referenced by setIsMagneticAdimension().
|
inline |
set if the adimensionment of the equation is magnetic
v | is magnetic adimension |
References resetDisplacementOperator(), setDisplacementMethod(), setDisplacementOperator(), and tString.
|
inlinestaticinherited |
set if the memory checking is used
v | : true to check memory |
Referenced by main().
|
inlinestaticinherited |
|
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().
|
protectedvirtual |
turn the operator into string
Reimplemented from CORE_Object.
References CORE_Object::toString().
Referenced by computeMagneticExcitationFieldGradient().
|
virtual |
update the data of operator at next time step
dt | the time step (if dt==0) upadte the field at initialization of the relaxation |
sigma | the magnetized weight of each cell |
Mt | the magnetization field at each point at next time step |
Implements EMM_Operator.
References mDisplacementOperator.
Referenced by getDataField().
|
staticinherited |
|
private |
|
private |
Referenced by EMM_MagnetostrictionOperator().
|
private |
Referenced by computeEnergy(), computeMagneticExcitationField(), and EMM_MagnetostrictionOperator().
|
staticinherited |
Referenced by EMM_MatterField::adimensionize(), 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().
|
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 |