C++ main module for emicrom Package  1.0
EMM_ElementaryDemagnetizedMatrix.h
Go to the documentation of this file.
1 #ifndef EMM_ElementaryDemagnetizedMatrix_H
2 #define EMM_ElementaryDemagnetizedMatrix_H
3 
4 #include "EMM_Object.h"
5 #include "EMM_Kd.h"
6 
7 #include "MATH_Integration.h"
8 
86 
88 
89 
91 
92  // ATTRIBUTES
93 
94 private:
95 
96  static const tReal UNIT_SPHERIC_AREA;
97 
98 
99  //integrator
100  SP::MATH_Integration mIntegrator;
101 
102  //functions to integrate
103  SV::EMM_Kd mFunctions;
104 
105 
106 protected:
107  // METHODS
108 
109  // CONSTRUCTORS
110 
114 
115  // DESTRUCTORS
116 
117 
120  virtual ~EMM_ElementaryDemagnetizedMatrix(void);
121 
122 
123 public:
124 
125  // CONSTRUCTORS
129  inline static SP::EMM_ElementaryDemagnetizedMatrix New() {
130  SP::EMM_ElementaryDemagnetizedMatrix sp(new EMM_ElementaryDemagnetizedMatrix(),EMM_ElementaryDemagnetizedMatrix::Delete());
131  sp->setThis(sp);
132  return sp;
133  }
134 public:
135 
140  inline void setIntegrator(SP::MATH_Integration integrator) {
141  mIntegrator=integrator;
142  mIntegrator->setBounds(0,1,0,1,0,1);
143  }
144 public:
145 
151  void setMeshSize(const tReal& hx,const tReal& hy,const tReal& hz);
152 
153 
159  inline tReal compute(const tUSInt& row,const tUSInt& col,const tIndex d[]) {
160  return compute(row,col,d[0],d[1],d[2]);
161  }
162 
170  tReal compute(const tUSInt& row,const tUSInt& col,
171  const tIndex& dx,const tIndex& dy,const tIndex& dz);
172 
173 
174 
175 
176 public:
177  // OTHERS methods
178 
179 
180 
181 
182 
183 };
184 
185 #endif
tReal compute(const tUSInt &row, const tUSInt &col, const tIndex d[])
compute the elementary demagnetized matrix at row & col
Definition: EMM_ElementaryDemagnetizedMatrix.h:159
This class is a base class of E-MicromM core package.
Definition: EMM_Object.h:21
This class create the elementary demagnetized matrix :
Definition: EMM_ElementaryDemagnetizedMatrix.h:87
static const tReal UNIT_SPHERIC_AREA
Definition: EMM_ElementaryDemagnetizedMatrix.h:96
void setMeshSize(const tReal &hx, const tReal &hy, const tReal &hz)
set the mesh size
Definition: EMM_ElementaryDemagnetizedMatrix.cpp:49
DEFINE_SPTR(EMM_ElementaryDemagnetizedMatrix)
#define tUSInt
Definition: types.h:28
static SP::EMM_ElementaryDemagnetizedMatrix New()
create a shared pointer class of this
Definition: EMM_ElementaryDemagnetizedMatrix.h:129
virtual ~EMM_ElementaryDemagnetizedMatrix(void)
destroy the class
Definition: EMM_ElementaryDemagnetizedMatrix.cpp:45
#define tIndex
Definition: types.h:129
SP_OBJECT(EMM_ElementaryDemagnetizedMatrix)
void setIntegrator(SP::MATH_Integration integrator)
set the integrator
Definition: EMM_ElementaryDemagnetizedMatrix.h:140
EMM_ElementaryDemagnetizedMatrix(void)
create the class
Definition: EMM_ElementaryDemagnetizedMatrix.cpp:16
SP::MATH_Integration mIntegrator
Definition: EMM_ElementaryDemagnetizedMatrix.h:100
#define tReal
Definition: types.h:118
SV::EMM_Kd mFunctions
Definition: EMM_ElementaryDemagnetizedMatrix.h:103
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141