|
C++ mpi module for stochmagnet_main Package
|
This class is describes a Zeeman operator interface. More...
#include <SM_ZeemanOperator.h>


Public Member Functions | |
| 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 nthe memory size of the included associations More... | |
| virtual CORE_UniquePointer< SM_SliceOperator > | NewInstance () const override |
| create a New instance of this More... | |
| virtual void | copy (const SM_SliceOperator &op) |
| copy More... | |
| const tIndex & | getParticlesNumber () const |
| return the number of particles for the zeeman operatpr More... | |
| const tIndex & | getTimeStepsNumber () const |
| return the number of time steps for the zeeman operatpr More... | |
| const tReal * | getHextAtTimeIndex (const tIndex &timeIndex) const |
| return Hext at time step index t More... | |
| tReal * | getHextAtTimeIndex (const tIndex &timeIndex) |
| return Hext at time step index t More... | |
| const tReal * | getHextValues () const |
| return Hext at time 0 More... | |
| tReal * | getHexValues () |
| return Hext More... | |
| void | setHext (std::initializer_list< tReal > &&values) |
| set the Hext value More... | |
| void | setHext (const std::vector< tReal > &values) |
| set the Hext value More... | |
| void | setHext (const std::array< tReal, SM_Constants::DIM > &values) |
| set the Hext value More... | |
| virtual void | adimensionize (const tReal &cH) override |
| adimensionize the operator More... | |
| virtual void | discretize (const SM_Network &network, const SM_Material &material) override |
| discretize the operator on the network More... | |
| virtual void | computeMagneticFieldSlice (const tIndex &timeIndex, 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 &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const override |
| compute the spin energy by virtual method 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... | |
| virtual tString | toString () const override |
| return the string representation of the class | |
Public Member Functions inherited from SM_SliceOperator | |
| const tString & | getName () const |
| return the operator name 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... | |
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_ZeemanOperator > | New () |
| build a new instance of the operator More... | |
| static void | ComputeSpinEnergy (const tReal &mu_s, const tReal *Hext, const tReal *iS, const tReal *eSi, tReal &E) |
| compute spin energy 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... | |
Protected Member Functions | |
| SM_ZeemanOperator (void) | |
| create a zeeman operator interface | |
| virtual | ~SM_ZeemanOperator (void) |
| destroy | |
| void | setParticlesNumber (const tIndex &p) |
| set zeeman particlules number More... | |
| void | setTimeStepsNumber (const tIndex &n) |
| set zeeman time steps More... | |
| const std::valarray< tReal > & | getHext () const |
| return Hext as an array More... | |
| std::valarray< tReal > & | getHext () |
| return Hext as an array More... | |
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 | |
Static Protected Member Functions | |
| static void | ComputeUnscaledSpinEnergy (const tReal *Hext, const tReal *iS, const tReal *eS, tReal &E) |
| compute the unscaled spin energy More... | |
This class is describes a Zeeman operator interface.
The zeeman energy is \( E= - \tilde \mu_s . \sum_{i=0}^{i=P-1} < H_{ext}(P_i),S_i>\)
In order to have \(\displaystyle \forall i \in [0,P[, H(P_i)=-\frac{1}{\tilde \mu_s} \frac{dE}{dS_i}(P_i)\),
the corresponding magnetic excitation field is: \( H_z(P_i)= H_{ext}(P_i) \)
The energy is minimum when when the spin orientation at the particle is oriented along $H_{ext}$.
|
inlineoverridevirtual |
adimensionize the operator
| [in] | cH | : characteristic field value in J |
Reimplemented from SM_SliceOperator.
|
virtual |
compute the energy at time t by virtual method for all particles in [startIndex,endIndex[
| [in] | timeIndex | : index of time |
| [in] | network | : network |
| [in] | material | : material of the network |
| [in] | startIndex | : start index of the particle to compute the energy |
| [in] | endIndex | : end index of the particle to compute the energy |
| [in] | S | unit direction of magnetic spin moment of size nParticles x dim |
Implements SM_SliceOperator.
Reimplemented in SM_ConstantZeemanOperator.
|
virtual |
compute the anisotropy magnetic field by virtual method
| [in] | timeIndex | : time step index |
| [in] | network | : network |
| [in] | material | : material of the network |
| [in] | startIndex | : start index of the particle to compute the energy |
| [in] | endIndex | : end index of the particle to compute the energy |
| [in] | S | unit direction of magnetic spin moment of size nParticles x dim |
| [in] | alpha | sum operator 0 or 1 |
| [in] | nH | number of elements of H |
| [in,out] | H | total magnetic field of size nH x dim |
Computes \( H=alpha.H+H_{op} \)
\( H_{op}= K. \nabla_{S_i} Phi(S_i,U) \)
Implements SM_SliceOperator.
Reimplemented in SM_ConstantZeemanOperator.
|
inlineoverridevirtual |
compute the spin energy by virtual method
| [in] | i | : index of the particles |
| [in] | timeIndex | : time step index |
| [in] | network | : network |
| [in] | material | : material of the network |
| [in] | S | unit direction of magnetic spin moment of size nParticles x dim |
Implements SM_SliceOperator.
Reimplemented in SM_ConstantZeemanOperator.
|
inlinestatic |
compute spin energy
| [in] | mu_s | : magnetic moment at particule i in \( J.T^{-1}\) |
| [in] | Hext | : external applied field at particule i |
| [in] | iS | : begin iterator on direction of magnetic moment of the spin at particule i |
| [in] | eSi | : end iterator on direction of magnetic moment of the spin at particule i |
| [out] | E | energy of the spin \( E = - \mu_s <S,H_{ext}> \) |
|
inlinestaticprotected |
compute the unscaled spin energy
| [in] | Hext | : external applied field at particule i |
| [in] | iS | : begin iterator on direction of magnetic moment of the spin at particule i |
| [in] | eS | : end iterator on direction of magnetic moment of the spin at particule i |
| [out] | E | energy of the spin E=<Hext,S> |
|
inlinevirtual |
|
inlineoverridevirtual |
discretize the operator on the network
| [in] | network | : network on which the operator is applied |
| [in] | material | : material of the network |
Reimplemented from SM_SliceOperator.
Reimplemented in SM_PermanentZeemanOperator, and SM_ConstantZeemanOperator.
|
inlinevirtual |
return nthe memory size of the included associations
Reimplemented from SM_SliceOperator.
|
inlineprotected |
return Hext as an array
|
inlineprotected |
return Hext as an array
|
inline |
return Hext at time step index t
| [in] | timeIndex | time step index of Hext in [0,SM_TimeStepper::GetMaximimumTimeStepsNumber()[ |
|
inline |
return Hext at time step index t
| [in] | timeIndex | time step index of Hext in [0,SM_TimeStepper::GetMaximimumTimeStepsNumber()[ |
|
inline |
return Hext at time 0
|
inline |
return Hext
|
inlinevirtual |
return the memory size of the class and the memory size of all its attributes/associations
Reimplemented from SM_SliceOperator.
Reimplemented in SM_PermanentZeemanOperator, and SM_ConstantZeemanOperator.
|
inline |
return the number of particles for the zeeman operatpr
|
inline |
return the number of time steps for the zeeman operatpr
|
inlinestatic |
build a new instance of the operator
|
inlineoverridevirtual |
create a New instance of this
Implements SM_SliceOperator.
Reimplemented in SM_PermanentZeemanOperator, and SM_ConstantZeemanOperator.
|
inline |
set the Hext value
| [in] | values | init value |
|
inline |
set the Hext value
| [in] | values | iniializer list of the values of Hext |
|
inline |
set the Hext value
| [in] | values | iniializer list of the values of Hext |
|
inlineprotected |
set zeeman particlules number
| [in] | p | : the number of Zeeman particules number |
|
inlineprotected |
set zeeman time steps
| [in] | n | : the number of times steps of the zeeman values |