Initializers¶
Initializers can be used to specify how the Metropolis Algorithm generates a local update to a State Vector. We do provide default behaviour, but is also possible to specify the behaviour for your Hamiltonian. To that end you should make a declaration in the following form visible before MARQOV::Core gets declared:
Here is the documentation for our default initializers.
-
template<typename
IntType
>
classSVInitializer
<std::array<IntType, 1>, typename std::enable_if<std::is_integral<IntType>::value && std::is_signed<IntType>::value>::type>¶ - #include <initializers.h>
Initializer for Ising-like models.
draws a random spin site +1/-1.
- Template Parameters
IntType
: the integer type used for storage.
Public Static Functions
-
template<class
RNGCache
>
StateVectornewsv
(const StateVector &svold, RNGCache &rng)¶ Flip the Ising spin.
- Return
the new state vector with flipped spin
- Template Parameters
RNGCache
: the Random Number Generator.
- Parameters
svold
: the old state vector.rng
: a reference to the RNG of the Monte Carlo simulation.
-
template<typename
T
>
classSVInitializer
<T, typename std::enable_if<std::is_floating_point<typename T::value_type>::value>::type>¶ Public Static Functions
-
template<class
RNGCache
>
StateVectornewsv
(const StateVector &svold, RNGCache &rng)¶ Flip the Spin.
- Return
The new state vector with flipped spin
- Template Parameters
RNGCache
: the Random Number Generator.
- Parameters
svold
: The old state vector.rng
: A reference to the RNG of the Monte Carlo simulation.
-
template<class
-
template<class
StateVector
>
classSpin1_Initializer
¶ - #include <initializers.h>
Initializer for models with integer spin states -1, 0, 1.
- Template Parameters
StateVector
: the type of the state vector.
Public Static Functions
-
template<class
RNGCache
>
StateVectornewsv
(const StateVector &svold, RNGCache &rng)¶ Draw a new state vector based on the old one.
- Return
The new state vector
- Template Parameters
RNG
: The Random Number Generator.
- Parameters
svold
: The old state vector.rng
: A reference to the RNG of the Monte Carlo simulation.
-
template<class
Hamiltonian
>
classInitializer
: public SVInitializer<Hamiltonian::StateVector>¶ - #include <initializers.h>
The generic case that can be specified by a user for a Hamiltonian.
- Template Parameters
Hamiltonian
: The Hamiltonian that you use.