# 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.