Blume-Emery-Griffiths Model¶
The Blume Emergy Griffiths (BEG) Hamiltonian.
introduced in M. Blume, V. J. Emery, and R. B. Griftiths, Phys. Rev. A 4, 1071 (1971) phase diagram: L. Wang, F. Lee, and J. D. Kimel, Phys. Rev. B 36, 8945 (1987)
-
template<class
StateVector
>
classBiquadraticExchangeInteraction
¶ Public Functions
-
BiquadraticExchangeInteraction
(double k)¶
-
template<class
StateSpace
>
doublediff
(const int rsite, const StateVector &svold, const StateVector &svnew, const decltype(std::declval<typename StateSpace::Lattice>().nbrs(0, 0)) &nbrs, StateSpace &s)¶
-
template<class
StateSpace
>
doubleenergy
(const StateSpace &statespace, const typename StateSpace::Lattice &grid, int c)¶
Public Members
-
double
k
¶ Scalar Prefactor.
-
-
template<typename
SpinType
= int>
classBlumeEmeryGriffiths
¶ -
Public Functions
-
BlumeEmeryGriffiths
(double J, double D, double K)¶
-
template<class
StateSpace
, classLattice
, classRNG
>
voidinitstatespace
(StateSpace &statespace, Lattice &grid, RNG &rng) const¶
Public Members
-
const std::string
name
¶
-
Standard_Interaction<StateVector>
standard_int
¶
-
Onsite_Quadratic<StateVector>
onsite_int
¶
-
BiquadraticExchangeInteraction<StateVector>
biquadratic_exchange_int
¶
-
std::array<Standard_Interaction<StateVector>*, 1>
interactions
= {&standard_int}¶
-
std::array<Onsite_Quadratic<StateVector>*, 1>
onsite
= {&onsite_int}¶
-
std::array<decltype(biquadratic_exchange_int)*, 1>
multisite
= {&biquadratic_exchange_int}¶
-
Magnetization
obs_m
¶
-
std::tuple<Magnetization>
observables
¶
Public Static Attributes
-
constexpr int
SymD
= 1¶
-
-
template<typename
SpinType
>
classInitializer
<BlumeEmeryGriffiths<SpinType>> : public Spin1_Initializer<BlumeEmeryGriffiths<SpinType>::StateVector>¶
-
namespace
MARQOV
The MARQOV namespace.
This namespace collects all things that are related to MARQOV.
-
template<class
SpinType
, classLattice
>
classEmbedder
<BlumeEmeryGriffiths<SpinType>, Lattice>¶ - #include <BlumeEmeryGriffiths.h>
Specialization of the Embedding class for the Blume Capel model.
Public Functions
-
Embedder
(const Hamiltonian &ham, const Lattice &lat, StateSpace &statespace)¶ Constructs a BEG 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.
- Parameters
sv
: The statevector that is flipped.
Private Types
-
typedef BlumeEmeryGriffiths<SpinType>
Hamiltonian
¶
-
typedef Hamiltonian::StateVector
StateVector
¶
-
typedef MARQOV::Space<typename Hamiltonian::StateVector, Lattice>
StateSpace
¶
-
-
template<class