1 #ifndef EMM_MultiScaleGrid_H 2 #define EMM_MultiScaleGrid_H 91 SP::EMM_RealField
mMz;
129 mToeplitzMatrix=toeplitz;
154 const tBoolean & isZPeriodic)
const;
217 isXPeriodic=mIsPeriodic[0];
218 isYPeriodic=mIsPeriodic[1];
219 isZPeriodic=mIsPeriodic[2];
237 return *mToeplitzMatrix.get();
EMM_RealField & getLevelMagnetizationField()
get the magnetization field at level l
Definition: EMM_MultiScaleGrid.h:243
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 magnetiza...
This class is a base class of E-MicromM core package.
Definition: EMM_Object.h:21
tBoolean mIsPeriodic[3]
Definition: EMM_MultiScaleGrid.h:76
EMM_RealField & getZonalMagnetizationField()
get the magnetization field at zone
Definition: EMM_MultiScaleGrid.h:255
tUCInt mFineElementsNumberPerCoarseElement
Definition: EMM_MultiScaleGrid.h:94
tUInteger mLevelComputationsNumber
Definition: EMM_MultiScaleGrid.h:97
This class describes the building of fields on multiscale grid initialized by the initialize() method...
Definition: EMM_MultiScaleGrid.h:62
const tUInteger * getSegmentsNumber() const
get the segments number per dierction
Definition: EMM_MultiScaleGrid.h:198
#define tUInteger
Definition: types.h:91
const tBoolean * getPeriodicDirections() const
get the periodicity per direction
Definition: EMM_MultiScaleGrid.h:205
SP::EMM_RealField mMz
Definition: EMM_MultiScaleGrid.h:91
This class is multi levels toeplitz matrix. The matrix at level k is composed by toeplitz block matr...
Definition: MATH_MultiLevelsToeplitzMatrix.h:57
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
Definition: EMM_MultiScaleGrid.cpp:294
#define tUCInt
Definition: types.h:21
#define tBoolean
Definition: types.h:139
EMM_RealField & getLevelUpMagnetizationField()
get the magnetization field at level l+1
Definition: EMM_MultiScaleGrid.h:249
DEFINE_SPTR(EMM_MultiScaleGrid)
#define tDimension
Definition: EMM_Types.h:10
SP::EMM_RealField mMl
Definition: EMM_MultiScaleGrid.h:88
tUInteger & getLevelComputationsNumber()
return the number of calls of the level computations only for debug
Definition: EMM_MultiScaleGrid.h:373
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
Definition: EMM_MultiScaleGrid.cpp:47
EMM_MultiScaleGrid(void)
create
Definition: EMM_MultiScaleGrid.cpp:16
const MATH_MultiLevelsToeplitzMatrix & getToeplitzMatrix() const
get the toeplitz matrix
Definition: EMM_MultiScaleGrid.h:236
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
Definition: EMM_MultiScaleGrid.cpp:82
SP_OBJECT(EMM_MultiScaleGrid)
virtual tString toString() const
return the class information in a tString
Definition: EMM_MultiScaleGrid.cpp:435
SP::MATH_MultiLevelsToeplitzMatrix mToeplitzMatrix
Definition: EMM_MultiScaleGrid.h:82
#define tUIndex
Definition: types.h:126
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 insid...
Definition: EMM_MultiScaleGrid.cpp:184
void setToeplitzMatrix(SP::MATH_MultiLevelsToeplitzMatrix toeplitz)
setthe toeplitz associated matrix
Definition: EMM_MultiScaleGrid.h:128
void getSegmentsNumber(tUInteger &Nx, tUInteger &Ny, tUInteger &Nz) const
get the segments number in all directions
Definition: EMM_MultiScaleGrid.h:190
#define tString
Definition: types.h:135
virtual ~EMM_MultiScaleGrid(void)
destroy
Definition: EMM_MultiScaleGrid.cpp:44
void getPeriodicDirections(tBoolean &isXPeriodic, tBoolean &isYPeriodic, tBoolean &isZPeriodic) const
get the periodicity per direction
Definition: EMM_MultiScaleGrid.h:214
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 ...
const tUInteger & getLevelComputationsNumber() const
return the number of calls of the level computations only for debug
Definition: EMM_MultiScaleGrid.h:379
tUInteger mLevelsNumber
Definition: EMM_MultiScaleGrid.h:85
SP::EMM_RealField mMlp1
Definition: EMM_MultiScaleGrid.h:88
const tUCInt & getFineElementsNumberPerCoarseElement() const
get the number of elements of the fine grid per cell of the corse grid
Definition: EMM_MultiScaleGrid.h:181
This class describes a real field.
Definition: EMM_RealField.h:21
const tUInteger & getLevelsNumber() const
get the leves number
Definition: EMM_MultiScaleGrid.h:228
#define tReal
Definition: types.h:118
tUInteger mN[3]
Definition: EMM_MultiScaleGrid.h:73
static tBoolean SAVE_H_M_AT_LEVEL_1
Definition: EMM_MultiScaleGrid.h:68