1 #ifndef SM_AnisotropyOperator_H
2 #define SM_AnisotropyOperator_H
5 #include "SM_SliceOperator.h"
8 #include "SM_Network.h"
11 #include "functions_array.h"
101 const tIndex& startIndex,
102 const tIndex& endIndex,
104 const tBoolean& alpha,
121 const tIndex& stepIndex,
126 const tReal *U=&material.getAnisotropyDirections()[0];
130 eU+=material.getAnisotropyDirections().size();
152 const tReal *iS,
const tReal* eS,
153 tReal& Ei,tReal& W)
const {
180 const tIndex& startIndex,
181 const tIndex& endIndex,
182 const tReal *S)
const;
198 const tReal*S,
const tReal *eS,
199 tReal& phi,tReal& W)
const {
200 return static_cast<const I*
>(
this)->
computePhi(U,eU,S,eS,phi,W);
215 const tReal*S,
const tReal* eS,
216 tReal& phi,std::array<tReal,SM_Constants::DIM>& gradPhi,
217 tReal& W,tReal& W3)
const {
223 #include "SM_AnisotropyOperator.hpp"
This class is describes the general anisotropy operatoor.
Definition: SM_AnisotropyOperator.h:32
SM_AnisotropyOperator(void)
create a network class
Definition: SM_AnisotropyOperator.h:43
virtual void computeMagneticFieldSlice(const tIndex &stepIndex, const SM_Network &network, const SM_Material &material, const tIndex &startIndex, const tIndex &endIndex, const tReal *S, const tBoolean &alpha, const tIndex &nH, tReal *H) const
compute the anisotropy magnetic field by virtual method
Definition: SM_AnisotropyOperator.hpp:5
virtual tReal computeSpinEnergy(const tIndex &i, const tIndex &stepIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const final
compute the i-th spin anisotropy energy
Definition: SM_AnisotropyOperator.h:120
void computeSpinEnergy(const tReal &K, const tReal *iU, const tReal *eU, const tReal *iS, const tReal *eS, tReal &Ei, tReal &W) const
compute the anisotropy spin energy
Definition: SM_AnisotropyOperator.h:151
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_AnisotropyOperator.h:75
virtual tReal computeEnergySlice(const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const tIndex &startIndex, const tIndex &endIndex, const tReal *S) const
compute the energy at time t by virtual method for all particles in [startIndex,endIndex[
Definition: SM_AnisotropyOperator.hpp:93
void computePhiDerivatives(const tReal *U, const tReal *eU, const tReal *S, const tReal *eS, tReal &phi, std::array< tReal, SM_Constants::DIM > &gradPhi, tReal &W, tReal &W3) const
compute the function
Definition: SM_AnisotropyOperator.h:214
void computePhi(const tReal *U, const tReal *eU, const tReal *S, const tReal *eS, tReal &phi, tReal &W) const
compute the function
Definition: SM_AnisotropyOperator.h:197
virtual ~SM_AnisotropyOperator(void)
destroy
Definition: SM_AnisotropyOperator.h:50
static constexpr tDimension DIM
space dimension
Definition: SM_Constants.h:80
This class describes a materials defined by state attributes:
Definition: SM_Material.h:61
This class is describes a network composed by.
Definition: SM_Network.h:66
This class is describes an operator operating on slice of particles of a network SM_Network.
Definition: SM_SliceOperator.h:32
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: SM_SliceOperator.h:97