SAFIRE for lattice models#

../../_images/lattice_model.png

Some preliminaries#

SAFIRE can handle model Hamiltonians of the form

\[\hat{H} = \hat{H}_t + \hat{H}_U + \hat{H}_J,\]

where

\[\hat{H}_t = \sum_{\mu\nu,\sigma \sigma'}t^{\sigma \sigma'}_{\mu\nu}\hat{c}^\dagger_{\mu\sigma}\hat{c}_{\nu\sigma'},\]
\[\hat{H}_U = \sum_{\mu} U_i \hat{n}_{\mu\uparrow} \hat{n}_{\mu\downarrow} + \sum_{\mu<\nu} U_{\mu\nu}^1 (\hat{n}_{\mu\uparrow} \hat{n}_{\nu\downarrow} + \hat{n}_{\mu\downarrow} \hat{n}_{\nu\uparrow} ) + \sum_{\mu<\nu} U_{\mu\nu}^2 (\hat{n}_{\mu\uparrow} \hat{n}_{\nu\uparrow} + \hat{n}_{\mu\downarrow} \hat{n}_{\nu\downarrow} ),\]

and,

\[\hat{H}_J = \sum_{\mu<\nu} J_{\mu\nu} ( \hat{c}^\dagger_{\mu\uparrow}\hat{c}^\dagger_{\nu\downarrow}\hat{c}_{\mu\downarrow}\hat{c}_{\nu\uparrow} +\hat{c}^\dagger_{\mu\uparrow}\hat{c}^\dagger_{\mu\downarrow}\hat{c}_{\nu\downarrow}\hat{c}_{\nu\uparrow} +\hat{c}^\dagger_{\nu\uparrow}\hat{c}^\dagger_{\mu\downarrow}\hat{c}_{\nu\downarrow}\hat{c}_{\mu\uparrow} +\hat{c}^\dagger_{\nu\uparrow}\hat{c}^\dagger_{\nu\downarrow}\hat{c}_{\mu\downarrow}\hat{c}_{\mu\uparrow} ).\]

\(\mu\), \(\nu\) are compound indices, \(\mu = (i,p,m)\), \(\nu = (j,q,n)\), that include the lattice site index, (\(i\), \(j\)), sublattice, (\(p\), \(q\)) and band (\(m\), \(n\)) indices. This is known as the Hubbard-Kanamori Hamiltonian. Many standard model Hamiltonians can be written in this language including the standard Hubbard model, extended Hubbard with nearest-neighbor \(V\), etc. SAFIRE is agnostic to the details of the compound indices. It simply accepts Hamiltonian “components” which are interpreted as above. This provides great flexibility in specifying Hamiltonians; however, if Hamiltonians are generated externally, care must be taken to ensure that consistent index conventions are used.

afqmctools provides a framework for building lattice model Hamiltonians that can generate broad classes of lattice model Hamiltonians on a variety of lattices, using consistent conventions for indexing. The framework consists of a Lattice class which is responsible for geometry (see the lattice tutorial), a Hamiltonian builder which is responsible for generating specific Hamiltonian terms on demand given a specific Lattice instance, and a Hamiltonian Director which is responsible for choosing which build steps to perform based on a set of input Hamiltonian parameters. Each component of the framework can be used directly; however the Director class represents the highest-level interface of the lattice Hamiltonian framework and can manage the underlying Lattice instance and Builder instance. Users who want direct control over the Hamiltonian build steps can directly use the Hamiltonian Builder. See the Hamiltonian Builder for more detail. It is recommended to use the Director whenever possible.

../../_images/HamilDirectorSystem.png

Imaginary-Time Propagation#

Explain the Trotterization, and Hubbard-Stratonovich transformation for the lattice Hamiltonian. Be sure to explicitly show each type of Hubbard-Stratonovich transformation (discrete spin, continuous charge, discrete charge, continuous spin).

Trial wavefunctions#

A trial wavefunction is used in AFQMC which is, in general, some linear combination of Slater determinants,

\[| \Psi_\mathrm{T} \rangle = \sum_n C_n |\Phi_m\rangle,\]

where \(|\Phi_m\rangle\) are Slater determinants, and \(C_n\) is a coefficient. There is no need for the set of Slater determinants to be mutually orthogonal.

Using a trial wavefunction which accurately captures the ordering and symmetries of the target system is critical for achieving good AFQMC results. Care must always be taken to ensure that the trial wavefunction has the desired properties.

Common methods for computing a trial wavefunction include:

  • Hartree-Fock

  • free electron / noninteracting solution

among others.

Typical Workflow#


Software prerequisites#

The afqmctools Python package provides tools for generating a broad range of lattice model Hamiltonians. Additionally, afqmctools and the autoHF Hartree-Fock solver allow single-Slater determinant trial wavefunctions to be computed. In these tutorials, we will use these tools exclusively; however, from the tutorials, it should also be clear how to import and use wavefunctions and/or Hamiltonians which are generated externally by the user.

See the User manual for details on the Hamiltonian HDF5 format and the possible Trial wavefunction formats.


The Tutorials#

The following tutorials will guide you through AFQMC calculations using SAFIRE in order to teach you the typical workflow, and some of the main features of SAFIRE. Each “basic” tutorial builds on the previous one. We recommend going through them in order.

See also

Worked examples for Lattice models