Model lattice systems¶
Hubbard model (momentum-space)¶
hubbard_k {
-- options,
}
- Returns:
- a system object.
hubbard_k
creates a system object for the Hubbard model:
using a single-particle basis of Bloch functions, \(\psi_k\):
where \(\phi_i(r)\) is a single-particle basis function centred on site \(i\) in real space.
Options¶
sys
type: system object produced by a previous call.
Optional.
If provided, a previously created system object is updated with the new settings supplied, otherwise a new system object is created.
electrons
type: integer.
Required.
Number of electrons in the unit cell.
lattice
type: \(N\ N\)-dimensional vectors of floats.
Required.
Unit cell on which periodic boundary conditions are placed. See below.
ms
type: integer.
Required.
Set the spin polarisation of the system in units of electron spin (i.e. a single electron can take values 1 or -1).
sym
type: integer or string.
Optional. Default:
aufbau
.Set the symmetry (i.e. crystal momentum) of the system if a reference determinant is not provided. This can be set to:
- An integer specifying the index of a specific wavevector; see the output produced by creating a system for possible values and their corresponding wavevectors.
aufbau
. Uses the symmetry of a determinant selected using the Aufbau principle.tot_sym
. Uses the totally symmetric representation, whatever its index may be.
U
type: float.
Optional. Default: 1.
Specifies the \(U\) parameter in the Hamiltonian.
t
type: float.
Optional. Default: 1.
Specifies the \(t\) parameter in the Hamiltonian.
twist
type: \(N\)-dimensional vector
Optional. Default: 0 in each dimension.
Apply a twist to the wavevector grid. The twist is an ndim-dimensional vector in terms of the reciprocal lattice vectors. The twist angle is chosen to be within the primitive reciprocal cell, and hence the components should be between -0.5 and +0.5.
verbose
type: boolean.
Optional. Default: true.
Print out the single-particle basis set.
Hubbard model (real-space)¶
hubbard_real {
-- options,
}
- Returns:
- a system object.
hubbard_real
creates a system object for the Hubbard model:
using a single-particle basis of functions in real-space.
Options¶
sys
type: system object produced by a previous call.
Optional.
If provided, a previously created system object is updated with the new settings supplied, otherwise a new system object is created.
electrons
type: integer.
Required.
Number of electrons in the unit cell.
lattice
type: \(N\ N\)-dimensional vectors of floats.
Required.
Unit cell on which periodic boundary conditions are placed. See below.
ms
type: integer.
Required.
Set the spin polarisation of the system in units of electron spin.
U
type: float.
Optional. Default: 1.
Specifies the \(U\) parameter in the Hamiltonian.
t
type: float.
Optional. Default: 1.
Specifies the \(t\) parameter in the Hamiltonian.
finite
type: boolean.
Optional. Default: false.
If false then periodic boundary conditions are applied to the unit cell, otherwise the system specified by the lattice is treated as an isolated set of sites.
verbose
type: boolean.
Optional. Default: true.
Print out the single-particle basis set.
Heisenberg model¶
heisenberg {
-- options,
}
- Returns:
- a system object.
heisenberg
creates a system object for the Heisenberg model, which models a set of
spin 1/2 particles on a lattice:
where \(h_z\) and \(h_z'\) denote the magnetic field strength and staggered magnetic field strength, respectively, and \(\xi\) is equal to +1 for sites on sublattice 1 and is equal to -1 for sites on sublattice 2.
Options¶
sys
type: system object produced by a previous call.
Optional.
If provided, a previously created system object is updated with the new settings supplied, otherwise a new system object is created.
lattice
type: \(N\ N\)-dimensional vectors of floats.
Required.
Unit cell on which periodic boundary conditions are placed. See below.
Warning
For efficiency reasons it is assumed that the smallest dimension lattice vector is greater than 2 if periodic boundary conditions are used.
ms
type: integer.
Required.
Set the spin polarisation of the system in units of 1/2.
J
type: float.
Optional. Default: 1.
Set the coupling constant for the Heisenberg model.
magnetic_field
type: float.
Optional. Default: 0.
staggered_magnetic_field
type: float.
Optional. Default: 0.
Note
Specifying non-zero values for both
magnetic_field
andstaggered_magnetic_field
is not currently possible.finite
type: boolean.
Optional. Default: false.
If false then periodic boundary conditions are applied to the unit cell, otherwise the system specified by the lattice is treated as an isolated set of sites.
triangular
type: boolean.
Optional. Default: false.
If true, then a triangular lattice of sites on which the spins reside is used, requiring a 2D lattice. The default is to use a \(N\)-dimensional cubic arrangement of sites.
verbose
type: boolean.
Optional. Default: true.
Print out the single-particle basis set.
Chung-Landau model¶
chung_landau {
-- options,
}
- Returns:
- a system object.
chung_landau
creates a system object for the system of spinless fermions proposed by
Chung and Landau:
using a single-particle basis of functions in real-space.
Options¶
sys
type: system object produced by a previous call.
Optional.
If provided, a previously created system object is updated with the new settings supplied, otherwise a new system object is created.
electrons
type: integer.
Required.
Number of fermions in the unit cell.
lattice
type: \(N\ N\)-dimensional vectors of floats.
Required.
Unit cell on which periodic boundary conditions are placed. See below.
U
type: float.
Optional. Default: 1.
Specifies the \(U\) parameter in the Hamiltonian.
t
type: float.
Optional. Default: 1.
Specifies the \(t\) parameter in the Hamiltonian.
finite
type: boolean.
Optional. Default: false.
If false then periodic boundary conditions are applied to the unit cell, otherwise the system specified by the lattice is treated as an isolated set of sites.
verbose
type: boolean.
Optional. Default: true.
Print out the single-particle basis set.
Specifying the lattice¶
The lattice is specified as a table of vectors. Sites (on which a spin or electron resides) are at unit locations on the grid. The unit cell (or, if periodic boundary conditions are not used, the geometry of the ‘flake’ essentially cut out of the infinite lattice) are given in this basis. The lattice variable hence requires \(N\) vectors, each of dimension \(N\). This is specified in lua by a nested table. For example:
lattice = { { 10 } }
sets a 1D system, with the unit cell containing 10 sites;
lattice = { { 2, 0 }, { 0, 2 } }
sets a 2D system, with the unit cell containing 4 sites; and
lattice = { { 3, 3 }, { 3, -3 } }
sets a 2D system, with the (square) unit cell containing 18 sites and rotated by \(45^\circ\) relative to the primitive lattice.
HANDE supports 1-, 2- and 3-dimensional lattices. Lattice vectors must be orthogonal.