triqs.operators.util.hamiltonians.h_int_kanamori

triqs.operators.util.hamiltonians.h_int_kanamori(spin_names, n_orb, U, Uprime, J_hund, spin_flip=True, pair_hopping=True, off_diag=None, map_operator_structure=None, H_dump=None, orb_names=None)[source]

Create a Kanamori Hamiltonian with density-density, spin-flip and pair-hopping interactions.

\[\hat{H} = \frac{1}{2} \sum_{(i \sigma) \neq (j \sigma')} U_{i j}^{\sigma \sigma'} \hat{n}_{i \sigma} \hat{n}_{j \sigma'} - \sum_{i \neq j} J \hat{c}^\dagger_{i \uparrow} \hat{c}_{i \downarrow} \hat{c}^\dagger_{j \downarrow} \hat{c}_{j \uparrow} + \sum_{i \neq j} J \hat{c}^\dagger_{i \uparrow} \hat{c}^\dagger_{i \downarrow} \hat{c}_{j \downarrow} \hat{c}_{j \uparrow}.\]
Parameters:
spin_nameslist of str

Names of the spins, e.g. ['up', 'down'].

n_orbint

Number of orbitals.

Unumpy.ndarray

Two-index interaction matrix \(U_{ij}^{\sigma \sigma}\) for parallel spins.

Uprimenumpy.ndarray

Two-index interaction matrix \(U_{ij}^{\sigma \bar{\sigma}}\) for anti-parallel spins.

J_hundfloat

Hund’s coupling \(J\).

spin_flipbool, optional

Include the spin-flip terms (default True).

pair_hoppingbool, optional

Include the pair-hopping terms (default True).

off_diagbool, optional

If True, operators and blocks are labelled by ('spin', 'orbital'); otherwise by ('spin_orbital', 0).

map_operator_structuredict, optional

Mapping of GF-block names from one convention to another, e.g. {('up', 0): ('up_0', 0), ('down', 0): ('down_0', 0)}. If provided, the operators and blocks use the image of ('spin', 'orbital') under this map.

H_dumpstr, optional

Name of a file to which a textual dump of the generated terms is written.

Returns:
Operator

The Kanamori interaction Hamiltonian \(\hat{H}\).