Ising Model

class IsingGenericVectorValuedObs

Public Functions

template<class StateSpace, class Grid>
std::vector<double> measure(const StateSpace &statespace, const Grid &grid)

Public Members

std::string name = "dummy"
std::string desc = "testing vector-valued observables ..."
template<typename SpinType = int>
class Ising
#include <Ising.h>

Ising Hamiltonian This defines the Ising Hamiltonian.

It only consists of a single part, namely the interaction.

Template Parameters
  • SpinType: the type in which to store the binary magnetization values.

Public Types

typedef std::array<SpinType, SymD> StateVector

Public Functions

Ising(double J)
~Ising()
template<class StateSpace, class Lattice, class RNG>
void initstatespace(StateSpace &statespace, Lattice &grid, RNG &rng) const

Public Members

double J
const std::string name = "Ising"
std::array<Standard_Interaction<StateVector>*, 1> interactions = {new Standard_Interaction<StateVector>(J)}
Magnetization obs_m
Energy<Ising> obs_e
MagFTComp obs_fx
MagFTComp obs_fy
IsingGenericVectorValuedObs dummy
decltype(std::make_tuple(obs_m, obs_e, obs_fx, obs_fy, dummy)) observables = std::make_tuple(obs_m, obs_e, obs_fx, obs_fy, dummy)

Public Static Attributes

constexpr int SymD = 1
namespace MARQOV

The MARQOV namespace.

This namespace collects all things that are related to MARQOV.

template<class Lattice>
struct Wolff<Ising<int>, Lattice>
#include <Ising.h>

Specialization of the Wolff algorithm for the Ising model.

The principle structure is identical to the general version of the algorithm See wolff.h for details

Public Static Functions

template<class RNG, class StateSpace>
int move(const Ising<int> &ham, const Lattice &grid, StateSpace &statespace, RNG &rng, double beta, int rsite)