|
C++ mpi module for stochmagnet_main Package
|
This class is describes the uniaxial anisotropy. More...
#include <SM_UniaxialAnisotropyOperator.h>


Public Member Functions | |
| virtual CORE_UniquePointer< SM_SliceOperator > | NewInstance () const override |
| create a New instance of this More... | |
| virtual tMemSize | getMemorySize () const |
| return the memory size of the class and the memory size of all its attributes/associations More... | |
| virtual tMemSize | getContentsMemorySize () const |
| return the memory size of the included associations More... | |
| void | computePhi (const tReal *U, const tReal *eU, const tReal *S, const tReal *eS, tReal &phi, tReal &W) const |
| compute the \( \Phi_U(S) \) function More... | |
| 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 \( \nabla. \Phi_U(S) . U \) function More... | |
Public Member Functions inherited from SM_AnisotropyOperator< SM_UniaxialAnisotropyOperator > | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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[ More... | |
| void | computePhi (const tReal *U, const tReal *eU, const tReal *S, const tReal *eS, tReal &phi, tReal &W) const |
| compute the \( \Phi_U(S) \) function More... | |
| 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 \( \nabla. \Phi_U(S) . U \) function More... | |
Public Member Functions inherited from SM_SliceOperator | |
| const tString & | getName () const |
| return the operator name More... | |
| virtual void | copy (const SM_SliceOperator &op) |
| copy More... | |
| virtual void | adimensionize (const tReal &cH) |
| adimensionize operator with characteric field value in J More... | |
| virtual void | discretize (const SM_Network &network, const SM_Material &material) |
| discretize the operator on the network More... | |
| virtual void | updateState (const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) |
| update the stae of the operator at time index More... | |
| virtual tString | toString () const override |
| return string representaton of the operator | |
Public Member Functions inherited from SM_Object | |
| SM_Object (void) | |
| create | |
| virtual | ~SM_Object (void) |
| destroy | |
Public Member Functions inherited from CORE_Object | |
| template<class T > | |
| std::shared_ptr< T > | getSharedPointer () |
| return the shared pointer for this More... | |
| template<class T > | |
| std::shared_ptr< const T > | getConstSharedPointer () const |
| return a const shared pointer for this More... | |
| template<class T > | |
| tBoolean | isInstanceOf () const |
| test if the clas T is an instance of this class More... | |
| tString | getClassName () const |
| return the name of the class More... | |
| tString | getPointerString () const |
| retrun the pointer of the class as a string More... | |
| tString | getIdentityString () const |
| retrun the string identification of the class More... | |
Static Public Member Functions | |
| static CORE_UniquePointer< SM_UniaxialAnisotropyOperator > | New () |
| build a new instance of the operator More... | |
Static Public Member Functions inherited from CORE_Object | |
| static tBoolean | EnableMemoryStack (const tBoolean &isMemoryChecked) |
| enable the memory stack More... | |
| static void | EnableMemoryStack () |
| enable the memory stack | |
| static void | DisableMemoryStack () |
| disable the memory stack | |
| static tBoolean | IsMemoryStackEnabled () |
| return trur if the memory stack is enabled | |
| static tString | MemoryStackToString () |
| get the memory stack in string More... | |
| static tIndex | GetRegisteredClassesNumber () |
| get the memory stack in string More... | |
Static Public Member Functions inherited from SM_LinearSliceOperator | |
| static tReal | ComputeEnergy (const SM_Network &network, const SM_Material &material, const tIndex &startIndex, const tIndex &endIndex, const tReal *S, const tInteger &nH, const tReal *H) |
| compute the energy by virtual method More... | |
Protected Member Functions | |
| SM_UniaxialAnisotropyOperator (void) | |
| create a network class | |
| virtual | ~SM_UniaxialAnisotropyOperator (void) |
| destroy | |
Protected Member Functions inherited from SM_AnisotropyOperator< SM_UniaxialAnisotropyOperator > | |
| SM_AnisotropyOperator (void) | |
| create a network class | |
| virtual | ~SM_AnisotropyOperator (void) |
| destroy | |
Protected Member Functions inherited from SM_SliceOperator | |
| SM_SliceOperator (void) | |
| create a network class | |
| virtual | ~SM_SliceOperator (void) |
| destroy | |
| void | setName (const tString &name) |
| set the name More... | |
Protected Member Functions inherited from CORE_Object | |
| CORE_Object () | |
| build an instance of the object | |
| virtual | ~CORE_Object () |
| destroy the instance of object std | |
Protected Member Functions inherited from SM_LinearSliceOperator | |
| SM_LinearSliceOperator (void) | |
| create a network class | |
| virtual | ~SM_LinearSliceOperator (void) |
| destroy | |
This class is describes the uniaxial anisotropy.
The adimensionized anisotropy energy is \( E= \displaystyle \sum_{i}^{i=P-1} \tilde K \Phi_U(S_i)\)
The adimensionized K is \( \tilde K = \frac{K}{\mu_0.\mu_B^2.A^{-3}} \)
In order to have \(\displaystyle \forall i \in [0,P[, \frac{dE}{dSi}(P)=- \mu_s \mu_B . H(P) \),
the corresponding magnetic excitation field is: \( H(P_i)=H^i= - \frac{\tilde K}{\mu_s.\mu_B} \nabla Phi_U(S_i) \)
The definition of \( \Phi \) is
So that :
\( H= \displaystyle 2. \frac{\tilde K}{\mu_s.\mu_B} <S,U>. U \)
|
inline |
compute the \( \Phi_U(S) \) function
| [in] | U | begin iterator on anisotropy directions |
| [in] | eU | end iterator on anisotropy directions |
| [in] | S | begin iterator on direction of spin magnetic moment |
| [in] | eS | end direction of spin magnetic moment |
| [out] | phi | : the phi value \( <S,U>^2 \) |
| [out] | W | work value |
|
inline |
compute the \( \nabla. \Phi_U(S) . U \) function
| [in] | U | begin iterator on anisotropy directions |
| [in] | eU | end iterator on anisotropy directions |
| [in] | S | direction of spin magnetic moment |
| [in] | eS | end direction of spin magnetic moment |
| [out] | phi | : the phi value \( - <S,U>^2 \) |
| [out] | gradPhi | return value : \( \nabla \Phi_U(S) =- 2 . <S,U> . U \) |
| [out] | W | work value |
| [out] | W3 | work value |
|
inlinevirtual |
return the memory size of the included associations
Reimplemented from SM_SliceOperator.
|
inlinevirtual |
return the memory size of the class and the memory size of all its attributes/associations
Reimplemented from SM_LinearSliceOperator.
|
inlinestatic |
build a new instance of the operator
|
inlineoverridevirtual |