XXZ Model

class XXZAntiferroStaggeredMagZ
#include <XXZAntiferro.h>

Staggered magnetization along the easy axis.

Note that the implementation of staggered magnetizations is always characteristic to the lattice being used, in this case RegularHypercubic

Public Functions

template<class StateSpace, class Grid>
double measure(const StateSpace &statespace, const Grid &grid)
XXZAntiferroStaggeredMagZ()

Public Members

std::string name
class XXZAntiferroStaggeredMagXY
#include <XXZAntiferro.h>

Staggered magnetization perpendicular to the easy axis.

Note that the implementation of staggered magnetizations is always characteristic to the lattice being used, in this case RegularHypercubic

Public Functions

template<class StateSpace, class Grid>
double measure(const StateSpace &statespace, const Grid &grid)
XXZAntiferroStaggeredMagXY()

Public Members

std::string name
template<class StateVector>
class XXZAntiferro_interaction
#include <XXZAntiferro.h>

Anistropic XXZ interaction.

interaction strength in z-direction is different from x,y

Public Functions

XXZAntiferro_interaction(const double &Delta)
StateVector get(const StateVector &phi)

Public Members

const double &Delta

Public Static Attributes

constexpr double J = 1
template<class StateVector>
class XXZAntiferro_extfield : public OnSite<StateVector, double>
#include <XXZAntiferro.h>

Anisotropic external field.

The field only acts along the z-direction

Template Parameters
  • StateVector: the type of the state vectors

Public Functions

XXZAntiferro_extfield(const double &H)

Constructor of anisotropic external field term.

Parameters
  • H: the coupling constant of the field in z-direction

double get(const StateVector &phi)
template<typename SpinType>
class XXZAntiferro
#include <XXZAntiferro.h>

Hamiltonian of the antiferromagnetic XXZ O(3) model.

Template Parameters
  • SpinType: the type in which to store the vector-valued magnetization values.

Public Types

typedef std::array<SpinType, SymD> StateVector

Public Functions

XXZAntiferro(double Delta, double H)

Public Members

double Delta
double H
const std::string name
std::array<XXZAntiferro_interaction<StateVector>*, 1> interactions = {new XXZAntiferro_interaction<StateVector>(Delta)}
std::array<XXZAntiferro_extfield<StateVector>*, 1> onsite = {new XXZAntiferro_extfield<StateVector>(H)}
XXZAntiferroStaggeredMagZ obs_mstagz
XXZAntiferroStaggeredMagXY obs_mstagxy
decltype(std::make_tuple(obs_mstagz, obs_mstagxy)) observables = {std::make_tuple(obs_mstagz, obs_mstagxy)}

Public Static Attributes

constexpr int SymD = 3