triqs.operators.util.hamiltonians.h_int_slater

triqs.operators.util.hamiltonians.h_int_slater(spin_names, n_orb, U_matrix, off_diag=None, map_operator_structure=None, H_dump=None, complex=False, orb_names=None)[source]

Create a Slater Hamiltonian using fully rotationally-invariant 4-index interactions:

\[H = \frac{1}{2} \sum_{ijkl,\sigma \sigma'} U_{ijkl} a_{i \sigma}^\dagger a_{j \sigma'}^\dagger a_{l \sigma'} a_{k \sigma}.\]
Parameters:
  • spin_names (list of strings) – Names of the spins, e.g. [‘up’,’down’].

  • n_orb (int) – Number of orbitals.

  • U_matrix (4D matrix or array) – The fully rotationally-invariant 4-index interaction \(U_{ijkl}\).

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

  • complex (bool) – Whether there are complex values in the interaction. If False, passing a complex U will cause an error.

Returns:

H – The Hamiltonian.

Return type:

Operator