openfermion.hamiltonians.bose_hubbard

Return symbolic representation of a Bose-Hubbard Hamiltonian.

Used in the notebooks

Used in the tutorials

In this model, bosons move around on a lattice, and the energy of the model depends on where the bosons are.

The lattice is described by a 2D grid, with dimensions x_dimension x y_dimension. It is also possible to specify if the grid has periodic boundary conditions or not.

The Hamiltonian for the Bose-Hubbard model has the form

.. math::

H = - t \sum_{\langle i, j \rangle} (b_i^\dagger b_j + b_j^\dagger b_i)

 + V \sum_{\langle i, j \rangle} b_i^\dagger b_i b_j^\dagger b_j
 + \frac{U}{2} \sum_i b_i^\dagger b_i (b_i^\dagger b_i - 1)
 - \mu \sum_i b_i^\dagger b_i.

where

- The indices :math:`\langle i, j \rangle` run over pairs
  :math:`i` and :math:`j` of nodes that are connected to each other
  in the grid
- :math:`t` is the tunneling amplitude
- :math:`U` is the on-site interaction potential
- :math:`\mu` is the chemical potential
- :math:`V` is the dipole or nearest-neighbour interaction potential

x_dimension (int): The width of the grid. y_dimension (int): The height of the grid. tunneling (float): The tunneling amplitude :math:t. interaction (float): The attractive local interaction strength :math:U. chemical_potential (float, optional): The chemical potential :math:\mu at each site. Default value is 0. periodic (bool, optional): If True, add periodic boundary conditions. Default is True. dipole (float): The attractive dipole interaction strength :math:V.

bose_hubbard_model An instance of the BosonOperator class.