C++ main module for emicrom Package  1.0
EMM_StaticMagneticTensorOperator.h
Go to the documentation of this file.
1 #ifndef EMM_StaticMagneticTensorOperator_H
2 #define EMM_StaticMagneticTensorOperator_H
3 
4 
6 
8 
42 
44  // ATTRIBUTES
45 
46 
47 private:
48 
49 public:
50 
51 
52  // ASSOCIATION
53 
54 private:
55 
56 
57 
58  //constraint
61  SP::EMM_4SymmetricTensors mLmem;
62 
63 
64 protected:
65 
66  // METHODS
67 
68  // CONSTRUCTORS
69 
73 
74  // DESTRUCTORS
75 
79 
80 
81 public:
82 
83 
88  virtual tBoolean discretize(const EMM_LandauLifschitzSystem& system);
89 
93  virtual tBoolean isAffine() const {
94  return false;
95  }
100  return true;
101  };
102 
111  virtual tULLInt getMemorySize() const {
112  return EMM_MagneticExcitationOperator::getMemorySize()+mLmem->getMemorySize();
113 
114  }
115 
116  //OPERATOR FIELDS Methods
117  //=========================
125  return true;
126  }
127 
139  const tFlag& order,
140  const EMM_RealArray& sigma,
141  const EMM_RealField& dM_dt0,
142  const EMM_RealField& M0) {
143  return true;
144  }
145 
146 
156  const EMM_RealArray& sigma,
157  const EMM_RealField& Mt) {
158  return true;
159  }
160  //Magnetic field methods
161  //======================
162 
172  virtual void computeMagneticExcitationField(const tUIndex & nCells,
173  const tDimension& dim,
174  const EMM_RealArray& sigma,
175  const tReal *M,
176  tReal *H) const;
177 
194  const tDimension& dim,
195  const EMM_RealArray& sigma,
196  const tReal *M,
197  const tReal *D,
198  tReal *gradH) const;
199 
200 
201  //ENERGY Methods
202  //==============
203 
204 
216  virtual tReal computeEnergy(const tReal& t,
217  const tUIndex& nCells,const tDimension& dim,
218  const EMM_RealArray& sigma,
219  const tReal* Mt) const;
220 
221 
222 
223 };
224 #endif
EMM_StaticMagneticTensorOperator(void)
create
Definition: EMM_StaticMagneticTensorOperator.cpp:12
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_StaticMagneticTensorOperator.h:111
#define tBoolean
Definition: types.h:139
virtual tReal computeEnergy(const tReal &t, const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *Mt) const
compute the energy of the anistropy operator
Definition: EMM_StaticMagneticTensorOperator.cpp:174
#define tDimension
Definition: EMM_Types.h:10
virtual ~EMM_StaticMagneticTensorOperator(void)
destroy
Definition: EMM_StaticMagneticTensorOperator.cpp:17
SP::EMM_4SymmetricTensors mLmem
4 symmetric tensor given by
Definition: EMM_StaticMagneticTensorOperator.h:61
virtual tBoolean discretize(const EMM_LandauLifschitzSystem &system)
discretize the operator depending on method
Definition: EMM_StaticMagneticTensorOperator.cpp:27
DEFINE_SPTR(EMM_StaticMagneticTensorOperator)
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzSystem.h:88
virtual tBoolean resetToInitialState(const EMM_LandauLifschitzSystem &system)
reset the data of the operator to its initial step t=0
Definition: EMM_StaticMagneticTensorOperator.h:124
virtual void computeMagneticExcitationField(const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, tReal *H) const
compute the normalized excitation magnetic field at M for stress tensors
Definition: EMM_StaticMagneticTensorOperator.cpp:103
virtual tBoolean isAffine() const
return true if the operator is either constant or linear
Definition: EMM_StaticMagneticTensorOperator.h:93
This class describes the static Magnetic Tensor operator of the landau lifschitz system EMM_LandauLif...
Definition: EMM_StaticMagneticTensorOperator.h:41
#define tUIndex
Definition: types.h:126
This class describes a real array.
Definition: EMM_RealArray.h:16
virtual tBoolean computeFieldsAtTime(const tReal &t, const tFlag &order, const EMM_RealArray &sigma, const EMM_RealField &dM_dt0, const EMM_RealField &M0)
compute the fields of operator at time
Definition: EMM_StaticMagneticTensorOperator.h:138
virtual tBoolean computeMagneticExcitationFieldGradient(const tUIndex &nCells, const tDimension &dim, const EMM_RealArray &sigma, const tReal *M, const tReal *D, tReal *gradH) const
compute the gradient of the magnetic excitation field at M in the direction D
Definition: EMM_StaticMagneticTensorOperator.cpp:141
virtual tBoolean updateAtNextTimeStep(const tReal &dt, const EMM_RealArray &sigma, const EMM_RealField &Mt)
update the data of operator at next time step
Definition: EMM_StaticMagneticTensorOperator.h:155
SP_OBJECT(EMM_StaticMagneticTensorOperator)
#define tULLInt
Definition: types.h:45
virtual tBoolean isGradientComputationable() const
return true if the gradient of the magnetic excitation is computationable
Definition: EMM_StaticMagneticTensorOperator.h:99
This class is an operator of a E-MicromM package wich compute a magnetic excitation operator...
Definition: EMM_MagneticExcitationOperator.h:15
This class describes a real field.
Definition: EMM_RealField.h:21
#define tReal
Definition: types.h:118
virtual tULLInt getMemorySize() const
return the memory size in byte
Definition: EMM_Operator.h:71
#define tFlag
Definition: types.h:74