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