C++ mpi module for stochmagnet_main Package
Static Public Member Functions | Protected Member Functions | List of all members
SM_DipolarField Class Reference

#include <SM_DipolarField.h>

Inheritance diagram for SM_DipolarField:
Inheritance graph
[legend]
Collaboration diagram for SM_DipolarField:
Collaboration graph
[legend]

Static Public Member Functions

static CORE_UniquePointer< SelfClassNew ()
 build a new unique instance of the class thos More...
 
static void ComputeUnscaledSpinDipolarField (const tReal *Xi, const tReal *sXj, const tReal *eXj, const tReal *sSj, std::array< tReal, SM_Constants::DIM > &Hi, std::array< tReal, SM_Constants::DIM > &U)
 compute the dipolar sping dipolar fiel at point X More...
 
static void ComputeUnscaledSpinDipolarFieldInSeparatedNetworkStorage (const tReal *Xi, const tReal *sYj, const tReal *eYj, const tReal *sSj, std::array< tReal, SM_Constants::DIM > &Hi, std::array< tReal, SM_Constants::DIM > &U)
 compute the dipolar sping dipolar fiel at point X More...
 
static void ComputeSeparatedUnscaledSpinDipolarField (const tReal *Xi, const tReal *sXj, const tReal *eXj, const tReal *sSj, std::array< tReal, SM_Constants::DIM > &Hi, std::array< tReal, SM_Constants::DIM > &U)
 compute the dipolar spin dipolar field at point X for separated domain \( X_i \not \in \Omega_j \) More...
 
static void ComputeUnscaledSpinEnergy (const tReal *Xi, const tReal *Si, const tReal *iXj, const tReal *eXj, const tReal *iSj, tReal &Ei)
 compute the dipolar field energy More...
 
static void ComputeSeparatedUnscaledSpinEnergy (const tReal *Xi, const tReal *Si, const tReal *iXj, const tReal *eXj, const tReal *iSj, tReal &Ei)
 compute the dipolar field unscaled energy in sperated domain \( \Omega_i \cap \Omega_j = \emptyset \) More...
 
static void ComputeSeparatedUnscaledSpinEnergy (const tReal *iXi, const tReal *eXi, const tReal *iSi, const tReal *iXj, const tReal *eXj, const tReal *iSj, tReal &E)
 compute the dipolar field energy More...
 
static void ComputeUnscaledSpinEnergy (const tReal *iXi, const tReal *eXi, const tReal *iSi, const tReal *iXj, const tReal *eXj, const tReal *iSj, tReal &E)
 compute the dipolar field 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_DipolarField (void)
 create a network class
 
virtual ~SM_DipolarField (void)
 destroy
 
- Protected Member Functions inherited from CORE_Object
 CORE_Object ()
 build an instance of the object
 
virtual ~CORE_Object ()
 destroy the instance of object std

 

Additional Inherited Members

- Public Member Functions inherited from SM_Object
 SM_Object (void)
 create
 
virtual ~SM_Object (void)
 destroy
 
virtual tMemSize getMemorySize () const
 return the memory size of the class and the memory size of all its attributes/associations More...
 
- 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...
 
virtual tMemSize getContentsMemorySize () const
 return nthe memory size of the included associations 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...
 
virtual tString toString () const
 return the string representation of the object node More...
 

Detailed Description

Author
Stephane Despreaux
Version
2.0

Member Function Documentation

◆ ComputeSeparatedUnscaledSpinDipolarField()

static void SM_DipolarField::ComputeSeparatedUnscaledSpinDipolarField ( const tReal *  Xi,
const tReal *  sXj,
const tReal *  eXj,
const tReal *  sSj,
std::array< tReal, SM_Constants::DIM > &  Hi,
std::array< tReal, SM_Constants::DIM > &  U 
)
inlinestatic

compute the dipolar spin dipolar field at point X for separated domain \( X_i \not \in \Omega_j \)

Parameters
[in]Xi: coordinate of the point i
[in]sXjbegin iterator on coordinates of the spins
[in]eXjend iterator on coordinates of the spins
[in]sSjbegin iterator on direction of magnetic moment of all spins
[out]Hi: value of the unscaled dipolar field at point i
[out]U: work array

\( H_{dip)(X)= \sum_{j=0, j \neq i }^{j=P-1} (3*<U_x,S_j>*U_x}-S_j))/|X_j-X|^3 \) with \( U_x=\frac{1}{|X_j-X|}. (X_j-X)\)

◆ ComputeSeparatedUnscaledSpinEnergy() [1/2]

static void SM_DipolarField::ComputeSeparatedUnscaledSpinEnergy ( const tReal *  iXi,
const tReal *  eXi,
const tReal *  iSi,
const tReal *  iXj,
const tReal *  eXj,
const tReal *  iSj,
tReal &  E 
)
inlinestatic

compute the dipolar field energy

Parameters
[in]iXibegin iterator on coordinates of the first spin i
[in]eXiend iterator on coordinates of the last spin i
[in]iSibegin iterator on direction of the first spin i
[in]iXjbegin iterator on coordinates of the first spin j
[in]eXjend iterator on coordinates of the last spin j
[in]iSjbegin iterator on direction of magnetic moment of the first spin j
[out]Eenergy of the spin i \( E=\sum_i E_i= \sum_i \displaystyle \sum_{j=j0}^{j=j_1} \frac{1}{r_{ij}^3} \left ( <S_i,S_j> -3<U,Si><U,Sj> \right )\) with \(r_{ij}=|P_j-P_i|\) and \( U=\frac{1}{r_ij} (P_j-P_i)\)

