C++ main module for emicrom Package
1.0
|
This class describes the building of fields on multiscale grid initialized by the initialize() method. The magnetic excitation field is computed by the method computeMultiGridExcitationField() More...
#include <EMM_MultiScaleGrid.h>
Public Member Functions | |
EMM_MultiScaleGrid (void) | |
create More... | |
virtual | ~EMM_MultiScaleGrid (void) |
destroy More... | |
void | setToeplitzMatrix (SP::MATH_MultiLevelsToeplitzMatrix toeplitz) |
setthe toeplitz associated matrix More... | |
tUInteger | computeLevelsNumber (const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean &isXPeriodic, const tBoolean &isYPeriodic, const tBoolean &isZPeriodic) const |
compute the optimal levels number More... | |
virtual void | initialize (const tDimension &dim, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tBoolean &Px, const tBoolean &Py, const tBoolean &Pz, const tUInteger &l) |
set the discretization More... | |
const tUCInt & | getFineElementsNumberPerCoarseElement () const |
get the number of elements of the fine grid per cell of the corse grid More... | |
void | getSegmentsNumber (tUInteger &Nx, tUInteger &Ny, tUInteger &Nz) const |
get the segments number in all directions More... | |
const tUInteger * | getSegmentsNumber () const |
get the segments number per dierction More... | |
const tBoolean * | getPeriodicDirections () const |
get the periodicity per direction More... | |
void | getPeriodicDirections (tBoolean &isXPeriodic, tBoolean &isYPeriodic, tBoolean &isZPeriodic) const |
get the periodicity per direction More... | |
const tUInteger & | getLevelsNumber () const |
get the leves number More... | |
const MATH_MultiLevelsToeplitzMatrix & | getToeplitzMatrix () const |
get the toeplitz matrix More... | |
EMM_RealField & | getLevelMagnetizationField () |
get the magnetization field at level l More... | |
EMM_RealField & | getLevelUpMagnetizationField () |
get the magnetization field at level l+1 More... | |
EMM_RealField & | getZonalMagnetizationField () |
get the magnetization field at zone More... | |
virtual void | computeMultiGridExcitationField (const tUIndex &nCells, const tDimension &dim, const tReal *sigmaM, tReal *H) |
compute the magnetic excitation field by superposition of multi scale grids More... | |
virtual tString | toString () const |
return the class information in a tString 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 tBoolean | resetBlockValues (const tDimension &dim, const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, const tUInteger &iMin, const tUInteger &iMax, const tUInteger &jMin, const tUInteger &jMax, const tUInteger &kMin, const tUInteger &kMax, tReal *M) |
reset the values in a block grid [iMin,iMax[x[jMin,jMax[x[kMin,kMax[ of dimension dim per point inside a grid of size [0,Nx[x[0,Ny[x[0,Nz[ 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 tBoolean | SAVE_H_M_AT_LEVEL_1 =false |
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 | |
virtual void | computeZonalDemagnetizedFieldAndNextLevelMagnetizationField (const tUInteger &twoPowerL, const tUIndex &nCells, const tDimension &dim, const tReal *Ml, tReal *Mz, tReal *Mlp1, tReal *H0) const =0 |
compute the zonal demagnetized field added to demagnetized field at level 0 and compute the magnetization field at level l+1 More... | |
virtual void | computeZonalCenteredDemagnetizedFieldFromLevel (const tUInteger &twoPowerL, const tUIndex &nCells, const tDimension &dim, tReal *Ml, tReal *Mz, tReal *H0) const =0 |
compute the centered demagnetized field of level l outside zone anad add it to demagnetized field at level 0 More... | |
tUInteger & | getLevelComputationsNumber () |
return the number of calls of the level computations only for debug More... | |
const tUInteger & | getLevelComputationsNumber () const |
return the number of calls of the level computations only for debug 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_MultiScaleGrid) | |
Private Attributes | |
tUInteger | mN [3] |
tBoolean | mIsPeriodic [3] |
SP::MATH_MultiLevelsToeplitzMatrix | mToeplitzMatrix |
tUInteger | mLevelsNumber |
SP::EMM_RealField | mMlp1 |
SP::EMM_RealField | mMl |
SP::EMM_RealField | mMz |
tUCInt | mFineElementsNumberPerCoarseElement |
tUInteger | mLevelComputationsNumber =0 |
This class describes the building of fields on multiscale grid initialized by the initialize() method. The magnetic excitation field is computed by the method computeMultiGridExcitationField()
For building dyotic coarse grids, the number of segments in each direction must be 1 or a pair number.
For computing the excitation magnetic for periodic domain, a serial of l-dyotic grids is built: the grid of level l is included into the grid of level l+1. The grid of level l+1 is twice the grid of level l in each direction. The total magnetic excitation field is builtby supeposititon of magnetic excitation at each level
The number of levels is set to 1 for non periodic domain.
The number of levels of periodic domain must be at least 2 and at most the min(log(Nx)/log(2),log(Ny)/log(2),log(Nz)/log(2)).
The main method of the class is to compute the demagnetized field of domain at level 0 from all the periodic domain see computeMultiGridExcitationField().
The main idee of the algorithm is
The implementation of those 2 functions depends on the method :
To illustrate the methods, we use a cube of size 1 micron meshed by 8x8x8 cells. The theorically levels number is 8 as . M is set to (1,0,0) in the cube.
The following figure show the image of the 4 magnetization fields at each level for the CDG method:
The following figure show the image of the 4 demagnetized fields at each level of the CDG method:
To validate the method we use a cube of size 8 microns meshed by 64x64x64 elements to considered the same simulated periodical cube for 3 levels . M is set to (1,0,0) in the center of the cube to consider only the periodicity of the cube in the X & Y directions. We simulate the demagnetized field and we obtain the following image :
The following figure show the image of the magnetization fields for first level at first zone (all the others obtained by rotatons) for the SDG method
The following figure show the image obtains the 4 demagnetized fields at each level of the SDG method:
EMM_MultiScaleGrid::EMM_MultiScaleGrid | ( | void | ) |
create
References mIsPeriodic, mLevelsNumber, mMl, mN, tBoolean, and tUInteger.
|
virtual |
destroy
|
inlinestaticinherited |
compute epsilon
tUInteger EMM_MultiScaleGrid::computeLevelsNumber | ( | const tUInteger & | Nx, |
const tUInteger & | Ny, | ||
const tUInteger & | Nz, | ||
const tBoolean & | isXPeriodic, | ||
const tBoolean & | isYPeriodic, | ||
const tBoolean & | isZPeriodic | ||
) | const |
compute the optimal levels number
Nx | number of segments along x-direction |
Ny | number of segments along y-direction |
Nz | number of segments along z-direction |
isXPeriodic | true if the x-direction is periodic |
isYPeriodic | true if the y-direction is periodic |
isZPeriodic | true if the z-direction is periodic |
The level number per direction is such that if If the domain is not periodic the level number is 0
References CORE_Object::getMaxUInteger(), tBoolean, tUInteger, and tUSInt.
Referenced by setToeplitzMatrix().
|
virtual |
compute the magnetic excitation field by superposition of multi scale grids
[in] | nCells | : number of cells of the mesh |
[in] | dim | dimension of each point of the mesh |
[in] | sigmaM | magnetization values of size nCells x dim not necessarly normalized : sigmaM=sigma.M |
[out] | H | return excitation magnetic values of size nCells x dim |
The following algorithm needs 3 temporary fields , and for computing by zone
Computes the magnetic excitation field as follow:
Reimplemented in EMMG_SLSDXPeriodicMultiScale, and EMMG_SLRPPeriodicMultiScale.
References computeZonalCenteredDemagnetizedFieldFromLevel(), computeZonalDemagnetizedFieldAndNextLevelMagnetizationField(), getLevelMagnetizationField(), getLevelsNumber(), getLevelUpMagnetizationField(), getToeplitzMatrix(), getZonalMagnetizationField(), mLevelComputationsNumber, mN, null, SAVE_H_M_AT_LEVEL_1, EMM_Output::saveVTI(), CORE_Integer::toString(), tReal, tUIndex, tUInteger, and MATH_MultiLevelsToeplitzMatrix::vectorProduct().
Referenced by getZonalMagnetizationField().
|
protectedpure virtual |
compute the centered demagnetized field of level l outside zone anad add it to demagnetized field at level 0
[in] | twoPowerL | : ratio size of the grid at level l |
[in] | nCells | : number of cells of the mesh |
[in] | dim | dimension of each point of the mesh |
[in,out] | Ml | magnetization values of size nCells x dim at level l |
[out] | Mz | magnetization at zone . Working field |
[in,out] | H0 | : demagnetized excitation field at level 0 |
Implemented in EMM_MultiScaleSDGrid, EMM_MultiScaleCDGrid, EMMG_SLSDXPeriodicMultiScale, and EMMG_SLRPPeriodicMultiScale.
Referenced by computeMultiGridExcitationField(), and getZonalMagnetizationField().
|
protectedpure virtual |
compute the zonal demagnetized field added to demagnetized field at level 0 and compute the magnetization field at level l+1
[in] | twoPowerL | : ratio size of the grid at level l |
[in] | nCells | : number of cells of the mesh |
[in] | dim | dimension of each point of the mesh |
[in] | Ml | magnetization at level l |
[out] | Mz | magnetization at zone . Working field |
[in,out] | Mlp1 | magnetization values of size nCells x dim at level l+1 |
[in,out] | H0 | : demagnetized excitation field at level 0 |
Implemented in EMM_MultiScaleSDGrid, EMM_MultiScaleCDGrid, EMMG_SLSDXPeriodicMultiScale, and EMMG_SLRPPeriodicMultiScale.
Referenced by computeMultiGridExcitationField(), and getZonalMagnetizationField().
|
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
|
inlinestaticinherited |
get the epsilon value for T type
|
inline |
get the number of elements of the fine grid per cell of the corse grid
References mFineElementsNumberPerCoarseElement.
Referenced by EMM_MultiScaleCDGrid::meanValuesFromFineToCoarseGrid(), and EMM_MultiScaleSDGrid::meanValuesFromShiftFineGridToCoarseGrid().
|
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(), 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(), 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
|
inlineprotected |
return the number of calls of the level computations only for debug
References mLevelComputationsNumber.
Referenced by EMM_MultiScaleCDGrid::addValuesFromCoarseGridToFinestGrid(), EMM_MultiScaleSDGrid::addValuesFromGridToZoneFinestGrid(), EMM_MultiScaleCDGrid::computeDemagnetizedExcitationFieldFromLevel(), EMM_MultiScaleSDGrid::computeZonalCenteredDemagnetizedFieldFromLevel(), and EMM_MultiScaleSDGrid::computeZonalDemagnetizedFieldAndNextLevelMagnetizationField().
|
inlineprotected |
return the number of calls of the level computations only for debug
References mLevelComputationsNumber, toString(), and tString.
|
inline |
get the magnetization field at level l
Referenced by computeMultiGridExcitationField().
|
inline |
get the leves number
References mLevelsNumber.
Referenced by EMMG_SLRPPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), and computeMultiGridExcitationField().
|
inline |
get the magnetization field at level l+1
Referenced by computeMultiGridExcitationField().
|
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(), 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().
|
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().
|
inlinestaticinherited |
|
inline |
get the periodicity per direction
References mIsPeriodic.
Referenced by EMM_MultiScaleCDGrid::completeValuesOutsideFineGridByPeriodicityByExclusion(), EMMG_SLRPPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), EMM_MultiScaleSDGrid::computeValuesOnShiftFineGrid(), and EMM_MultiScaleCDGrid::meanValuesFromFineToCoarseGrid().
|
inline |
get the periodicity per direction
isXPeriodic | : true if the x-direction is periodic |
isYPeriodic | : true if the y-direction is periodic |
isZPeriodic | : true if the z-direction is periodic |
|
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().
|
inline |
get the segments number in all directions
Nx | the segments number in x-direction |
Ny | the segments number in y-direction |
Nz | the segments number in z-direction |
|
inline |
get the segments number per dierction
References mN.
Referenced by EMM_MultiScaleCDGrid::addValuesFromCoarseGridToFinestGrid(), EMM_MultiScaleSDGrid::addValuesFromCoarseGridToFinestGrid(), EMM_MultiScaleSDGrid::addValuesFromShiftFineGridToFinestGrid(), EMM_MultiScaleCDGrid::completeValuesOutsideFineGridByPeriodicityByExclusion(), EMM_MultiScaleCDGrid::computeDemagnetizedExcitationFieldFromLevel(), EMMG_SLRPPeriodicMultiScale::computeMultiGridExcitationField(), EMMG_SLSDXPeriodicMultiScale::computeMultiGridExcitationField(), EMM_MultiScaleSDGrid::computeValuesOnShiftFineGrid(), EMM_MultiScaleSDGrid::computeZonalCenteredDemagnetizedFieldFromLevel(), EMM_MultiScaleSDGrid::computeZonalDemagnetizedFieldAndNextLevelMagnetizationField(), EMM_MultiScaleSDGrid::getShiftZone(), EMM_MultiScaleCDGrid::meanValuesFromFineToCoarseGrid(), EMM_MultiScaleSDGrid::meanValuesFromShiftFineGridToCoarseGrid(), EMM_MultiScaleCDGrid::resetValuesWithinCenteredZone(), and EMM_MultiScaleSDGrid::resetValuesWithinShiftZone().
|
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(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_FullExchangeOperator::computeMagneticExcitationField(), EMM_StaticMagnetostrictionOperator::computeMagneticExcitationField(), EMM_LinearAnisotropyOperator::computeMagneticExcitationField(), EMM_StaticMagneticTensorOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_MinimalExchangeOperator::computeMagneticExcitationField(), EMM_AnisotropyOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().
|
inline |
get the toeplitz matrix
Referenced by EMM_MultiScaleCDGrid::computeDemagnetizedExcitationFieldFromLevel(), EMMG_SLSDXPeriodicMultiScale::computeLevelDemagnetizedField(), EMMG_SLRPPeriodicMultiScale::computeMultiGridExcitationField(), computeMultiGridExcitationField(), EMM_MultiScaleSDGrid::computeZonalCenteredDemagnetizedFieldFromLevel(), and EMM_MultiScaleSDGrid::computeZonalDemagnetizedFieldAndNextLevelMagnetizationField().
|
inlinestaticinherited |
|
inline |
get the magnetization field at zone
References computeMultiGridExcitationField(), computeZonalCenteredDemagnetizedFieldFromLevel(), computeZonalDemagnetizedFieldAndNextLevelMagnetizationField(), resetBlockValues(), tBoolean, tDimension, tReal, tUIndex, and tUInteger.
Referenced by computeMultiGridExcitationField(), and EMM_MultiScaleSDGrid::initialize().
|
virtual |
set the discretization
dim | dimension of the field |
Nx | : number of segements along x-direction |
Ny | : number of segements along y-direction |
Nz | : number of segements along z-direction |
Px | : periodicity along x-direction |
Py | : periodicity along y-direction |
Pz | : periodicity along z-direction |
l | : number of levels |
Reimplemented in EMM_MultiScaleCDGrid, and EMM_MultiScaleSDGrid.
References CORE_Object::getIdentityString(), mFineElementsNumberPerCoarseElement, mIsPeriodic, mLevelsNumber, mMl, mMlp1, mN, CORE_Object::out(), CORE_Out::println(), tBoolean, CORE_Integer::toString(), tUIndex, and tUInteger.
Referenced by EMM_MultiScaleCDGrid::initialize(), and setToeplitzMatrix().
|
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().
|
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(), 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(), 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().
|
static |
reset the values in a block grid [iMin,iMax[x[jMin,jMax[x[kMin,kMax[ of dimension dim per point inside a grid of size [0,Nx[x[0,Ny[x[0,Nz[
[in] | dim | dimension of point |
[in] | Nx | : size of the grid in the x direction |
[in] | Ny | : size of the grid in the y direction |
[in] | Nz | : size of the grid in the z direction |
[in] | iMin | bounds if the block grid in [0,Nx[ |
[in] | iMax | bounds if the block grid in [0,Nx[ |
[in] | jMin | bounds if the block grid in [0,Ny[ |
[in] | jMax | bounds if the block grid in [0,Ny[ |
[in] | kMin | bounds if the block grid in [0,Nz[ |
[in] | kMax | bounds if the block grid in [0,Nz[ |
[in,out] | M | : field to reset values within the block grid |
M is set to 0 on all points inside the grid [iMin,iMax[x[jMin,jMax[x[kMin,kMax[
References null, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, tReal, tUIndex, and tUInteger.
Referenced by getZonalMagnetizationField(), EMM_MultiScaleCDGrid::resetValuesWithinCenteredZone(), and EMM_MultiScaleSDGrid::resetValuesWithinShiftZone().
|
inlinestaticinherited |
|
inlinestaticinherited |
|
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().
|
inline |
setthe toeplitz associated matrix
toeplitz | the toeplitz matrix to set |
References computeLevelsNumber(), initialize(), tBoolean, tDimension, and tUInteger.
|
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 |
return the class information in a tString
Reimplemented from CORE_Object.
Reimplemented in EMMG_SLPeriodicMultiScale.
References CORE_Object::getIdentityString().
Referenced by getLevelComputationsNumber().
|
staticinherited |
|
private |
Referenced by getFineElementsNumberPerCoarseElement(), and initialize().
|
private |
Referenced by EMM_MultiScaleGrid(), getPeriodicDirections(), and initialize().
|
private |
Referenced by computeMultiGridExcitationField(), and getLevelComputationsNumber().
|
private |
Referenced by EMM_MultiScaleGrid(), getLevelsNumber(), and initialize().
|
private |
Referenced by EMM_MultiScaleGrid(), and initialize().
|
private |
Referenced by initialize().
|
private |
|
private |
Referenced by computeMultiGridExcitationField(), EMM_MultiScaleGrid(), getSegmentsNumber(), and initialize().
|
private |
|
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 |
|
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 |