|
| 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 the memory size of the included associations More...
|
| |
| virtual tBoolean | updateInitialMagneticMomentDirections (const SM_RealField &S0) |
| | update the initial unit direction of spins More...
|
| |
| virtual tBoolean | initializeMagneticMomentDirections () override |
| | initialize magnetic moments direction _ time step index = 0 More...
|
| |
| const SM_TimeStepper & | getTimeStepper () const |
| | get the time stepper More...
|
| |
| SM_TimeStepper & | getTimeStepper () |
| | get the time stepper More...
|
| |
| const tReal & | getTime () const |
| | get the time More...
|
| |
| const tIndex & | getTimeIndex () const |
| | get the time index More...
|
| |
| tIndex & | getTimeIndex () |
| | get the time index More...
|
| |
| tReal & | getTime () |
| | get the time More...
|
| |
|
void | resetTime () |
| | reset time
|
| |
| const tReal & | getNoiseRate () const |
| | get the noise rate More...
|
| |
| tReal & | getNoiseRate () |
| | get the noise rate More...
|
| |
| void | setNoiseRateFunction (CORE_UniquePointer< SM_NoiseRateFunctionInterface > &f) |
| | gst the noise rate function More...
|
| |
| tBoolean | hasNoiseRateFunction () const |
| | return true if the noise rate function is not null More...
|
| |
| SM_NoiseRateFunctionInterface & | getNoiseRateFunction () |
| | get the noise rate function More...
|
| |
| const SM_NoiseRateFunctionInterface & | getNoiseRateFunction () const |
| | get the noise rate function More...
|
| |
| virtual void | setNoiseTemperature (const tReal &T) override |
| | set the noise as a temperature in Kelvin More...
|
| |
| void | setIsRelaxed (const tBoolean &isRelaxed) |
| | set if the system runs until relaxation More...
|
| |
| const tBoolean & | isRelaxed () const |
| | get if the system runs until relaxation More...
|
| |
| void | setRelaxationTolerance (const tReal &eps) |
| | set the relaxation tolerance to detect relaxation More...
|
| |
| const tReal & | getRelaxationTolerance () const |
| | get the relaxation tolerance to detect relaxation More...
|
| |
| const tReal & | getRelaxationValue () const |
| | get the relaxation value to detect relaxation for reading More...
|
| |
| tReal & | getRelaxationValue () |
| | get the relaxation value to detect relaxation for writing More...
|
| |
|
tReal | computeNetTorque () const |
| | compute Net Torque \( |S \wedge H |_\infty \)
|
| |
| virtual tReal | computeNetTorque (const tIndex &nParticles, const tReal *S, const tIndex &nHParticles, const tReal *H) const =0 |
| | compute Net Torque \( |S \wedge H |_\infty \) More...
|
| |
|
const SM_LandauLifschitzFunction & | getLandauLifschitzFunction () const |
| | get the Landau Lifschitz function return the Landau lifschitz function for reading
|
| |
| SM_LandauLifschitzFunction & | getLandauLifschitzFunction () |
| | get the Landau Lifschitz function More...
|
| |
| virtual void | normalize (const tBoolean &isAdimensionized) override |
| | normalize the system More...
|
| |
| const SM_RealField & | getMagneticField () const |
| | get the magnetic field for writting More...
|
| |
| const SM_RealField & | getMagneticMomentDirectionsVariation () const |
| | get the variation of the direction of the magnetic moments for writting More...
|
| |
| virtual void | discretize () override |
| | discretize the system More...
|
| |
|
virtual tULLInt | getGeneratedRandomNumbers () const override |
| | get the generated of random number within a stochastic run per one step of run
|
| |
| template<class StochOutputI > |
| tBoolean | deterministicRun (const tIndex &steppersNumber, SM_StochasticOutput< StochOutputI > &stochasticOutput) |
| | compute deterministic running of steppers number of the system with computing statistics More...
|
| |
| tBoolean | stochasticRun (const tIndex &steppersNumber, SM_MultiStochasticFunctionsInterface &sfs) |
| | compute the steppers number of system without stochastic output More...
|
| |
| template<class StochOutputImplement > |
| tBoolean | stochasticRun (const tIndex &steppersNumber, SM_MultiStochasticFunctionsInterface &multiStochasticFunctions, SM_StochasticOutput< StochOutputImplement > &stochasticOutput) |
| | compute the steppers number of system without stochastic output More...
|
| |
| tBoolean | stochasticJRun (const tIndex &steppersNumber, SM_StochasticFunctionsInterface &stochasticFunctions, const std::function< void(const tReal &, const tReal &, const tReal &, tReal &)> &F) |
| | compute the steppers number of system for reaching the relaxed state More...
|
| |
| template<class StochOutputImpl > |
| tBoolean | stochasticJRun (const tIndex &steppersNumber, SM_StochasticFunctionsInterface &stochasticFunctions, SM_StochasticOutput< StochOutputImpl > &stochasticOutput, const std::function< void(const tReal &, const tReal &, const tReal &, tReal &)> &F) |
| | compute the steppers number of system for reaching the relaxed state More...
|
| |
| virtual void | computeVariationMagneticField (const tReal &dt, SM_RealField &H) const =0 |
| | computes \( H:=H.dt \) More...
|
| |
| virtual void | computeBrownianVariationMagneticField (SM_MultiStochasticFunctionsInterface &stochFs, const tReal &dt, const tReal &bdt, const tReal &epsilon, const tBoolean &incdWt, tReal *dWt, SM_RealField &H)=0 |
| | add stochastic brownian field \( H:=dt.H+ sdt.\varepsilon.N(0,1) \) More...
|
| |
| virtual tBoolean | computeMagneticMomentDirectionsAtNextTimeStep (const tReal &dt, const tReal &epsilon_t, const SM_RealField &deltaSt, SM_RealField &St)=0 |
| | compute direction of magnetic moments at next time More...
|
| |
| virtual tString | toString () const override |
| | turn the class into a string representation More...
|
| |
| void | setNetwork (CORE_UniquePointer< SM_Network > net) |
| | set the network More...
|
| |
| const SM_Network & | getNetwork () const |
| | get the network More...
|
| |
| SM_Network & | getNetwork () |
| | get the network More...
|
| |
| tBoolean | hasNetwork () const |
| | return true if the system has a network More...
|
| |
| const SM_Material & | getMaterial () const |
| | get the material of the network More...
|
| |
| SM_Material & | getMaterial () |
| | get the material of the network More...
|
| |
| void | setInitialMagneticMomentDirections (const std::valarray< tReal > &S0) |
| | set the initial unit direction of spins More...
|
| |
| void | setInitialMagneticMomentDirections (const SM_RealField &S0) |
| | set the initial unit direction of spins More...
|
| |
| void | setInitialMagneticMomentDirections (const tIndex &N, const std::array< tReal, SM_Constants::DIM > &S0) |
| | set the initial unit direction of spins More...
|
| |
| const SM_RealField & | getInitialMagneticMomentDirections () const |
| | get the initial unit direction of spins More...
|
| |
| SM_RealField & | getInitialMagneticMomentDirections () |
| | get the initial unit direction of spins for writting More...
|
| |
| const SM_RealField & | getMagneticMomentDirections () const |
| | get the unit direction of spins at time More...
|
| |
| SM_RealField & | getMagneticMomentDirections () |
| | get the unit direction of spins at time for writting More...
|
| |
| void | addOperator (CORE_UniquePointer< SM_Operator > op) |
| | add operator More...
|
| |
| const SM_SliceOperator * | getOperator (const tString &name) const |
| | get the operator with name More...
|
| |
| SM_SliceOperator * | getOperator (const tString &name) |
| | get the operator with name More...
|
| |
| void | copyOperators (const SM_System &system) |
| | copy the operator More...
|
| |
| const std::map< tString, CORE_UniquePointer< SM_Operator > > & | getOperators () const |
| | get the operators More...
|
| |
| std::map< tString, CORE_UniquePointer< SM_Operator > > & | getOperators () |
| | get the operators More...
|
| |
| tIndex | getOperatorsNumber () const |
| | get the operators number More...
|
| |
| void | getOperatorsName (std::vector< tString > &names) const |
| | get the operator names More...
|
| |
| virtual void | setStochasticNoise (const tReal &eps) |
| | set the stochastic noise without dimension More...
|
| |
| const tReal & | getStochasticNoise () const |
| | get the stochastic noise without dimension More...
|
| |
| const tReal & | getNoiseTemperature () const |
| | get the noise temperature in Kelvin More...
|
| |
| const tIndex & | getStepIndex () const |
| | get the step index More...
|
| |
| tIndex & | getStepIndex () |
| | get the step index More...
|
| |
| virtual void | sumOverNetworks (const int &rootNetwork, tIndex &n, const tIndex &nValues, tReal *values) const |
| | sum the values of all network More...
|
| |
| void | computeMagneticMomentDirectionsSumOverNetworks (const int &rootNetwork, std::array< tReal, SM_Constants::DIM > &sumS) const |
| | compute the sum over the domain of magnetic moment dierctions More...
|
| |
| void | computeMagneticMomentDirectionsMeanOverNetworks (const int &rootNetwork, std::array< tReal, SM_Constants::DIM > &meanS) const |
| | compute the mean over the domain of magneticmoment directions More...
|
| |
| void | computeMagneticMomentDirectionsSum (const tInteger &start, const tInteger &end, std::array< tReal, SM_Constants::DIM > &sumS) const |
| | compute the sum of magnetic moment directions over the network More...
|
| |
| void | updateOperatorsState (const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) |
| | update the operators state before computeing magnetic field More...
|
| |
| void | computeMagneticField (const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S, SM_RealField &H) const |
| | compute the magnetic field at time step index t by calling the virtual method SM_Operator::computeMagneticField() More...
|
| |
| tReal | computeSpinEnergy (const tIndex &i, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const |
| | compute the energy of the spin of the system More...
|
| |
| tReal | computeSpinEnergy (const tIndex &i, const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const |
| | compute the energy of the spin of the system More...
|
| |
| const tReal & | computeEnergies (std::valarray< tReal > &energies) const |
| | compute the energies per operators More...
|
| |
| const tReal & | computeEnergies (const tIndex &timeIndex, std::valarray< tReal > &energies) const |
| | compute the energies per operators More...
|
| |
|
| 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...
|
| |
|
|
| SM_LandauLifschitzSystem (void) |
| | create a class
|
| |
|
virtual | ~SM_LandauLifschitzSystem (void) |
| | destroy the class
|
| |
| tReal | computeNetSliceTorque (const tIndex &startS, const tIndex &endS, const tReal *S, const tIndex &startH, const tReal *H) const |
| | compute Net Torque \( |S \wedge H |_\infty \) for all particules in indices in [start,end[ More...
|
| |
| void | setIsBrownianNull (const tBoolean &v) |
| | set if the brownian variable is null More...
|
| |
|
const tBoolean & | isBrownianNull () const |
| | get if the brownian variable is null
|
| |
|
void | setIsRealBrownianVariable (const tBoolean &v) |
| | set if the brownian variable is a field or a real
|
| |
|
const tBoolean & | isRealBrownianVariable () const |
| | get if the brownian variable is a field or a real
|
| |
| const SM_RealField & | getBrownianField () const |
| | get the generated brownian variable for reading More...
|
| |
| SM_RealField & | getBrownianField () |
| | get the generated brownian variable for reading More...
|
| |
|
void | setLandauLifschitzFunction (CORE_UniquePointer< SM_LandauLifschitzFunction > llF) |
| | set the landau lifschitz function
|
| |
| SM_RealField & | getMagneticField () |
| | get the magnetic field for writting More...
|
| |
| SM_RealField & | getMagneticMomentDirectionsVariation () |
| | get the variation of the direction of the magnetic moments for writting More...
|
| |
| void | computeVariationMagneticFieldSlice (const tIndex &start, const tIndex &end, const tReal &dt, tReal *H) const |
| | computes \( H:=H.dt \) for particle indices in [start,end[ More...
|
| |
| void | computeBrownianVariationMagneticFieldSlice (SM_StochasticFunctionsInterface &randF, const tIndex &start, const tIndex &end, const tReal &dt, const tReal &bdt, const tReal &epsilon, const tBoolean &incdWt, tReal *dWt, tReal *H) |
| | add stochastic brownian field \( H:=dt.H+ sdt.\varepsilon.N(0,1) \) for particle indices in [start,end[ More...
|
| |
| template<class StochFImpl > |
| void | computeBrownianVariationMagneticFieldSliceWithSCStochasticFunctions (SM_StochasticFunctions< StochFImpl > &randF, tIndex start, tIndex end, const tReal &dt, const tReal &bdt, const tReal &epsilon, const tBoolean &incdWt, tReal *dWt, tReal *H) |
| | add stochastic brownian field \( H:=dt.H+ sdt.\varepsilon.N(0,1) \) for particle indices in [start,end[ More...
|
| |
|
| SM_System (void) |
| | create a class
|
| |
|
virtual | ~SM_System (void) |
| | destroy the class
|
| |
| tReal | computeEnergy (const SM_Network &network, const SM_Material &material, const SM_RealField &S) const |
| | compute the energy of the system More...
|
| |
| tReal | computeEnergy (const tIndex &timeIndex, const SM_Network &network, const SM_Material &material, const SM_RealField &S) const |
| | compute the energy of the system More...
|
| |
|
| CORE_Object () |
| | build an instance of the object
|
| |
|
virtual | ~CORE_Object () |
| | destroy the instance of object std
|
| |
This class is a simulation of one trajectory class for Stoch Magnet package.
This class solves the system
- \( \displaystyle Y_t=\alpha. A(S_t) H.dt + \epsilon \alpha A(S_t)dW_t - \delta . \varepsilon^2.\alpha^2.\left( 1+\beta^2\right).dt.S_t \)
- \( \S_t=\displaystyle \frac{Y_t}{|Y_t|} \)
- \( dW_t \sim \sqrt{dt} \mathcal{N}(0,1) \) Where \( \delta \) is 0 for Ito System and 1 for Stratonovich normalized system For the Stratonovich system the Matrix A is computed with the assumption that \( |\mu_t|=1 \) so that the we have directly \( \mu_t= Y_t \).
The general stochastic relaxation process implemented in the class SM_StratonovichNormalizedSystem can be sumarized with the following algorithm