triqs.atom_diag.AtomDiag(*args, **kwargs)[source]

Create and return an exact diagonalization solver. Depending on the type of h returns AtomDiagReal or AtomDiagComplex

Use the QR algorithm to diagonalize the Hamiltonian. Auto-partitions the Hamiltonian into subspaces (blocks) such that all creation and annihilation operators map one subspace to exactly one other subspace.

h: Operator (Real)

Hamiltonian to be diagonalized.

fops: list of tuple of strings and ints

List of all annihilation / creation operator flavors (indices). Must at least contain all flavors met in h.

qn_vector: list of Operator (Real), optional

Vector of quantum number operators to be used for the auto-partitioning

n_min, n_max: integers, optional

Truncate the Fock-space to states with particle number in [n_min, n_max] Cannot be combined with qn_vector