11 #include "SM_Network.h"
14 #include "SM_Material.h"
17 #include "SM_SliceOperator.h"
20 #include "SM_LinearSliceOperator.h"
50 CORE_UniquePointer<SM_SliceOperator> mSliceOperator;
74 virtual CORE_UniquePointer<SM_Operator>
NewInstance()
const=0;
119 mSliceOperator=std::move(sliceOperator);
128 return *mSliceOperator.get();
134 return *mSliceOperator.get();
161 mSliceOperator->adimensionize(cH);
169 mSliceOperator->discretize(network,material);
185 mSliceOperator->updateState(timeIndex,network,material,S);
207 const tBoolean& alpha,
222 const tIndex& timeIndex,
226 return mSliceOperator->computeSpinEnergy(i,timeIndex,network,material,S);
275 std::stringstream ss;
277 ss<<
" slice Operator:"<<mSliceOperator->toString()<<
"\n";
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: CORE_Object.h:278
tString getIdentityString() const
retrun the string identification of the class
Definition: CORE_Object.h:321
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
This class is describes a network composed by.
Definition: SM_Network.h:66
This class is a base class for Stoch Microm package.
Definition: SM_Object.h:36
This class is describes an operator.
Definition: SM_Operator.h:43
void discretize(const SM_Network &network, const SM_Material &material)
discretize the operator on the network
Definition: SM_Operator.h:168
const SM_SliceOperator & getSliceOperator() const
get the slice operator for reading
Definition: SM_Operator.h:133
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
Definition: SM_Operator.h:181
virtual tReal computeEnergy(const SM_Network &network, const SM_Material &material, const SM_RealField &S, const SM_RealField &H) const =0
compute the energy as linear by virtual method
tBoolean isLinear() const
Definition: SM_Operator.h:153
tString getName() const
get the name of the operator
Definition: SM_Operator.h:147
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_Operator.h:91
tReal computeEnergy(const SM_Network &network, const SM_Material &material, const SM_RealField &S) const
compute the energy by virtual method
Definition: SM_Operator.h:240
virtual void computeMagneticField(const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S, const tBoolean &alpha, SM_RealField &H) const =0
compute the magnetic field by virtual method
virtual tString toString() const override
return string representaton of the operator
Definition: SM_Operator.h:274
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: SM_Operator.h:102
virtual void copy(const SM_Operator &op)
copy
Definition: SM_Operator.h:140
SM_SliceOperator & getSliceOperator()
get the slice operator for writing
Definition: SM_Operator.h:127
virtual CORE_UniquePointer< SM_Operator > NewInstance() const =0
create a new instance of this
void adimensionize(const tReal &cH)
adimensionize operator with characteric field value in J
Definition: SM_Operator.h:160
SM_Operator(void)
create a network class
Definition: SM_Operator.h:57
virtual tReal computeSpinEnergy(const tIndex &i, const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const
compute the spin energy by virtual method
Definition: SM_Operator.h:221
virtual ~SM_Operator(void)
destroy
Definition: SM_Operator.h:64
void setSliceOperator(CORE_UniquePointer< SM_SliceOperator > sliceOperator)
set the slice operator
Definition: SM_Operator.h:118
virtual tReal computeEnergy(const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const =0
compute the energy by virtual method
This class is describes an operator operating on slice of particles of a network SM_Network.
Definition: SM_SliceOperator.h:32
const tString & getName() const
return the operator name
Definition: SM_SliceOperator.h:119
virtual void copy(const SM_SliceOperator &op)
copy
Definition: SM_SliceOperator.h:129
This class is a one simulation of a beam for Stoch Magnet package.
Definition: SM_System.h:53