1 #ifndef SMOMPI_DipolarOperator_H
2 #define SMOMPI_DipolarOperator_H
5 #include "SM_DipolarOperator.h"
9 #include "MPI_Environment.h"
11 #include "MPI_CoreToCoreIMessage.h"
32 static constexpr tMPITag TAG_P=0;
33 static constexpr tMPITag TAG_S=1;
34 static constexpr tMPITag TAG_H=2;
36 mutable std::valarray<tReal> mPc;
37 mutable std::valarray<tReal> mSc;
62 inline static CORE_UniquePointer<SelfClass>
New() {
63 return CORE_UniquePointer<SelfClass>(
new SelfClass(),
70 virtual CORE_UniquePointer<SM_SliceOperator>
NewInstance()
const override {
137 const tIndex& startIndex,
138 const tIndex& endIndex,
140 const tBoolean& alpha,
142 tReal *H)
const final {
162 const tBoolean& alpha,
179 const tIndex& timeIndex,
203 const tIndex& startIndex,
204 const tIndex& endIndex,
205 const tReal *S)
const final;
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:113
This class is describes a SMOMPI implementation of dipolar operator.
Definition: SMOMPI_DipolarOperator.h:21
virtual ~SMOMPI_DipolarOperator(void)
destroy
Definition: SMOMPI_DipolarOperator.h:50
void computeMagneticFieldAtNetwork(const SM_Material &material, const SM_Network &networkP, const tReal *S_P, const SM_Network &networkX, const tBoolean &alpha, const tInteger &nH, tReal *H) const
compute the anisotropy magnetic field by virtual method
Definition: SMOMPI_DipolarOperator.cpp:5
virtual tReal computeSpinEnergy(const tIndex &i, const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const final
compute the spin energy by virtual method
Definition: SMOMPI_DipolarOperator.cpp:126
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SMOMPI_DipolarOperator.h:88
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 final
compute the anisotropy magnetic field by virtual method
Definition: SMOMPI_DipolarOperator.h:134
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SMOMPI_DipolarOperator.h:100
SMOMPI_DipolarOperator(void)
create a network class
Definition: SMOMPI_DipolarOperator.h:43
virtual CORE_UniquePointer< SM_SliceOperator > NewInstance() const override
create a New instance of this
Definition: SMOMPI_DipolarOperator.h:70
virtual tReal computeEnergySlice(const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const tIndex &startIndex, const tIndex &endIndex, const tReal *S) const final
compute the energy at time t by virtual method for all particles in [startIndex,endIndex[
Definition: SMOMPI_DipolarOperator.cpp:251
static CORE_UniquePointer< SelfClass > New()
build a new instance of the operator
Definition: SMOMPI_DipolarOperator.h:62
This class is describes a demagnetized operator.
Definition: SM_DipolarOperator.h:44
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SM_DipolarOperator.h:107
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