pomerol  2.1
Public Member Functions

#include <MonomialOperator.hpp>

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

Public Member Functions

template<typename... IndexTypes>
 QuadraticOperator (IndexClassification< IndexTypes... > const &IndexInfo, HilbertSpace< IndexTypes... > const &HS, StatesClassification const &S, Hamiltonian const &H, ParticleIndex Index1, ParticleIndex Index2, std::tuple< bool, bool > const &Dagger=std::tuple< bool, bool >(true, false))
 
ParticleIndex getIndex1 () const
 Return the single-particle index \(i\). More...
 
ParticleIndex getIndex2 () const
 Return the single-particle index \(j\). More...
 
ParticleIndex getCXXIndex () const
 Return the single-particle index \(i\) under the assumption that X_i is a creation operator. More...
 
ParticleIndex getCIndex () const
 Return the single-particle index \(j\) under the assumption that Y_j is an annihilation operator. More...
 
std::tuple< bool, bool > const & getDagger () const
 Return the creation/annihilation type of each of the two operators. More...
 
- Public Member Functions inherited from Pomerol::MonomialOperator
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...
 
MonomialOperatorPartgetPartFromLeftIndex (BlockNumber LeftIndex)
 
MonomialOperatorPart const & getPartFromLeftIndex (BlockNumber LeftIndex) const
 
MonomialOperatorPartgetPartFromRightIndex (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 (MPI_Comm const &comm=MPI_COMM_WORLD)
 
- 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::MonomialOperator
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...
 
- Public Types inherited from Pomerol::ComputableObject
enum  StatusEnum { Constructed, Prepared, Computed }
 Computation status of the object. More...
 
- Protected Member Functions inherited from Pomerol::MonomialOperator
template<bool Complex>
LOperatorTypeRC< Complex > const & getMOp () const
 
- Protected Attributes inherited from Pomerol::MonomialOperator
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, BlockNumbermapPartsFromRight
 A map between positions of parts in the parts list and the respective right subspace indices. More...
 
std::unordered_map< std::size_t, BlockNumbermapPartsFromLeft
 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< MonomialOperatorPartparts
 List of parts (matrix blocks). More...
 
- Protected Attributes inherited from Pomerol::ComputableObject
StatusEnum Status = Constructed
 Current computation status. More...
 

Detailed Description

A special case of a monomial operator: A product of two fermionic operators \(X_i Y_j\). Each of \(X_i\) and \(Y_j\) can be either a creation or annihilation operator.

Definition at line 268 of file MonomialOperator.hpp.

Constructor & Destructor Documentation

◆ QuadraticOperator()

template<typename... IndexTypes>
Pomerol::QuadraticOperator::QuadraticOperator ( IndexClassification< IndexTypes... > const &  IndexInfo,
HilbertSpace< IndexTypes... > const &  HS,
StatesClassification const &  S,
Hamiltonian const &  H,
ParticleIndex  Index1,
ParticleIndex  Index2,
std::tuple< bool, bool > const &  Dagger = std::tuple<bool, bool>(true, false) 
)
inline

Constructor.

Template Parameters
IndexTypesTypes of indices carried by operators acting in the Hilbert space HS.
Parameters
[in]IndexInfoMap for fermionic operator index tuples.
[in]HSHilbert space.
[in]SInformation about invariant subspaces of the Hamiltonian.
[in]HThe Hamiltonian.
[in]Index1The single-particle index \(i\) of the first operator.
[in]Index2The single-particle index \(j\) of the second operator.
[in]DaggerIndicates whether each of the two operators is a creator.

Definition at line 287 of file MonomialOperator.hpp.

Member Function Documentation

◆ getCIndex()

ParticleIndex Pomerol::QuadraticOperator::getCIndex ( ) const
inline

Return the single-particle index \(j\) under the assumption that Y_j is an annihilation operator.

Definition at line 319 of file MonomialOperator.hpp.

◆ getCXXIndex()

ParticleIndex Pomerol::QuadraticOperator::getCXXIndex ( ) const
inline

Return the single-particle index \(i\) under the assumption that X_i is a creation operator.

Definition at line 314 of file MonomialOperator.hpp.

◆ getDagger()

std::tuple<bool, bool> const& Pomerol::QuadraticOperator::getDagger ( ) const
inline

Return the creation/annihilation type of each of the two operators.

Definition at line 325 of file MonomialOperator.hpp.

◆ getIndex1()

ParticleIndex Pomerol::QuadraticOperator::getIndex1 ( ) const
inline

Return the single-particle index \(i\).

Definition at line 309 of file MonomialOperator.hpp.

◆ getIndex2()

ParticleIndex Pomerol::QuadraticOperator::getIndex2 ( ) const
inline

Return the single-particle index \(j\).

Definition at line 311 of file MonomialOperator.hpp.


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