1 #ifndef SM_DipolarOperator_H
2 #define SM_DipolarOperator_H
5 #include "SM_SliceOperator.h"
6 #include "SM_LinearSliceOperator.h"
9 #include "SM_Network.h"
13 #include "SM_DipolarField.h"
134 mLambdaH=1./mLambdaH;
182 const tBoolean& alpha,
208 const tBoolean& alpha,
228 const tInteger& nParticles,
const tReal* X,
const tReal* S,
229 const tReal *Xi,
const tReal *Si,
270 const tInteger& nParticles,
const tReal* X,
const tReal* S,
271 const tReal *Xi,
const tReal *Si,
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: CORE_Object.h:278
static constexpr tDimension DIM
space dimension
Definition: SM_Constants.h:80
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
Definition: SM_DipolarField.h:583
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
Definition: SM_DipolarField.h:459
This class is describes a demagnetized operator.
Definition: SM_DipolarOperator.h:44
void computeDipolarFieldAtPoints(const SM_Material &material, const tInteger &nP, const tReal *P, const tReal *S, const tInteger &nX, const tReal *X, const tBoolean &alpha, tReal *H) const
compute the magnetic field by virtual method
Definition: SM_DipolarOperator.cpp:4
static void ComputeSpinDipolarEnergy(const tReal &mu_s, const tReal &Edip, const tInteger &nParticles, const tReal *X, const tReal *S, const tReal *Xi, const tReal *Si, tReal &E)
compute the dipolar spin energy
Definition: SM_DipolarOperator.h:226
virtual void discretize(const SM_Network &network, const SM_Material &material) override
discretize the operator on the netowek
Definition: SM_DipolarOperator.h:123
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_DipolarOperator.h:95
void computeDipolarFieldAtSeparatedPoints(const SM_Material &material, const tInteger &nP, const tReal *P, const tReal *S, const tInteger &nX, const tReal *X, const tBoolean &alpha, tReal *H) const
compute the dipolar field at separated X points
Definition: SM_DipolarOperator.cpp:96
virtual ~SM_DipolarOperator(void)
destroy
Definition: SM_DipolarOperator.h:73
SM_DipolarOperator(void)
create a network class
Definition: SM_DipolarOperator.h:64
const tReal & getLambdaH() const
get lambda H
Definition: SM_DipolarOperator.h:147
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SM_DipolarOperator.h:107
static void ComputeSeparatedSpinDipolarEnergy(const tReal &mu_s, const tReal &Edip, const tInteger &nParticles, const tReal *X, const tReal *S, const tReal *Xi, const tReal *Si, tReal &E)
compute the dipolar spin energy for a separated domain
Definition: SM_DipolarOperator.h:268
This class is describes a linear operator interface in a slice of particles of a network.
Definition: SM_LinearSliceOperator.h:17
This class describes a materials defined by state attributes:
Definition: SM_Material.h:61
const tReal & getAdimensionizedDerivativeEnergyFactor() const
get the characteristic dipolar energy factor
Definition: SM_Material.h:401
const tReal & getAdimensionizedDipolarEnergyFactor() const
get the characteristic dipolar energy factor
Definition: SM_Material.h:395
This class is describes a network composed by.
Definition: SM_Network.h:66
This class is describes an operator operating on slice of particles of a network SM_Network.
Definition: SM_SliceOperator.h:32
void setName(const tString &name)
set the name
Definition: SM_SliceOperator.h:112
virtual void discretize(const SM_Network &network, const SM_Material &material)
discretize the operator on the network
Definition: SM_SliceOperator.h:142
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: SM_SliceOperator.h:97