Blume-Capel Model¶
-
template<typename
SpinType= int>
classBlumeCapel¶ - #include <BlumeCapel.h>
The Blume-Capel Hamiltonian.
- Template Parameters
SpinType: the type of the state vector
Public Functions
-
BlumeCapel(double J, double D)¶ Constructor of the Blume-Capel model.
- Parameters
J: standard interaction parameterD: zero-field splitting parameter
Public Members
-
double
J¶
-
double
D¶
-
const std::string
name¶
-
std::array<Standard_Interaction<StateVector>*, 1>
interactions= {new Standard_Interaction<StateVector>(J)}¶
-
std::array<Onsite_Quadratic<StateVector>*, 1>
onsite= {new Onsite_Quadratic<StateVector>(D)}¶
-
Magnetization
obs_m¶
-
std::tuple<Magnetization>
observables¶
Public Static Attributes
-
constexpr int
SymD= 1¶
-
template<typename
SpinType>
classInitializer<BlumeCapel<SpinType>> : public Spin1_Initializer<BlumeCapel<SpinType>::StateVector>¶
-
namespace
MARQOV The MARQOV namespace.
This namespace collects all things that are related to MARQOV.
-
template<class
SpinType, classLattice>
classEmbedder<BlumeCapel<SpinType>, Lattice>¶ - #include <BlumeCapel.h>
Specialization of the Embedding class for the Blume Capel model.
- Template Parameters
SpinType: the type of the spinLattice: the type of the lattice
Public Functions
-
Embedder(const Hamiltonian &ham, const Lattice &lat, StateSpace &statespace)¶ Constructs a Blume Capel embedding object.
- Parameters
ham: The corresponding Hamiltonianlat: The corresponding latticestatespace: The statespace of the simulation
-
template<class
RNG>
voiddraw(RNG &rng, StateVector &sv)¶ Set new embedding variable.
- Note
For this specific model this is not necessary, as the embedding is fixed
-
double
coupling(int pos1, int pos2) const¶ Computes the Wolff coupling when attempting to add a spin to the cluster.
- Return
The scalar Wolff coupling (a double)
- Note
For this model, only clusters on the subset of +1/-1 spins are created. Spin-0 site are left untouched. The update will hence not be ergodic!
- Parameters
pos1: The position (index) of the current state vector (which is already in the cluster)pos2: The position (index) of a neighbour being checked whether it will become part of the cluster as well
-
void
flip(StateVector &sv) const¶ Specifies how a spin flip is performed.
Private Types
-
typedef BlumeCapel<SpinType>
Hamiltonian¶
-
typedef Hamiltonian::StateVector
StateVector¶
-
typedef MARQOV::Space<StateVector, Lattice>
StateSpace¶
-
template<class