C++ main module for emicrom Package  1.0
EMMG_SLSDXPeriodicMultiScale.h
Go to the documentation of this file.
1 #ifndef EMMG_SLSDXPeriodicMultiScale_H
2 #define EMMG_SLSDXPeriodicMultiScale_H
3 
4 
6 
18 
20  // ATTRIBUTES
21 
22 private:
23 
26  SV::EMMG_RealField mLevelMagnetisms;
28 
29 
30 
31 protected:
32  // METHODS
33 
34  // CONSTRUCTORS
35 
39 
40  // DESTRUCTORS
41 
44  virtual ~EMMG_SLSDXPeriodicMultiScale(void);
45 
46 
47 public:
50  inline static SP::EMMG_SLSDXPeriodicMultiScale New() {
51  SP::EMMG_SLSDXPeriodicMultiScale p(new EMMG_SLSDXPeriodicMultiScale(),
53  p->setThis(p);
54  return p;
55  };
56 
57 
58  // SET methods
59 public:
60 
61  // GET
62 
66  inline void setIsHighPrecision(const tBoolean& h) {
67  mIsHighPrecision=h;
68  }
69 
70 
71 
72 
73 public :
74 
83  void computeMultiGridExcitationField(const tUIndex& nCells,
84  const tDimension& dim,
85  const tReal* M,
86  tReal * H);
87 
88 protected:
101  const tUIndex& nCells,
102  const tDimension& dim,
103  const tReal* Ml,
104  tReal *Mz,
105  tReal *Mlp1,
106  tReal *H0) const {
107  }
119  const tUIndex& nCells,
120  const tDimension& dim,
121  tReal* Ml,
122  tReal *Mz,
123  tReal *H0) const {
124  }
125 
126 
127 
128 private:
129 
130 
141  void computeLevelDemagnetizedField(const tUIndex& nCells,const tDimension& dim,
142  const int& l,
143  const tReal *Hl,tReal *Yl) const;
144 
158  void computeHighLevelDemagnetizedField(const tUInteger &nx,const tUInteger& ny,const tUInteger& nz,
159  const tUIndex& nCells,const tDimension& dim,
160  const int& l,
161  tReal *Hz,tReal *Yz,
162  const tReal* Hl,tReal* Yl) const;
163 
178  void addLevelPeriodicDemagnetizedField(const tUInteger &nx,const tUInteger& ny,const tUInteger& nz,
179  const tUIndex& nCells,const tDimension& dim,
180  const tBoolean isMeshPeriodic[3],
181  const int& l,
182  tReal* Hz,tReal* Yz,
183  const tReal* Hl_1,tReal* Yl) const;
184 
185 
194  void addLevelContributionToSubLevel(const tUInteger& nx,const tUInteger& ny,const tUInteger& nz,
195  const tUIndex& nCells,const tDimension& dim,
196  const int& l,const tReal *Yl,tReal* Yl_1) const;
197 
206  void addLevelContributionToLevel0(const tUInteger& nx,const tUInteger& ny,const tUInteger& nz,
207  const tUIndex& nCells,const tDimension& dim,
208  const int& l,const tReal* Yl,tReal* Ydem) const;
209 
210 
211 };
212 
213 #endif
EMMG_RealField mHz
Definition: EMMG_SLSDXPeriodicMultiScale.h:24
This class describes the PeriodicSDXMultiScale for matrix-vector product of complex toeplitz matrix...
Definition: EMMG_SLSDXPeriodicMultiScale.h:17
This class describes a generic real field.
Definition: EMMG_RealField.h:17
void computeHighLevelDemagnetizedField(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, const tUIndex &nCells, const tDimension &dim, const int &l, tReal *Hz, tReal *Yz, const tReal *Hl, tReal *Yl) const
compute the level demagntized matrix at level l
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:292
#define tUInteger
Definition: types.h:91
void setIsHighPrecision(const tBoolean &h)
set to true if the precision is high
Definition: EMMG_SLSDXPeriodicMultiScale.h:66
This class describes the PeriodicMultiScale for matrix-vector product of complex toeplitz matrix...
Definition: EMMG_SLPeriodicMultiScale.h:23
#define tBoolean
Definition: types.h:139
void addLevelContributionToSubLevel(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, const tUIndex &nCells, const tDimension &dim, const int &l, const tReal *Yl, tReal *Yl_1) const
add the level demagnetized field of level l to the level demagnetized field of level 0 Ydem ...
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:752
virtual ~EMMG_SLSDXPeriodicMultiScale(void)
destroy
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:15
#define tDimension
Definition: EMM_Types.h:10
SP_OBJECT(EMMG_SLSDXPeriodicMultiScale)
void addLevelContributionToLevel0(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, const tUIndex &nCells, const tDimension &dim, const int &l, const tReal *Yl, tReal *Ydem) const
add the level demagnetized field of level l to the level demagnetized field of level 0 Ydem ...
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:852
SV::EMMG_RealField mLevelMagnetisms
Definition: EMMG_SLSDXPeriodicMultiScale.h:26
DEFINE_SPTR(EMMG_SLSDXPeriodicMultiScale)
static SP::EMMG_SLSDXPeriodicMultiScale New()
create a PeriodicSDXMultiScale class
Definition: EMMG_SLSDXPeriodicMultiScale.h:50
virtual void computeZonalDemagnetizedFieldAndNextLevelMagnetizationField(const tUInteger &twoPowerL, const tUIndex &nCells, const tDimension &dim, const tReal *Ml, tReal *Mz, tReal *Mlp1, tReal *H0) const
compute the zonal demagnetized field added to demagnetized field at level 0 and compute the magnetiza...
Definition: EMMG_SLSDXPeriodicMultiScale.h:100
#define tUIndex
Definition: types.h:126
tBoolean mIsHighPrecision
Definition: EMMG_SLSDXPeriodicMultiScale.h:27
EMMG_SLSDXPeriodicMultiScale(void)
create
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:10
void computeMultiGridExcitationField(const tUIndex &nCells, const tDimension &dim, const tReal *M, tReal *H)
compute the demagnetized field
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:22
void addLevelPeriodicDemagnetizedField(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, const tUIndex &nCells, const tDimension &dim, const tBoolean isMeshPeriodic[3], const int &l, tReal *Hz, tReal *Yz, const tReal *Hl_1, tReal *Yl) const
add the periodic field matrix at level l
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:508
void computeLevelDemagnetizedField(const tUIndex &nCells, const tDimension &dim, const int &l, const tReal *Hl, tReal *Yl) const
comput ethe level demagntized matrix at level l
Definition: EMMG_SLSDXPeriodicMultiScale.cpp:271
virtual void computeZonalCenteredDemagnetizedFieldFromLevel(const tUInteger &twoPowerL, const tUIndex &nCells, const tDimension &dim, tReal *Ml, tReal *Mz, tReal *H0) const
compute the centered demagnetized field of level l outside zone anad add it to demagnetized field at ...
Definition: EMMG_SLSDXPeriodicMultiScale.h:118
EMMG_RealField mYz
Definition: EMMG_SLSDXPeriodicMultiScale.h:25
#define tReal
Definition: types.h:118
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141