pomerol
2.1
|
Classification of many-body basis states into bases of invariant subspaces. More...
#include <StatesClassification.hpp>
Public Member Functions | |
StatesClassification ()=default | |
Construct without filling any Fock state lists. More... | |
template<typename... IndexTypes> | |
void | compute (HilbertSpace< IndexTypes... > const &HS) |
QuantumState | getNumberOfStates () const |
Get the total number of Fock states. More... | |
BlockNumber | getNumberOfBlocks () const |
Get the number of the invariant subspaces. More... | |
InnerQuantumState | getBlockSize (BlockNumber in) const |
std::vector< QuantumState > const & | getFockStates (BlockNumber in) const |
QuantumState | getFockState (BlockNumber in, InnerQuantumState i) const |
BlockNumber | getBlockNumber (QuantumState in) const |
InnerQuantumState | getInnerState (QuantumState in) const |
Public Member Functions inherited from Pomerol::ComputableObject | |
ComputableObject ()=default | |
StatusEnum | getStatus () const |
Return the current computation status. More... | |
void | setStatus (StatusEnum Status_in) |
Additional Inherited Members | |
Public Types inherited from Pomerol::ComputableObject | |
enum | StatusEnum { Constructed, Prepared, Computed } |
Computation status of the object. More... | |
Protected Attributes inherited from Pomerol::ComputableObject | |
StatusEnum | Status = Constructed |
Current computation status. More... | |
Classification of many-body basis states into bases of invariant subspaces.
This class stores lists of Fock states belonging to each invariant subspace (block) of a Hilbert space.
Definition at line 43 of file StatesClassification.hpp.
|
default |
Construct without filling any Fock state lists.
|
inline |
Populate the Fock state lists from a HilbertSpace object. If the HilbertSpace is not in the ComputableObject::Computed state, then existence of just one invariant subspace coinciding with the full Hilbert space will be assumed.
IndexTypes | Types of indices carried by operators acting in the Hilbert space HS . |
[in] | HS | The Hilbert space. |
Definition at line 59 of file StatesClassification.hpp.
BlockNumber Pomerol::StatesClassification::getBlockNumber | ( | QuantumState | in | ) | const |
Get the invariant subspace index a given Fock state belongs to.
[in] | in | Fock state. |
InnerQuantumState Pomerol::StatesClassification::getBlockSize | ( | BlockNumber | in | ) | const |
Get the number of Fock states spanning a given invariant subspace.
[in] | in | Index of the invariant subspace. |
QuantumState Pomerol::StatesClassification::getFockState | ( | BlockNumber | in, |
InnerQuantumState | i | ||
) | const |
Get a specific Fock state from a given invariant subspace.
[in] | in | Index of the invariant subspace. |
[in] | i | Index of the Fock state within the subspace. |
std::vector<QuantumState> const& Pomerol::StatesClassification::getFockStates | ( | BlockNumber | in | ) | const |
Get the list of all Fock states spanning a given invariant subspace.
[in] | in | Index of the invariant subspace. |
InnerQuantumState Pomerol::StatesClassification::getInnerState | ( | QuantumState | in | ) | const |
For a given Fock state, get the index within the invariant subspace it belongs to.
[in] | in | Fock state. |
|
inline |
Get the number of the invariant subspaces.
Definition at line 76 of file StatesClassification.hpp.
|
inline |
Get the total number of Fock states.
Definition at line 73 of file StatesClassification.hpp.