triqs::hilbert_space::space_partition

#include <triqs/hilbert_space.hpp>

template<typename StateType, typename OperatorType> class space_partition

Implementation of the automatic partitioning algorithm

Partitions a Hilbert space into a set of subspaces invariant under action of a given Hermitian operator (Hamiltonian). Optionally modifies the partition so that a given operator generates only one-to-one connections between the subspaces. For a detailed description of the algorithm see Computer Physics Communications 200, March 2016, 274-284 (section 4.2).

Template parameters

  • StateType: Many-body state type, must model [[statevector_concept]]

  • OperatorType: Imperative operator type, must provide StateType operator()(StateType const&)

Member types

Member functions

(constructor)

merge_subspaces

n_subspaces

lookup_basis_state

get_matrix_elements

find_mappings

Non Member functions

foreach