openfermion.hamiltonians.FermiHubbardModel

A general, parameterized Fermi-Hubbard model.

The general (AKA 'multiband') Fermi-Hubbard model has k degrees of freedom per site in a lattice. For a lattice with n sites, there are N = k * n spatial orbitals. Additionally, in what we call the "spinful" model each spatial orbital is associated with "up" and "down" spin orbitals, for a total of 2N spin orbitals; in the spinless model, there is only one spin-orbital per site for a total of N.

For a lattice with only one type of site and edges from each site only to itself and its neighbors, the Hamiltonian for the spinful model has the form

.. math::

\begin{align}
H = &- \sum_{a < b} t_{a, b}^{(\mathrm{onsite})}
       \sum_{i} \sum_{\sigma}
             (a^\dagger_{i, a, \sigma} a_{i, b, \sigma} +
              a^\dagger_{i, b, \sigma} a_{i, a, \sigma})
    \\
    &- \sum_{a} t_{a, a}^{(\mathrm{nghbr})}
       \sum_{\{i, j\} } \sum_{\sigma}
             (a^\dagger_{i, a, \sigma} a_{j, a, \sigma} +
              a^\dagger_{j, a, \sigma} a_{i, a, \sigma})

     - \sum_{a < b} t_{a, b}^{(\mathrm{nghbr})}
       \sum_{(i, j)} \sum_{\sigma}
             (a^\dagger_{i, a, \sigma} a_{j, b, \sigma} +
              a^\dagger_{j, b, \sigma} a_{i, a, \sigma})
    \\
    &+ \sum_{a < b} U_{a, b}^{(\mathrm{onsite}, +)}
       \sum_{i} \sum_{\sigma}
             n_{i, a, \sigma} n_{i, b, \sigma}
    \\
    &+ \sum_{a} U_{a, a}^{(\mathrm{nghbr}, +)}
       \sum_{\{i, j\} } \sum_{\sigma}
             n_{i, a, \sigma} n_{j, a, \sigma}
     + \sum_{a < b} U_{a, b}^{(\mathrm{nghbr}, +)}
       \sum_{(i, j)} \sum_{\sigma}
             n_{i, a, \sigma} n_{j, b, \sigma}
    \\
    &+ \sum_{a \leq b} U_{a, b}^{(\mathrm{onsite}, -)}
       \sum_{i} \sum_{\sigma}
             n_{i, a, \sigma} n_{i, b, -\sigma}
    \\
    &+ \sum_{a} U_{a, a}^{(\mathrm{nghbr}, -)}
       \sum_{\{ i, j \} } \sum_{\sigma}
             n_{i, a, \sigma} n_{j, a, -\sigma}
     + \sum_{a < b} U_{a, b}^{(\mathrm{nghbr}, -)}
       \sum_{( i, j )} \sum_{\sigma}
             n_{i, a, \sigma} n_{j, b, -\sigma}
    \\
    &- \sum_{a} \mu_a
       \sum_i \sum_{\sigma} n_{i, a, \sigma}
    \\
    &- h \sum_{i} \sum_{a}
        \left(n_{i, a, \uparrow} - n_{i, a, \downarrow}\right)
\end{align}

where

- The indices :math:`(i, j)` and :math:`\{i, j\}` run over ordered and
  unordered pairs, respectively of sites :math:`i` and :math:`j` of
  neighboring sites in the lattice,
- :math:`a` and :math:`b` index degrees of freedom on each site,
- :math:`\sigma \in \{\uparrow, \downarrow\}` is the spin,
- :math:`t_{a, b}^{(\mathrm{onsite})}` is the tunneling amplitude
  between spin orbitals on the same site,
- :math:`t_{a, b}^{(\mathrm{nghbr})}` is the tunneling amplitude
  between spin orbitals on neighboring sites,
- :math:`U_{a, b}^{(\mathrm{onsite, \pm})}` is the Coulomb potential
  between spin orbitals on the same site with the same (+) or different
  (-) spins,
- :math:`U_{a, b}^{(\mathrm{nghbr, \pm})}` is the Coulomb potential
  betwen spin orbitals on neighborings sites with the same (+) or
  different (-) spins,
- :math:`\mu_{a}` is the chemical potential, and
- :math:`h` is the magnetic field.

One can also construct the Hamiltonian for the spinless model, which has the form

.. math::

\begin{align}
H = &- \sum_{a < b} t_{a, b}^{(\mathrm{onsite})}
       \sum_{i}
             (a^\dagger_{i, a} a_{i, b} +
              a^\dagger_{i, b} a_{i, a})
    \\
    &- \sum_{a} t_{a, a}^{(\mathrm{nghbr})}
       \sum_{\{i, j\} }
             (a^\dagger_{i, a} a_{j, a} +
              a^\dagger_{j, a} a_{i, a})

     - \sum_{a < b} t_{a, b}^{(\mathrm{nghbr})}
       \sum_{(i, j)}
             (a^\dagger_{i, a} a_{j, b} +
              a^\dagger_{j, b} a_{i, a})
    \\
    &+ \sum_{a < b} U_{a, b}^{(\mathrm{onsite})}
       \sum_{i}
             n_{i, a} n_{i, b}
    \\
    &+ \sum_{a} U_{a, a}^{(\mathrm{nghbr})}
       \sum_{\{i, j\} }
             n_{i, a} n_{j, a}
     + \sum_{a < b} U_{a, b}^{(\mathrm{nghbr})}
       \sum_{(i, j)}
             n_{i, a} n_{j, b}
    \\
    &- \sum_{a} \mu_a
       \sum_i n_{i, a}
\end{align}

lattice (HubbardLattice): The lattice on which the model is defined. tunneling_parameters (Iterable[Tuple[Hashable, Tuple[int, int], float]], optional): The tunneling parameters. interaction_parameters (Iterable[Tuple[Hashable, Tuple[int, int], float, int?]], optional): The interaction parameters. potential_parameters (Iterable[Tuple[int, float]], optional): The potential parameters. magnetic_field (float, optional): The magnetic field. Default is 0.
particle_hole_symmetry If true, each number operator :math:n is replaced with :math:n - 1/2.

Methods

field_terms

View source

hamiltonian

View source

interaction_terms

View source

parse_interaction_parameters

View source

parse_potential_parameters

View source

parse_tunneling_parameters

View source

potential_terms

View source

tunneling_terms

View source