dmft_tools.interaction_hamiltonian

Contains all functions related to constructing the interaction Hamiltonian.

dmft_tools.interaction_hamiltonian.construct(sum_k, general_params, solver_type_per_imp, gw_params=None)[source]

Constructs the interaction Hamiltonian. Currently implemented are the Kanamori Hamiltonian (usually for 2 or 3 orbitals), the density-density and the full Slater Hamiltonian (for 2, 3, or 5 orbitals). If sum_k.rot_mat is non-identity, we have to consider rotating the interaction Hamiltonian: the Kanamori Hamiltonian does not change because it is invariant under orbital mixing but all the other Hamiltonians are at most invariant under rotations in space. Therefore, sum_k.rot_mat has to be correct before calling this method.

The parameters U and J will be interpreted differently depending on the type of the interaction Hamiltonian: it is either the Kanamori parameters for the Kanamori Hamiltonian or the orbital-averaged parameters (consistent with DFT+U, https://cms.mpi.univie.ac.at/wiki/index.php/LDAUTYPE ) for all other Hamiltonians.

Note also that for all Hamiltonians except Kanamori, the order of the orbitals matters. The correct order is specified here: triqs.github.io/triqs/unstable/documentation/python_api/triqs.operators.util.U_matrix.spherical_to_cubic.html

dmft_tools.interaction_hamiltonian.h_int_simple_intra(spin_names, n_orb, U, off_diag=None, map_operator_structure=None, H_dump=None)[source]

Create a simple intra orbital density-density Hamiltonian. (no inter orbital terms)

\[H = \frac{1}{2} \sum_{i \sigma \neq \sigma')} U_{i i}^{\sigma \sigma'} n_{i \sigma} n_{i \sigma'}.\]
Parameters:
spin_nameslist of strings

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

n_orbint

Number of orbitals.

Ufloat

U value

off_diagboolean

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_structuredict

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_dumpstring

Name of the file to which the Hamiltonian should be written.

Returns:
HOperator

The Hamiltonian.