C++ main module for emicrom Package  1.0
EMM_MagneticExcitationLinearOperator.h
Go to the documentation of this file.
1 #ifndef EMM_MagneticExcitationLinearOperator_H
2 #define EMM_MagneticExcitationLinearOperator_H
3 
5 
6 
24 
26  // ATTRIBUTES
27 
28 
29 private:
30 
31 
32 
33 public:
34 
35 
36  // ASSOCIATION
37 
38 private:
39 
40 
41 protected:
42 
43  // METHODS
44 
45  // CONSTRUCTORS
46 
50  }
51 
52  // DESTRUCTORS
53 
57  }
58 
59 
60 public:
61 
65  virtual tBoolean isAffine() const {
66  return true;
67  };
72  return true;
73  };
74 
75 
76  //FIELDS Methods
77  //==============
85  return true;
86  }
87 
98  const tFlag& order,
99  const EMM_RealArray& sigma,
100  const EMM_RealField& dM_dt0,
101  const EMM_RealField& M0) {
102  return true;
103  }
104 
105 
113  const EMM_RealArray& sigma,
114  const EMM_RealField& Mt) {
115  return true;
116  }
117 
118  //Magnetic excitation field method
119  //=================================
120 
131  const EMM_RealField& M,
132  const EMM_RealField& D,
133  EMM_RealField& gradH) const {
134  computeMagneticExcitationField(sigma,D,gradH);
135  return true;
136  }
137 
138 
139 
140  //ENERGY methods
141  //==============
142 
143 protected:
162  const EMM_RealArray& sigma,
163  const EMM_RealField& Mt,
164  const EMM_RealField& Ht) const {
165  return -getElementVolume()*Ht.dot(sigma,Mt);
166  }
167 
168 
169 public:
170 
183  virtual tReal computeEnergy(const tReal& t,
184  const EMM_RealArray& sigma,
185  const EMM_RealField& Mt,
186  EMM_RealField& W) const {
188  }
189 
190 
191 
192 };
193 
194 #endif
195 
const tReal & getElementVolume() const
return the adimensionized volume of the element
Definition: EMM_Operator.h:110
virtual tBoolean computeMagneticExcitationFieldGradient(const EMM_RealArray &sigma, const EMM_RealField &M, const EMM_RealField &D, EMM_RealField &gradH) const
compute the gradient of the magnetic excitation field at M in the direction D
Definition: EMM_MagneticExcitationLinearOperator.h:130
virtual tBoolean resetToInitialState(const EMM_LandauLifschitzSystem &system)
reset the data of the operator to its initial step t=0
Definition: EMM_MagneticExcitationLinearOperator.h:84
This class describes the MagneticExcitationLinear operator for the E-MicroM system : EMM_LandauLisfch...
Definition: EMM_MagneticExcitationLinearOperator.h:23
#define tBoolean
Definition: types.h:139
virtual tBoolean isGradientComputationable() const
return true if the gradient of the magnetic excitation is computationable
Definition: EMM_MagneticExcitationLinearOperator.h:71
virtual tReal dot(const EMM_RealField &F) const
compute the scalar product
Definition: EMM_RealField.h:315
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_MagneticExcitationLinearOperator.h:112
EMM_MagneticExcitationLinearOperator(void)
create
Definition: EMM_MagneticExcitationLinearOperator.h:49
This class describes a resolution of landau-lifschitz system of the Core Package for E-MicroM...
Definition: EMM_LandauLifschitzSystem.h:88
virtual tReal computeEnergyWithMagneticExcitation(const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, const EMM_RealField &Ht) const
compute the energy E of the operator
Definition: EMM_MagneticExcitationLinearOperator.h:161
SP_OBJECT(EMM_MagneticExcitationLinearOperator)
virtual ~EMM_MagneticExcitationLinearOperator(void)
destroy
Definition: EMM_MagneticExcitationLinearOperator.h:56
virtual tReal computeEnergy(const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, EMM_RealField &W) const
compute the energy E of the operator
Definition: EMM_MagneticExcitationLinearOperator.h:183
virtual tBoolean isAffine() const
return true if the operator is either constant or linear
Definition: EMM_MagneticExcitationLinearOperator.h:65
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_MagneticExcitationLinearOperator.h:97
DEFINE_SPTR(EMM_MagneticExcitationLinearOperator)
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
virtual void computeMagneticExcitationField(const EMM_RealArray &sigma, const EMM_RealField &M, EMM_RealField &H) const =0
compute the magnetic excitation field
#define tReal
Definition: types.h:118
tReal computeMagneticExcitationFieldAndEnergy(const tReal &t, const EMM_RealArray &sigma, const EMM_RealField &Mt, EMM_RealField &Ht) const
compute the energy of the operator
Definition: EMM_MagneticExcitationOperator.h:92
#define tFlag
Definition: types.h:74