This class is describes an operator operating on slice of particles of a network SM_Network.
More...
|
| virtual CORE_UniquePointer< SM_SliceOperator > | NewInstance () const =0 |
| | 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 nthe memory size of the included associations More...
|
| |
| 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 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 =0 |
| | compute the magnetic field slice by virtual method for particles in indices [startIndex,endIndex[ More...
|
| |
| virtual tReal | computeSpinEnergy (const tIndex &i, const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const =0 |
| | 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 =0 |
| | compute the energy by virtual method More...
|
| |
|
virtual tString | toString () const override |
| | return string representaton of the operator
|
| |
|
| SM_Object (void) |
| | create
|
| |
|
virtual | ~SM_Object (void) |
| | destroy
|
| |
| 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...
|
| |
This class is describes an operator operating on slice of particles of a network SM_Network.
The SM_SliceOperator implements :
- adimenisonize(h) : adimensionizes the operator with the charactericti values of the field h
- discretize(SM_Network,SM_Material) : discretizes the operator with the network and material data
- updateState(stepÎndex,SM_Network,SM_Material,S) : updates the operator with the direction of the magnetic moment of spins
- computeMagneticField(stepIndex,SM_Network,SM_Material,S,H) computes the magnetic field H from S and the data of the network and the material for stepIndex
- computeSpinEnergy(i,stepIndex,SM_Network,SM_Material,S) computes the energy of the spin i from S and the data of the network and the material for stepIndex
computeEnergy(,stepIndex,SM_Network,SM_Material,S) compute sthe enrgy of the network
- Author
- Stephane Despreaux
- Version
- 2.0
| virtual void SM_SliceOperator::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 |
|
pure virtual |
compute the magnetic field slice by virtual method for particles in indices [startIndex,endIndex[
- Parameters
-
| [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 |
| [in] | nH | number of elements of H |
| [in,out] | H | magnetic field of size nH x dim |
Computes \( H=alpha.H+H_{op} \)
Implemented in SM_MacroCellsDemagnetizedOperator, SMOMPI_DipolarOperator, SM_ZeemanOperator, SM_ConstantZeemanOperator, SM_HeisenbergOperator, SM_DMIOperator, SM_AnisotropyOperator< I >, SM_AnisotropyOperator< SM_CubicAnisotropyOperator >, SM_AnisotropyOperator< SM_PlanarAnisotropyOperator >, and SM_AnisotropyOperator< SM_UniaxialAnisotropyOperator >.
| virtual tMemSize SM_SliceOperator::getMemorySize |
( |
| ) |
const |
|
inlinevirtual |
return the memory size of the class and the memory size of all its attributes/associations
- Returns
- the memory size of the class and the memory size of its attributes/associations in bytes The mamory size is :
- the added size of the base classes which contains:
- the primary attributes size depends on the order: (first delare the smallest attributes size
- all virtual functions costs <pointer-size> (4 32xor 8 64x) bytes by virtual function
- virtual inherihtance will increase of (4 or 8) bytes
- we add the size of the contains values of the attributes : for example the size of a string is the length of the string 1 octet = 1 byte 1 Ko = 1024 bytes 1 Mo = 1024 Ko 1 Go = 1024 Mo
Reimplemented from SM_Object.
Reimplemented in SM_ZeemanOperator, SM_PermanentZeemanOperator, SM_ConstantZeemanOperator, SM_HeisenbergOperator, SM_DMIOperator, SM_MacroCellsExternalDemagnetizedOperator, SM_MacroCellsDemagnetizedOperator, SM_MacroCellsContinuousDemagnetizedOperator, SM_DipolarOperator, SMOMPI_DipolarOperator, SM_UniaxialAnisotropyOperator, SM_PlanarAnisotropyOperator, SM_CubicAnisotropyOperator, SM_AnisotropyOperator< I >, SM_AnisotropyOperator< SM_CubicAnisotropyOperator >, SM_AnisotropyOperator< SM_PlanarAnisotropyOperator >, and SM_AnisotropyOperator< SM_UniaxialAnisotropyOperator >.