openfermion.hamiltonians.fermi_hubbard

Return symbolic representation of a Fermi-Hubbard Hamiltonian.

Used in the notebooks

Used in the tutorials

The idea of this model is that some fermions move around on a grid and the energy of the model depends on where the fermions are. The Hamiltonians of this model live on a grid of dimensions x_dimension x y_dimension. The grid can have periodic boundary conditions or not. In the standard Fermi-Hubbard model (which we call the "spinful" model), there is room for an "up" fermion and a "down" fermion at each site on the grid. In this model, there are a total of 2N spin-orbitals, where N = x_dimension * y_dimension is the number of sites. In the spinless model, there is only one spin-orbital per site for a total of N.

The Hamiltonian for the spinful model has the form

.. math::

\begin{align}
H = &- t \sum_{\langle i,j \rangle} \sum_{\sigma}
             (a^\dagger_{i, \sigma} a_{j, \sigma} +
              a^\dagger_{j, \sigma} a_{i, \sigma})

     + U \sum_{i} a^\dagger_{i, \uparrow} a_{i, \uparrow}
                 a^\dagger_{i, \downarrow} a_{i, \downarrow}
    \\
    &- \mu \sum_i \sum_{\sigma} a^\dagger_{i, \sigma} a_{i, \sigma}
     - h \sum_i (a^\dagger_{i, \uparrow} a_{i, \uparrow} -
               a^\dagger_{i, \downarrow} a_{i, \downarrow})
\end{align}

where

- The indices :math:`\langle i, j \rangle` run over pairs
  :math:`i` and :math:`j` of sites that are connected to each other
  in the grid
- :math:`\sigma \in \{\uparrow, \downarrow\}` is the spin
- :math:`t` is the tunneling amplitude
- :math:`U` is the Coulomb potential
- :math:`\mu` is the chemical potential
- :math:`h` is the magnetic field

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

.. math::

H = - t \sum_{\langle i, j \rangle} (a^\dagger_i a_j + a^\dagger_j a_i)

    + U \sum_{\langle i, j \rangle} a^\dagger_i a_i a^\dagger_j a_j
    - \mu \sum_i a_i^\dagger a_i.

x_dimension (int): The width of the grid. y_dimension (int): The height of the grid. tunneling (float): The tunneling amplitude :math:t. coulomb (float): The attractive local interaction strength :math:U. chemical_potential (float, optional): The chemical potential :math:\mu at each site. Default value is 0. magnetic_field (float, optional): The magnetic field :math:h at each site. Default value is 0. Ignored for the spinless case. periodic (bool, optional): If True, add periodic boundary conditions. Default is True. spinless (bool, optional): If True, return a spinless Fermi-Hubbard model. Default is False. particle_hole_symmetry (bool, optional): If False, the repulsion term corresponds to:

.. math::

U \sum_{k=1}^{N-1} a_k^\dagger ak a{k+1}^\dagger a_{k+1}

If True, the repulsion term is replaced by:

.. math::

U \sum_{k=1}^{N-1} (a_k^\dagger ak - \frac12) (a{k+1}^\dagger a_{k+1} - \frac12)

which is unchanged under a particle-hole transformation. Default is False

hubbard_model An instance of the FermionOperator class.