View source on GitHub
|
A general, parameterized Fermi-Hubbard model.
openfermion.hamiltonians.FermiHubbardModel(
lattice,
tunneling_parameters=None,
interaction_parameters=None,
potential_parameters=None,
magnetic_field=0.0,
particle_hole_symmetry=False
)
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
\[ \begin{aligned} 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{aligned} \]
where
- The indices \((i, j)\) and \(\{i, j\}\) run over ordered and unordered pairs, respectively of sites \(i\) and \(j\) of neighboring sites in the lattice,
- \(a\) and \(b\) index degrees of freedom on each site,
- \(\sigma \in \{\uparrow, \downarrow\}\) is the spin,
- \(t_{a, b}^{(\mathrm{onsite})}\) is the tunneling amplitude between spin orbitals on the same site,
- \(t_{a, b}^{(\mathrm{nghbr})}\) is the tunneling amplitude between spin orbitals on neighboring sites,
- \(U_{a, b}^{(\mathrm{onsite, \pm})}\) is the Coulomb potential between spin orbitals on the same site with the same (+) or different (-) spins,
- \(U_{a, b}^{(\mathrm{nghbr, \pm})}\) is the Coulomb potential between spin orbitals on neighboring sites with the same (+) or different (-) spins,
- \(\mu_{a}\) is the chemical potential, and
- \(h\) is the magnetic field.
One can also construct the Hamiltonian for the spinless model, which has the form
\[ \begin{aligned} 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{aligned} \]
Methods
field_terms
field_terms()
hamiltonian
hamiltonian()
interaction_terms
interaction_terms()
parse_interaction_parameters
parse_interaction_parameters(
parameters
)
parse_potential_parameters
parse_potential_parameters(
parameters
)
parse_tunneling_parameters
parse_tunneling_parameters(
parameters
)
potential_terms
potential_terms()
tunneling_terms
tunneling_terms()
View source on GitHub