template<typename... IndexTypes>
class Pomerol::HilbertSpace< IndexTypes >
Hilbert space of a quantum system.
A thin wrapper around libcommute's hilbert_space (information about a finite-dimensional state space) and space_partition (partition of the full state space into invariant subspaces of a Hamiltonian).
- Template Parameters
-
| IndexTypes | Types of indices carried by operators acting in this Hilbert space. |
Definition at line 49 of file HilbertSpace.hpp.
template<typename... IndexTypes>
template<typename ScalarType >
| Pomerol::HilbertSpace< IndexTypes >::HilbertSpace |
( |
IndexClassification< IndexTypes... > const & |
IndexInfo, |
|
|
Operators::expression< ScalarType, IndexTypes... > const & |
H, |
|
|
unsigned int |
bits_per_boson = 1 |
|
) |
| |
|
inline |
Construct a full Hilbert space 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).
- Template Parameters
-
| ScalarType | Coefficient type of expression H. |
- Parameters
-
| [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 110 of file HilbertSpace.hpp.
template<typename... IndexTypes>
template<typename ScalarType >
| Pomerol::HilbertSpace< IndexTypes >::HilbertSpace |
( |
IndexClassification< IndexTypes... > const & |
IndexInfo, |
|
|
Operators::expression< ScalarType, IndexTypes... > const & |
H, |
|
|
std::map< std::tuple< IndexTypes... >, unsigned int > const & |
bits_per_boson_map |
|
) |
| |
|
inline |
Construct a full Hilbert space 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).
- Template Parameters
-
| ScalarType | Coefficient type of expression H. |
- Parameters
-
| [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 133 of file HilbertSpace.hpp.