triqs.atom_diag.atom_diag.AtomDiagComplex

class triqs.atom_diag.atom_diag.AtomDiagComplex

Lightweight exact diagonalization solver (Complex)

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.

Parameters:
  • h (Operator (Complex)) – 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 (Complex), optional) – Vector of quantum number operators to be used for the auto-partitioning

  • n_min (integers, optional) – Truncate the Fock-space to states with particle number in [n_min, n_max] Cannot be combined with qn_vector

  • n_max (integers, optional) – Truncate the Fock-space to states with particle number in [n_min, n_max] Cannot be combined with qn_vector

Methods

__init__(*args, **kwargs)

c_connection

Signature : (int op_linear_index, int sp_index) -> int Subspace-to-subspace connections for fundamental operator C_{op_linear_index} (returns final subspace for initial subspace sp_index)

c_matrix

Signature : (int op_linear_index, int sp_index) -> matrix<triqs::atom_diag::atom_diag<true>::scalar_t> Matrix block for fundamental operator C_{op_linear_index} (sp_index is index of the initial subspace)

cdag_connection

Signature : (int op_linear_index, int sp_index) -> int Subspace-to-subspace connections for fundamental operator C^dagger_{op_linear_index} (returns final subspace for initial subspace sp_index)

cdag_matrix

Signature : (int op_linear_index, int sp_index) -> matrix<triqs::atom_diag::atom_diag<true>::scalar_t> Matrix block for fundamental operator C^dagger_{op_linear_index} (sp_index is index of the initial subspace)

flatten_subspace_index

Signature : (int sp_index, int i) -> int Returns the state index in the full Hilbert space given a subspace index and an inner index

get_eigenvalue

Signature : (int sp_index, int i) -> float Get the i-th eigenvalue of subspace sp_index

get_subspace_dim

Signature : (int sp_index) -> int The dimension of subspace sp_index

get_subspace_dims

Signature : () -> list[int] Get the dimension of all subspaces

Attributes

energies

A vector of all the energies, grouped by subspace

fock_states

The list of Fock states for each subspace

fops

The fundamental operator set used at construction

full_hilbert_space_dim

Dimension of the full Hilbert space

gs_energy

Ground state energy (i.e. min of all subspaces).

h_atomic

The Hamiltonian used at construction

n_subspaces

Number of invariant subspaces

quantum_numbers

A vector of all the quantum numbers, grouped by subspace

unitary_matrices

Unitary matrices that transform from Fock states to eigenstates

vacuum_state

Returns the vacuum state as a vector in the full Hilbert space

vacuum_subspace_index

Returns invariant subspace containing the vacuum state