pomerol  2.1
Public Member Functions

Classification of many-body basis states into bases of invariant subspaces. More...

#include <StatesClassification.hpp>

Inheritance diagram for Pomerol::StatesClassification:
Inheritance graph
[legend]
Collaboration diagram for Pomerol::StatesClassification:
Collaboration graph
[legend]

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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ StatesClassification()

Pomerol::StatesClassification::StatesClassification ( )
default

Construct without filling any Fock state lists.

Member Function Documentation

◆ compute()

template<typename... IndexTypes>
void Pomerol::StatesClassification::compute ( HilbertSpace< IndexTypes... > const &  HS)
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.

Template Parameters
IndexTypesTypes of indices carried by operators acting in the Hilbert space HS.
Parameters
[in]HSThe Hilbert space.

Definition at line 59 of file StatesClassification.hpp.

◆ getBlockNumber()

BlockNumber Pomerol::StatesClassification::getBlockNumber ( QuantumState  in) const

Get the invariant subspace index a given Fock state belongs to.

Parameters
[in]inFock state.
Precondition
compute() has been called.

◆ getBlockSize()

InnerQuantumState Pomerol::StatesClassification::getBlockSize ( BlockNumber  in) const

Get the number of Fock states spanning a given invariant subspace.

Parameters
[in]inIndex of the invariant subspace.
Precondition
compute() has been called.

◆ getFockState()

QuantumState Pomerol::StatesClassification::getFockState ( BlockNumber  in,
InnerQuantumState  i 
) const

Get a specific Fock state from a given invariant subspace.

Parameters
[in]inIndex of the invariant subspace.
[in]iIndex of the Fock state within the subspace.
Precondition
compute() has been called.

◆ getFockStates()

std::vector<QuantumState> const& Pomerol::StatesClassification::getFockStates ( BlockNumber  in) const

Get the list of all Fock states spanning a given invariant subspace.

Parameters
[in]inIndex of the invariant subspace.
Precondition
compute() has been called.

◆ getInnerState()

InnerQuantumState Pomerol::StatesClassification::getInnerState ( QuantumState  in) const

For a given Fock state, get the index within the invariant subspace it belongs to.

Parameters
[in]inFock state.
Precondition
compute() has been called.

◆ getNumberOfBlocks()

BlockNumber Pomerol::StatesClassification::getNumberOfBlocks ( ) const
inline

Get the number of the invariant subspaces.

Definition at line 76 of file StatesClassification.hpp.

◆ getNumberOfStates()

QuantumState Pomerol::StatesClassification::getNumberOfStates ( ) const
inline

Get the total number of Fock states.

Definition at line 73 of file StatesClassification.hpp.


The documentation for this class was generated from the following file: