\(\phi^4\) Model¶
-
template<class
StateVector
>
classPhi4_Initializer_Radial
¶ Public Static Functions
-
template<class
RNGCache
>
StateVectornewsv
(const StateVector &osv, RNGCache &rng)¶
-
template<class
-
template<class
StateVector
>
classPhi4_Initializer_Cartesian
¶ Public Static Functions
-
template<class
RNGCache
>
StateVectornewsv
(const StateVector &osv, RNGCache &rng)¶
Public Static Attributes
-
static constexpr int
SymD
= std::tuple_size<StateVector>::value¶
-
template<class
-
template<class
StateVector
>
classOnsite_Fourth_Minus_One
: public OnSite<StateVector, double>¶ - #include <Phi4.h>
A possible implementation of a fourth-power on-site term.
This is specific to the Phi4 model
- Template Parameters
StateVector
: the type of the state vector
-
template<typename
SpinType
, typenameCouplingType
= double>
classPhi4
¶ - #include <Phi4.h>
Phi4 Hamiltonian.
This defines a O(N) Hamiltonian with additional mass and fourth-order term
- Template Parameters
SpinType
: the type in which to store the magnetization values.CouplingType
: the type in which to store the coupling constants of the on-site terms
Public Functions
-
Phi4
(double beta, double lambda, double mass)¶
-
std::string
paramname
(int i)¶ Allows to give the Hamiltonian parameter names.
- Return
the parameter name (string)
- Parameters
i
: index of the parameter
Public Members
-
double
beta
¶
-
double
lambda
¶
-
double
mass
¶
-
const double
J
= -1¶
-
const std::string
name
= "Phi4"¶
-
Standard_Interaction<StateVector>
phi4interaction
¶
-
Onsite_Quadratic<StateVector>
onsite_standard
¶
-
Onsite_Fourth_Minus_One<StateVector>
onsite_fourth_minus_one
¶
-
std::array<Standard_Interaction<StateVector>*, 1>
interactions
= {new Standard_Interaction<StateVector>(J)}¶
-
std::vector<OnSite<StateVector, CouplingType>*>
onsite
¶
-
Magnetization
obs_m
¶
Public Static Attributes
-
constexpr int
SymD
= 3¶
-
template<>
classInitializer
<Phi4<double, double>> : public Phi4_Initializer_Radial<Phi4<double, double>::StateVector>¶
-
namespace
MARQOV
The MARQOV namespace.
This namespace collects all things that are related to MARQOV.
-
template<class
SpinType
, classCouplingType
, classLattice
>
classEmbedder
<Phi4<SpinType, CouplingType>, Lattice>¶ - #include <Phi4.h>
Specialization of the Embedding class for the Phi4 model.
- Template Parameters
SpinType
: the type in which to store the magnetization values.CouplingType
: the type of the coupling of the on-site term (in case there is one)
Public Functions
-
Embedder
(const Hamiltonian &ham, const Lattice &lat, StateSpace &statespace)¶ Constructs a Heisenberg embedding object.
- Parameters
ham
: The corresponding Hamiltonianlat
: The corresponding latticestatespace
: The statespace of the simulation
-
template<class
RNG
>
voiddraw
(RNG &rng, StateVector &sv) noexcept¶ Set new embedding variable.
Typically, this function is executed once before every cluster update. The variable can be drawn randomly (for which case an RNG is provided), but of course can also follow some sequential scheme.
- Template Parameters
RNG
: the type of the random number generator
- Parameters
rng
: reference to the random number generator
-
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)
- 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)¶ Specifies how a spin flip in the embedded (reduced) model is performed.
- Parameters
sv
: the spin to flipped
Private Types
-
typedef Phi4<SpinType, CouplingType>
Hamiltonian
¶
-
typedef Hamiltonian::StateVector
StateVector
¶
-
typedef Space<typename Hamiltonian::StateVector, Lattice>
StateSpace
¶
Private Static Attributes
-
constexpr int
SymD
= Hamiltonian::SymD¶
-
template<class