|
pomerol
2.2
|
Data Structures | |
| class | Pomerol::DensityMatrix |
| Many-body Gibbs density matrix. More... | |
| class | Pomerol::DensityMatrixPart |
| Part of a many-body Gibbs density matrix. More... | |
| class | Pomerol::FieldOperatorContainer |
| Container for instances of CreationOperator and AnnihilationOperator. More... | |
| class | Pomerol::Hamiltonian |
| Hamiltonian of a quantum system. More... | |
| class | Pomerol::HamiltonianPart |
| Part of a Hamiltonian of a quantum system. More... | |
| class | Pomerol::HilbertSpace< IndexTypes > |
| Hilbert space of a quantum system. More... | |
| class | Pomerol::IndexClassification< IndexTypes > |
| Contiguous list of operator index tuples. More... | |
| class | Pomerol::MonomialOperator |
| Monomial quantum operator. More... | |
| class | Pomerol::FieldOperator |
| A special case of a monomial operator: A single fermion creation or annihilation operator \(\hat F_i\). More... | |
| class | Pomerol::CreationOperator |
| A special case of a monomial operator: A single fermion creation operator \(c^\dagger_i\). More... | |
| class | Pomerol::AnnihilationOperator |
| A special case of a monomial operator: A single fermion annihilation operator \(c_i\). More... | |
| class | Pomerol::QuadraticOperator |
| class | Pomerol::QuarticOperator |
| class | Pomerol::MonomialOperatorPart |
| Part of a monomial quantum operator. More... | |
| class | Pomerol::StatesClassification |
| Classification of many-body basis states into bases of invariant subspaces. More... | |
Typedefs | |
| using | Pomerol::BlockMapping = std::pair< BlockNumber, BlockNumber > |
| A pair of invariant subspace indices. More... | |
| using | Pomerol::BlockNumber = int |
| Index of a subspace (block) within a full many-body Hilbert space. More... | |
| using | Pomerol::InnerQuantumState = libcommute::sv_index_type |
| Index of a state within a block. More... | |
Functions | |
| template<typename ScalarType , typename... IndexTypes> | |
| HilbertSpace< IndexTypes... > | Pomerol::MakeHilbertSpace (IndexClassification< IndexTypes... > const &IndexInfo, Operators::expression< ScalarType, IndexTypes... > const &H, unsigned int bits_per_boson=1) |
| template<typename ScalarType , typename... IndexTypes> | |
| HilbertSpace< IndexTypes... > | Pomerol::MakeHilbertSpace (IndexClassification< IndexTypes... > const &IndexInfo, Operators::expression< ScalarType, IndexTypes... > const &H, std::map< std::tuple< IndexTypes... >, unsigned int > const &bits_per_boson_map) |
| template<typename ScalarType , typename... IndexTypes> | |
| IndexClassification< IndexTypes... > | Pomerol::MakeIndexClassification (Operators::expression< ScalarType, IndexTypes... > const &H) |
| template<typename ScalarType , typename... IndexTypes> | |
| void | Pomerol::Hamiltonian::prepare (Operators::expression< ScalarType, IndexTypes... > const &H, HilbertSpace< IndexTypes... > const &HS, MPI_Comm const &comm=MPI_COMM_WORLD) |
Variables | |
| constexpr BlockNumber | Pomerol::INVALID_BLOCK_NUMBER = -1 |
| A special value that stands for a non-existent subspace (block). More... | |
| using Pomerol::BlockMapping = typedef std::pair<BlockNumber, BlockNumber> |
A pair of invariant subspace indices.
Definition at line 48 of file MonomialOperator.hpp.
| using Pomerol::BlockNumber = typedef int |
Index of a subspace (block) within a full many-body Hilbert space.
Definition at line 32 of file StatesClassification.hpp.
| using Pomerol::InnerQuantumState = typedef libcommute::sv_index_type |
Index of a state within a block.
Definition at line 37 of file StatesClassification.hpp.
| HilbertSpace<IndexTypes...> Pomerol::MakeHilbertSpace | ( | IndexClassification< IndexTypes... > const & | IndexInfo, |
| Operators::expression< ScalarType, IndexTypes... > const & | H, | ||
| std::map< std::tuple< IndexTypes... >, unsigned int > const & | bits_per_boson_map | ||
| ) |
A factory function for HilbertSpace that constructs it from an IndexClassification object and a polynomial expression of system's Hamiltonian. The Hilbert space is constructed as a direct product of elementary spaces, each associated with a single fermionic or bosonic degree of freedom (an index tuple carried by a boson creation/annihilation operator).
| ScalarType | Coefficient type of expression H. |
| [in] | IndexInfo | Map for fermionic operator index tuples. |
| [in] | H | Hamiltonian of the system. |
| [in] | bits_per_boson_map | A bosonic degree of freedom with a certain operator index tuple will result in a truncated elementary bosonic space of dimension \(2^b\), where \(b\) is the value in this map corresponding to the index tuple. If the tuple is missing from the map, \(b\) is taken to be 1. |
Definition at line 215 of file HilbertSpace.hpp.
| HilbertSpace<IndexTypes...> Pomerol::MakeHilbertSpace | ( | IndexClassification< IndexTypes... > const & | IndexInfo, |
| Operators::expression< ScalarType, IndexTypes... > const & | H, | ||
| unsigned int | bits_per_boson = 1 |
||
| ) |
A factory function for HilbertSpace that constructs it from an IndexClassification object and a polynomial expression of system's Hamiltonian. The Hilbert space is constructed as a direct product of elementary spaces, each associated with a single fermionic or bosonic degree of freedom (an index tuple carried by a boson creation/annihilation operator).
| ScalarType | Coefficient type of expression H. |
| [in] | IndexInfo | Map for fermionic operator index tuples. |
| [in] | H | Hamiltonian of the system. |
| [in] | bits_per_boson | Each bosonic degree of freedom will result in a truncated elementary bosonic space of dimension \(2^\verb|bits_per_boson|\). |
Definition at line 196 of file HilbertSpace.hpp.
| IndexClassification<IndexTypes...> Pomerol::MakeIndexClassification | ( | Operators::expression< ScalarType, IndexTypes... > const & | H | ) |
A factory function for IndexClassification, which populates the index map by extracting all index tuples from a given polynomial expression.
| ScalarType | Coefficient type of expression H. |
| IndexTypes | Types of indices carried by a single creation/annihilation operator. |
| [in] | H | Expression to be analyzed. |
Definition at line 150 of file IndexClassification.hpp.
| void Pomerol::Hamiltonian::prepare | ( | Operators::expression< ScalarType, IndexTypes... > const & | H, |
| HilbertSpace< IndexTypes... > const & | HS, | ||
| MPI_Comm const & | comm = MPI_COMM_WORLD |
||
| ) |
Fill matrices of all diagonal blocks in parallel.
| ScalarType | Scalar type (either double or std::complex<double>) of the expression H. |
| IndexTypes | Types of indices carried by operators in the expression H. |
| [in] | H | Expression of the Hamiltonian. |
| [in] | HS | Hilbert space. |
| [in] | comm | MPI communicator used to parallelize the computation. |
Definition at line 125 of file Hamiltonian.hpp.
|
constexpr |
A special value that stands for a non-existent subspace (block).
Definition at line 34 of file StatesClassification.hpp.