C++ main module for emicrom Package  1.0
EMM_MinimalExchangeOperator.h
Go to the documentation of this file.
1 #ifndef EMM_MinimalExchangeOperator_H
2 #define EMM_MinimalExchangeOperator_H
3 
4 #include "EMM_ExchangeOperator.h"
5 
6 #include "EMM_Grid3D.h"
8 #include "EMM_MatterField.h"
9 
35 
37  // ATTRIBUTES
38 
39 
40 private:
41 
42 
43 
44 public:
45 
46 
47  // ASSOCIATION
48 
49 private:
50 
54 
58 
62 
63  //leading dimension of the work array
65 
66  //work array
68 
69 
70 protected:
71 
72  // METHODS
73 
74  // CONSTRUCTORS
75 
79 
80  // DESTRUCTORS
81 
84  virtual ~EMM_MinimalExchangeOperator(void);
85 
86 
87 public:
88 
89 
90  //DATA Methods
91  //==============
92 
101  virtual tBoolean discretize(const EMM_LandauLifschitzSystem& system);
102 
103 
104 public:
113  virtual tULLInt getMemorySize() const {
114  return EMM_ExchangeOperator::getMemorySize()+mNeighbors.getMemorySize()+mA.getMemorySize()+mLDW*sizeof(tReal);
115 
116  }
117 
118 protected:
119 
123  inline const CORE_UIndexMorseArray& getNeighbors() const {
124  return mNeighbors;
125  }
130  return mNeighbors;
131  }
132 
136  inline const EMM_RealArray& getExchangeField() const {
137  return mA;
138  }
143  return mA;
144  }
145 
146 
147 
151  inline const tReal* getFaceAdimensionizedLength() const {
152  return mL2;
153  }
154 
155 protected:
158  inline void clearWorkingArray() {
159  if (mWork!=null) delete[] mWork;
160  mWork=null;
161  }
162 
163 
164 
165  //MAGNETIC Excitation field methods
166  //=================================
167 
168 protected:
169 
170 
187  virtual void computeMagneticExcitationField(const tUIndex& nCells,
188  const tDimension& dim,
189  const EMM_RealArray& sigma,
190  const tReal* M,
191  tReal* H) const;
192 
193 
194 };
195 
196 #endif
197 
This class describes the exchange operator for computing the magnetic excitation due to exchange proc...
Definition: EMM_ExchangeOperator.h:80
EMM_MinimalExchangeOperator(void)
create th eexchange operator
Definition: EMM_MinimalExchangeOperator.cpp:5
const CORE_UIndexMorseArray & getNeighbors() const
return the neighbors of cells
Definition: EMM_MinimalExchangeOperator.h:123
CORE_UIndexMorseArray & getNeighbors()
return the neighbors of cells
Definition: EMM_MinimalExchangeOperator.h:129
EMM_RealArray & getExchangeField()
ge the exchange field
Definition: EMM_MinimalExchangeOperator.h:142
SP_OBJECT(EMM_MinimalExchangeOperator)
tReal * mL2
square of the adimensionized length of each face of a cell
Definition: EMM_MinimalExchangeOperator.h:61
#define tUCInt
Definition: types.h:21
#define tBoolean
Definition: types.h:139
tReal * mWork
Definition: EMM_MinimalExchangeOperator.h:67
#define null
Definition: types.h:144
#define tDimension
Definition: EMM_Types.h:10
DEFINE_SPTR(EMM_MinimalExchangeOperator)
virtual ~EMM_MinimalExchangeOperator(void)
destroy the exchange operator
Definition: EMM_MinimalExchangeOperator.cpp:17
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzSystem.h:88
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: CORE_Array.h:545
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: CORE_MorseArray.h:396
#define tUIndex
Definition: types.h:126
This class describes a real array.
Definition: EMM_RealArray.h:16
This class describes an implementation of the exchange operator EMM_ExchangeOperator.
Definition: EMM_MinimalExchangeOperator.h:34
tUCInt mLDW
Definition: EMM_MinimalExchangeOperator.h:64
const EMM_RealArray & getExchangeField() const
ge the exchange field
Definition: EMM_MinimalExchangeOperator.h:136
virtual void computeMagneticExcitationField(const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, tReal *H) const
compute the excitation magnetic field at M
Definition: EMM_MinimalExchangeOperator.cpp:81
CORE_UIndexMorseArray mNeighbors
neighbors of the cells
Definition: EMM_MinimalExchangeOperator.h:53
#define tULLInt
Definition: types.h:45
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_MinimalExchangeOperator.h:113
#define tReal
Definition: types.h:118
EMM_RealArray mA
contains the exchange coefficient field of size nCells
Definition: EMM_MinimalExchangeOperator.h:57
const tReal * getFaceAdimensionizedLength() const
get the face adimensionized length
Definition: EMM_MinimalExchangeOperator.h:151
virtual tBoolean discretize(const EMM_LandauLifschitzSystem &system)
discretize the operator depending on method
Definition: EMM_MinimalExchangeOperator.cpp:23
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_Operator.h:71
void clearWorkingArray()
clear the working array
Definition: EMM_MinimalExchangeOperator.h:158