pomerol
2.1
|
#include <MonomialOperator.hpp>
Public Member Functions | |
template<typename... IndexTypes> | |
QuarticOperator (IndexClassification< IndexTypes... > const &IndexInfo, HilbertSpace< IndexTypes... > const &HS, StatesClassification const &S, Hamiltonian const &H, ParticleIndex Index1, ParticleIndex Index2, ParticleIndex Index3, ParticleIndex Index4, std::tuple< bool, bool, bool, bool > const &Dagger=std::tuple< bool, bool, bool, bool >(true, true, false, false)) | |
ParticleIndex | getIndex1 () const |
Return the single-particle index \(i\). More... | |
ParticleIndex | getIndex2 () const |
Return the single-particle index \(j\). More... | |
ParticleIndex | getIndex3 () const |
Return the single-particle index \(k\). More... | |
ParticleIndex | getIndex4 () const |
Return the single-particle index \(l\). More... | |
ParticleIndex | getCX1Index () const |
Return the single-particle index \(i\) under the assumption that O_i is a creation operator. More... | |
ParticleIndex | getCX2Index () const |
Return the single-particle index \(j\) under the assumption that O_j is a creation operator. More... | |
ParticleIndex | getC1Index () const |
Return the single-particle index \(k\) under the assumption that O_k is an annihilation operator. More... | |
ParticleIndex | getC2ndex () const |
Return the single-particle index \(l\) under the assumption that O_l is an annihilation operator. More... | |
std::tuple< bool, bool, bool, bool > const & | getDagger () const |
Return the creation/annihilation type of each of the four operators. More... | |
![]() | |
template<typename ScalarType , typename... IndexTypes> | |
MonomialOperator (libcommute::expression< ScalarType, IndexTypes... > const &MO, HilbertSpace< IndexTypes... > const &HS, StatesClassification const &S, Hamiltonian const &H) | |
bool | isComplex () const |
Is the monomial operator a complex-valued matrix? More... | |
MonomialOperatorPart & | getPartFromLeftIndex (BlockNumber LeftIndex) |
MonomialOperatorPart const & | getPartFromLeftIndex (BlockNumber LeftIndex) const |
MonomialOperatorPart & | getPartFromRightIndex (BlockNumber RightIndex) |
MonomialOperatorPart const & | getPartFromRightIndex (BlockNumber RightIndex) const |
BlockNumber | getLeftIndex (BlockNumber RightIndex) const |
BlockNumber | getRightIndex (BlockNumber LeftIndex) const |
BlocksBimap const & | getBlockMapping () const |
template<typename... IndexTypes> | |
void | prepare (HilbertSpace< IndexTypes... > const &HS) |
void | compute (RealType Tolerance=1e-8, MPI_Comm const &comm=MPI_COMM_WORLD) |
![]() | |
ComputableObject ()=default | |
StatusEnum | getStatus () const |
Return the current computation status. More... | |
void | setStatus (StatusEnum Status_in) |
Additional Inherited Members | |
![]() | |
using | BlocksBimap = boost::bimaps::bimap< boost::bimaps::set_of< BlockNumber >, boost::bimaps::set_of< BlockNumber > > |
A bi-map container for connections between invariant subspaces established by a monomial operator. More... | |
using | BlockMapping = BlocksBimap::value_type |
A single subspace-to-subspace connection established by a monomial operator. More... | |
![]() | |
enum | StatusEnum { Constructed , Prepared , Computed } |
Computation status of the object. More... | |
![]() | |
template<bool Complex> | |
LOperatorTypeRC< Complex > const & | getMOp () const |
![]() | |
bool | MOpComplex |
Whether the MOp object is complex-valued. More... | |
std::shared_ptr< void > | MOp |
A type-erased real/complex-valued libcommute::loperator object. More... | |
bool | Complex |
Whether the stored parts are complex-valued. More... | |
StatesClassification const & | S |
Information about invariant subspaces of the Hamiltonian. More... | |
Hamiltonian const & | H |
The Hamiltonian. More... | |
std::unordered_map< std::size_t, BlockNumber > | mapPartsFromRight |
A map between positions of parts in the parts list and the respective right subspace indices. More... | |
std::unordered_map< std::size_t, BlockNumber > | mapPartsFromLeft |
A map between positions of parts in the parts list and the respective left subspace indices. More... | |
BlocksBimap | LeftRightBlocks |
Left-to-right connections between invariant subspaces established by this monomial operator. More... | |
std::vector< MonomialOperatorPart > | parts |
List of parts (matrix blocks). More... | |
![]() | |
StatusEnum | Status = Constructed |
Current computation status. More... | |
A special case of a monomial operator: A product of four fermionic operators \(O_i O_j O_k O_l\). Each of \(O_i, O_j, O_k\) and \(O_l\) can be either a creation or annihilation operator.
Definition at line 332 of file MonomialOperator.hpp.
|
inline |
Constructor.
IndexTypes | Types of indices carried by operators acting in the Hilbert space HS . |
[in] | IndexInfo | Map for fermionic operator index tuples. |
[in] | HS | Hilbert space. |
[in] | S | Information about invariant subspaces of the Hamiltonian. |
[in] | H | The Hamiltonian. |
[in] | Index1 | The single-particle index \(i\) of the first operator. |
[in] | Index2 | The single-particle index \(j\) of the second operator. |
[in] | Index3 | The single-particle index \(k\) of the third operator. |
[in] | Index4 | The single-particle index \(l\) of the fourth operator. |
[in] | Dagger | Indicates whether each of the four operators is a creator. |
Definition at line 357 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(k\) under the assumption that O_k is an annihilation operator.
Definition at line 409 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(l\) under the assumption that O_l is an annihilation operator.
Definition at line 414 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(i\) under the assumption that O_i is a creation operator.
Definition at line 399 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(j\) under the assumption that O_j is a creation operator.
Definition at line 404 of file MonomialOperator.hpp.
|
inline |
Return the creation/annihilation type of each of the four operators.
Definition at line 420 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(i\).
Definition at line 390 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(j\).
Definition at line 392 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(k\).
Definition at line 394 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(l\).
Definition at line 396 of file MonomialOperator.hpp.