triqs.operators.util.hamiltonians.h_int_kanamori
- triqs.operators.util.hamiltonians.h_int_kanamori(spin_names, orb_names, U, Uprime, J_hund, off_diag=None, map_operator_structure=None, H_dump=None)[source]
Create a Kanamori Hamiltonian using the density-density, spin-fip and pair-hopping interactions.
\[H = \frac{1}{2} \sum_{(i \sigma) \neq (j \sigma')} U_{i j}^{\sigma \sigma'} n_{i \sigma} n_{j \sigma'} - \sum_{i \neq j} J a^\dagger_{i \uparrow} a_{i \downarrow} a^\dagger_{j \downarrow} a_{j \uparrow} + \sum_{i \neq j} J a^\dagger_{i \uparrow} a^\dagger_{i \downarrow} a_{j \downarrow} a_{j \uparrow}.\]- Parameters:
spin_names (list of strings) – Names of the spins, e.g. [‘up’,’down’].
orb_names (list of strings or int) – Names of the orbitals, e.g. [0,1,2] or [‘t2g’,’eg’].
U (2D matrix or array) – \(U_{ij}^{\sigma \sigma} (same spins)\)
Uprime (2D matrix or array) – \(U_{ij}^{\sigma \bar{\sigma}} (opposite spins)\)
J_hund (scalar) – \(J\)
off_diag (boolean) – Do we have (orbital) off-diagonal elements? If yes, the operators and blocks are denoted by (‘spin’, ‘orbital’), otherwise by (‘spin_orbital’,0).
map_operator_structure (dict) – Mapping of names of GF blocks names from one convention to another, e.g. {(‘up’, 0): (‘up_0’, 0), (‘down’, 0): (‘down_0’,0)}. If provided, the operators and blocks are denoted by the mapping of
('spin', 'orbital')
.H_dump (string) – Name of the file to which the Hamiltonian should be written.
- Returns:
H – The Hamiltonian.
- Return type: