C++ main module for emicrom Package  1.0
EMMG_SLPeriodicMultiScale.h
Go to the documentation of this file.
1 #ifndef EMMG_SLPeriodicMultiScale_H
2 #define EMMG_SLPeriodicMultiScale_H
3 
4 #include "EMM_MultiScaleGrid.h"
5 #include "EMM_RealArray.h"
6 #include "EMMG_RealField.h"
7 
8 #include "EMM_Grid3D.h"
9 
10 
12 
24 
26  // ATTRIBUTES
27 
28 private:
29 
31  WP::EMMG_SLDemagnetizedOperator mDemagnetizedOperator;
32 protected:
33  // METHODS
34 
35  // CONSTRUCTORS
36 
40 
41  // DESTRUCTORS
42 
45  virtual ~EMMG_SLPeriodicMultiScale(void);
46 
47 
48 public:
49 
50 
51 
52  // SET methods
53 public:
54 
55 
56  /* \brief set the SL demagnetized operator
57  * @param dem: demagnetized Operator to set
58  */
59  inline void setDemagnetizedOperator(SP::EMMG_SLDemagnetizedOperator dem) {
60  mDemagnetizedOperator=dem;
61  }
62 
63  /* \brief get the SL demagnetized operator
64  * @param dem: demagnetized Operator to set
65  */
66  inline SP::EMMG_SLDemagnetizedOperator getDemagnetizedOperator() const {
67  return mDemagnetizedOperator.lock();
68  }
69 
70 
71 
72 
73 
74 
75 public :
76 
77 
78 
79 public:
80 
118  void fineToCoarse(const tUInteger& nx,const tUInteger& ny,const tUInteger& nz,
119  const tBoolean isMeshPeriodic[3],
120  const EMMG_RealField& fineMagnetism,
121  EMMG_RealField& coarseMagnetism) const;
122 
145  void coarseMinusFine(const tUInteger& nx,const tUInteger& ny,const tUInteger& nz,EMMG_RealField& fineMagnetism) const;
146 
152  inline void coarseMinusFine(const EMM_Grid3D& mesh,EMMG_RealField& fineMagnetism) const {
153  tUInteger nx,ny,nz;
154  mesh.getSegmentsNumber(nx,ny,nz);
155  coarseMinusFine(nx,ny,nz,fineMagnetism);
156  }
157 
158 
159 public:
160 
161  //OTHER methods
162 
165  virtual tString toString() const;
166 
167 private:
168 };
169 
170 #endif
void coarseMinusFine(const EMM_Grid3D &mesh, EMMG_RealField &fineMagnetism) const
Sets the field to 0 on dyadic coarse grid cells covered by the fine mesh level just lower...
Definition: EMMG_SLPeriodicMultiScale.h:152
This class describes a grid3d mesh.
Definition: EMM_Grid3D.h:48
This class describes a generic real field.
Definition: EMMG_RealField.h:17
This class describes the building of fields on multiscale grid initialized by the initialize() method...
Definition: EMM_MultiScaleGrid.h:62
#define tUInteger
Definition: types.h:91
void setDemagnetizedOperator(SP::EMMG_SLDemagnetizedOperator dem)
Definition: EMMG_SLPeriodicMultiScale.h:59
This class describes the PeriodicMultiScale for matrix-vector product of complex toeplitz matrix...
Definition: EMMG_SLPeriodicMultiScale.h:23
#define tBoolean
Definition: types.h:139
SP_OBJECT(EMMG_SLPeriodicMultiScale)
void fineToCoarse(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, const tBoolean isMeshPeriodic[3], const EMMG_RealField &fineMagnetism, EMMG_RealField &coarseMagnetism) const
Projects a field defined on a fine grid on a mesh of dyadic 2 times greater. We use the periodicity o...
Definition: EMMG_SLPeriodicMultiScale.cpp:28
int mGridDivision
Definition: EMMG_SLPeriodicMultiScale.h:30
void getSegmentsNumber(tUInteger &nx, tUInteger &ny, tUInteger &nz) const
get the segments number in all directions
Definition: EMM_Grid3D.h:244
EMMG_SLPeriodicMultiScale(void)
create
Definition: EMMG_SLPeriodicMultiScale.cpp:12
virtual ~EMMG_SLPeriodicMultiScale(void)
destroy
Definition: EMMG_SLPeriodicMultiScale.cpp:16
This class describes the linear demagnetized operator of the landau lifschitz system EMM_LandauLifsch...
Definition: EMMG_SLDemagnetizedOperator.h:124
void coarseMinusFine(const tUInteger &nx, const tUInteger &ny, const tUInteger &nz, EMMG_RealField &fineMagnetism) const
Sets the field to 0 on dyadic coarse grid cells covered by the fine mesh level just lower 2 times gre...
Definition: EMMG_SLPeriodicMultiScale.cpp:163
SP::EMMG_SLDemagnetizedOperator getDemagnetizedOperator() const
Definition: EMMG_SLPeriodicMultiScale.h:66
virtual tString toString() const
return the class information in a tString
Definition: EMMG_SLPeriodicMultiScale.cpp:20
#define tString
Definition: types.h:135
DEFINE_SPTR(EMMG_SLDemagnetizedOperator)
WP::EMMG_SLDemagnetizedOperator mDemagnetizedOperator
Definition: EMMG_SLPeriodicMultiScale.h:31