◆ ComputeSeparatedUnscaledSpinEnergy() [2/2]

static void SM_DipolarField::ComputeSeparatedUnscaledSpinEnergy ( const tReal *  Xi,
const tReal *  Si,
const tReal *  iXj,
const tReal *  eXj,
const tReal *  iSj,
tReal &  Ei 
)
inlinestatic

compute the dipolar field unscaled energy in sperated domain \( \Omega_i \cap \Omega_j = \emptyset \)

Parameters
[in]Xibegin iterator on coordinates of the spin i
[in]Sibegin iterator on direction of the spin i
[in]iXjbegin iterator on coordinates of the first spin j
[in]eXjend iterator on coordinates of the last spin j
[in]iSjbegin iterator on direction of magnetic moment of the first spin j
[out]Eienergy of the spin i \( E_i= \displaystyle \sum_{j=j0}^{j=j_1} \frac{1}{r_{ij}^3} \left ( <S_i,S_j> -3<U,Si><U,Sj> \right )\) with \(r_{ij}=|P_j-P_i|\) and \( U=\frac{1}{r_ij} (P_j-P_i)\)

◆ ComputeUnscaledSpinDipolarField()

static void SM_DipolarField::ComputeUnscaledSpinDipolarField ( const tReal *  Xi,
const tReal *  sXj,
const tReal *  eXj,
const tReal *  sSj,
std::array< tReal, SM_Constants::DIM > &  Hi,
std::array< tReal, SM_Constants::DIM > &  U 
)
inlinestatic

compute the dipolar sping dipolar fiel at point X

Parameters
[in]Xi: coordinate of the point i
[in]sXjbegin iterator on coordinates of the spins
[in]eXjend iterator on coordinates of the spins
[in]sSjbegin iterator on direction of magnetic moment of all spins
[out]Hi: value of the unscaled dipolar field at point i
[out]U: work array

\( H_{dip)(X)= \sum_{j=0, j \neq i }^{j=P-1} (3*<U_x,S_j>*U_x}-S_j))/|X_j-X|^3 \) with \( U_x=\frac{1}{|X_j-X|}. (X_j-X)\)

◆ ComputeUnscaledSpinDipolarFieldInSeparatedNetworkStorage()

static void SM_DipolarField::ComputeUnscaledSpinDipolarFieldInSeparatedNetworkStorage ( const tReal *  Xi,
const tReal *  sYj,
const tReal *  eYj,
const tReal *  sSj,
std::array< tReal, SM_Constants::DIM > &  Hi,
std::array< tReal, SM_Constants::DIM > &  U 
)
inlinestatic

compute the dipolar sping dipolar fiel at point X

Parameters
[in]Xi: coordinate of the point i
[in]sYjbegin iterator on coordinates of the spins
[in]eYjend iterator on coordinates of the spins
[in]sSjbegin iterator on direction of magnetic moment of all spins
[out]Hi: value of the unscaled dipolar field at point i
[out]U: work array

\( H_{dip)(X)= \sum_{j=0, j \neq i }^{j=P-1} (3*<U_x,S_j>*U_x}-S_j))/|X_j-X|^3 \) with \( U_x=\frac{1}{|X_j-X|}. (X_j-X)\)

◆ ComputeUnscaledSpinEnergy() [1/2]

static void SM_DipolarField::ComputeUnscaledSpinEnergy ( const tReal *  iXi,
const tReal *  eXi,
const tReal *  iSi,
const tReal *  iXj,
const tReal *  eXj,
const tReal *  iSj,
tReal &  E 
)
inlinestatic

compute the dipolar field energy

Parameters
[in]iXibegin iterator on coordinates of the first spin i
[in]eXiend iterator on coordinates of the last spin i
[in]iSibegin iterator on direction of the first spin i
[in]iXjbegin iterator on coordinates of the first spin j
[in]eXjend iterator on coordinates of the last spin j
[in]iSjbegin iterator on direction of magnetic moment of the first spin j
[out]Eenergy of the spin i \( E=\sum_i E_i= \sum_i \displaystyle \sum_{j=j0}^{j=j_1} \frac{1}{r_{ij}^3} \left ( <S_i,S_j> -3<U,Si><U,Sj> \right )\) with \(r_{ij}=|P_j-P_i|\) and \( U=\frac{1}{r_ij} (P_j-P_i)\)

◆ ComputeUnscaledSpinEnergy() [2/2]

static void SM_DipolarField::ComputeUnscaledSpinEnergy ( const tReal *  Xi,
const tReal *  Si,
const tReal *  iXj,
const tReal *  eXj,
const tReal *  iSj,
tReal &  Ei 
)
inlinestatic

compute the dipolar field energy

Parameters
[in]Xibegin iterator on coordinates of the spin i
[in]Sibegin iterator on direction of the spin i
[in]iXjbegin iterator on coordinates of the first spin j
[in]eXjend iterator on coordinates of the last spin j
[in]iSjbegin iterator on direction of magnetic moment of the first spin j
[out]Eienergy of the spin i \( E_i= \displaystyle \sum_{j=j0}^{j=j_1} \frac{1}{r_{ij}^3} \left ( <S_i,S_j> -3<U,Si><U,Sj> \right )\) with \(r_{ij}=|P_j-P_i|\) and \( U=\frac{1}{r_ij} (P_j-P_i)\)

◆ New()

static CORE_UniquePointer<SelfClass> SM_DipolarField::New ( )
inlinestatic

build a new unique instance of the class thos

Returns
an unique pointer of the operator

The documentation for this class was generated from the following file: