|
pomerol
2.2
|
#include <MonomialOperator.hpp>


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 | getCXIndex () const |
| Return the single-particle index \(i\) under the assumption that O_i is a creation operator. More... | |
| ParticleIndex | getCIndex () const |
| Return the single-particle index \(j\) under the assumption that O_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... | |
| 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) |
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, 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... | |
Protected Attributes inherited from Pomerol::ComputableObject | |
| StatusEnum | Status = Constructed |
| Current computation status. More... | |
A special case of a monomial operator: A product of two fermionic operators \(O_i O_j\). Each of \(O_i\) and \(O_j\) can be either a creation or annihilation operator.
Definition at line 289 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] | Dagger | Indicates whether each of the two operators is a creator. |
Definition at line 308 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(j\) under the assumption that O_j is an annihilation operator.
Definition at line 340 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(i\) under the assumption that O_i is a creation operator.
Definition at line 335 of file MonomialOperator.hpp.
|
inline |
Return the creation/annihilation type of each of the two operators.
Definition at line 346 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(i\).
Definition at line 330 of file MonomialOperator.hpp.
|
inline |
Return the single-particle index \(j\).
Definition at line 332 of file MonomialOperator.hpp.