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) Initialize self.
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.
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