pomerol  2.1
Data Structures | Public Member Functions | Friends
Pomerol::TwoParticleGFPart Class Reference

Part of a fermionic two-particle Matsubara Green's function. More...

#include <TwoParticleGFPart.hpp>

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

Data Structures

struct  NonResonantTerm
 A non-resonant term in the Lehmann representation of TwoParticleGF. More...
 
struct  ResonantTerm
 A resonant term in the Lehmann representation of TwoParticleGF. More...
 

Public Member Functions

 TwoParticleGFPart (MonomialOperatorPart const &O1, MonomialOperatorPart const &O2, MonomialOperatorPart const &O3, MonomialOperatorPart const &CX4, HamiltonianPart const &Hpart1, HamiltonianPart const &Hpart2, HamiltonianPart const &Hpart3, HamiltonianPart const &Hpart4, DensityMatrixPart const &DMpart1, DensityMatrixPart const &DMpart2, DensityMatrixPart const &DMpart3, DensityMatrixPart const &DMpart4, Permutation3 Permutation)
 
void compute ()
 Compute the terms contributing to this part. More...
 
void clear ()
 Purge all terms. More...
 
ComplexType operator() (ComplexType z1, ComplexType z2, ComplexType z3) const
 
ComplexType operator() (long MatsubaraNumber1, long MatsubaraNumber2, long MatsubaraNumber3) const
 
std::size_t getNumResonantTerms () const
 Return the number of resonant terms. More...
 
std::size_t getNumNonResonantTerms () const
 Return the number of non-resonant terms. More...
 
Permutation3 const & getPermutation () const
 Return the permutation of operators \(\{c_i, c_j, c^\dagger_k\}\) for this part. More...
 
TermList< TwoParticleGFPart::ResonantTerm > const & getResonantTerms () const
 Access the list of the resonant terms. More...
 
TermList< TwoParticleGFPart::NonResonantTerm > const & getNonResonantTerms () const
 Access the list of the non-resonant terms. More...
 
- Public Member Functions inherited from Pomerol::Thermal
 Thermal (RealType beta)
 

Friends

class TwoParticleGF
 
class TwoParticleGFContainer
 

Additional Inherited Members

- Data Fields inherited from Pomerol::Thermal
const RealType beta
 Inverse temperature \(\beta\). More...
 
const ComplexType MatsubaraSpacing
 Spacing between (imaginary) Matsubara frequencies, \(i\pi/\beta\). More...
 

Detailed Description

Part of a fermionic two-particle Matsubara Green's function.

It includes contributions from all matrix elements of the following form,

\[ \langle {\rm S_1}| \hat O_1 |{\rm S_2}\rangle \langle {\rm S_2}| \hat O_2 |{\rm S_3} \rangle \langle {\rm S_3}| \hat O_3 |{\rm S_4} \rangle \langle {\rm S_4}| c^\dagger_l |{\rm S_1} \rangle, \]

where \(\{\hat O_1, \hat O_2, \hat O_3\}\) is a permutation of operators \(\{c_i, c_j, c^\dagger_k\}\) and \({\rm S_1}, {\rm S_2}, {\rm S_3}, {\rm S_4}\) are invariant subspaces of the Hamiltonian. The contributions are stored as terms of the Lehmann representation. There are two kinds of terms contributing to the expansion, so called resonant (ResonantTerm) and non-resonant (NonResonantTerm) terms.

Definition at line 54 of file TwoParticleGFPart.hpp.

Constructor & Destructor Documentation

◆ TwoParticleGFPart()

Pomerol::TwoParticleGFPart::TwoParticleGFPart ( MonomialOperatorPart const &  O1,
MonomialOperatorPart const &  O2,
MonomialOperatorPart const &  O3,
MonomialOperatorPart const &  CX4,
HamiltonianPart const &  Hpart1,
HamiltonianPart const &  Hpart2,
HamiltonianPart const &  Hpart3,
HamiltonianPart const &  Hpart4,
DensityMatrixPart const &  DMpart1,
DensityMatrixPart const &  DMpart2,
DensityMatrixPart const &  DMpart3,
DensityMatrixPart const &  DMpart4,
Permutation3  Permutation 
)

Constructor.

Parameters
[in]O1Part of the field operator \(\hat O_1\).
[in]O2Part of the field operator \(\hat O_2\).
[in]O3Part of the field operator \(\hat O_3\).
[in]CX4Part of the creation operator \(\hat c^\dagger_l\).
[in]Hpart1Part of the Hamiltonian corresponding to the subspace \({\rm S_1}\).
[in]Hpart2Part of the Hamiltonian corresponding to the subspace \({\rm S_2}\).
[in]Hpart3Part of the Hamiltonian corresponding to the subspace \({\rm S_3}\).
[in]Hpart4Part of the Hamiltonian corresponding to the subspace \({\rm S_4}\).
[in]DMpart1Part of the many-body density matrix corresponding to the subspace \({\rm S_1}\).
[in]DMpart2Part of the many-body density matrix corresponding to the subspace \({\rm S_2}\).
[in]DMpart3Part of the many-body density matrix corresponding to the subspace \({\rm S_3}\).
[in]DMpart4Part of the many-body density matrix corresponding to the subspace \({\rm S_4}\).
[in]PermutationPermutation of operators \(\{c_i, c_j, c^\dagger_k\}\) for this part.

Member Function Documentation

◆ clear()

void Pomerol::TwoParticleGFPart::clear ( )

Purge all terms.

◆ compute()

void Pomerol::TwoParticleGFPart::compute ( )

Compute the terms contributing to this part.

◆ getNonResonantTerms()

TermList<TwoParticleGFPart::NonResonantTerm> const& Pomerol::TwoParticleGFPart::getNonResonantTerms ( ) const
inline

Access the list of the non-resonant terms.

Definition at line 467 of file TwoParticleGFPart.hpp.

◆ getNumNonResonantTerms()

std::size_t Pomerol::TwoParticleGFPart::getNumNonResonantTerms ( ) const
inline

Return the number of non-resonant terms.

Definition at line 459 of file TwoParticleGFPart.hpp.

◆ getNumResonantTerms()

std::size_t Pomerol::TwoParticleGFPart::getNumResonantTerms ( ) const
inline

Return the number of resonant terms.

Definition at line 457 of file TwoParticleGFPart.hpp.

◆ getPermutation()

Permutation3 const& Pomerol::TwoParticleGFPart::getPermutation ( ) const
inline

Return the permutation of operators \(\{c_i, c_j, c^\dagger_k\}\) for this part.

Definition at line 462 of file TwoParticleGFPart.hpp.

◆ getResonantTerms()

TermList<TwoParticleGFPart::ResonantTerm> const& Pomerol::TwoParticleGFPart::getResonantTerms ( ) const
inline

Access the list of the resonant terms.

Definition at line 465 of file TwoParticleGFPart.hpp.

◆ operator()() [1/2]

ComplexType Pomerol::TwoParticleGFPart::operator() ( ComplexType  z1,
ComplexType  z2,
ComplexType  z3 
) const

Substitute complex frequencies \(z_1, z_2, z_3\) into this part.

Parameters
[in]z1First frequency \(z_1\).
[in]z2Second frequency \(z_2\).
[in]z3Third frequency \(z_3\).

◆ operator()() [2/2]

ComplexType Pomerol::TwoParticleGFPart::operator() ( long  MatsubaraNumber1,
long  MatsubaraNumber2,
long  MatsubaraNumber3 
) const

Substitute Matsubara frequencies \(i\omega_{n_1}, i\omega_{n_2}, i\omega_{n_3}\) into this part.

Parameters
[in]MatsubaraNumber1Index of the first Matsubara frequency \(n_1\) ( \(\omega_{n_1}=\pi(2n_1+1)/\beta\)).
[in]MatsubaraNumber2Index of the second Matsubara frequency \(n_2\) ( \(\omega_{n_2}=\pi(2n_2+1)/\beta\)).
[in]MatsubaraNumber3Index of the third Matsubara frequency \(n_3\) ( \(\omega_{n_3}=\pi(2n_3+1)/\beta\)).

Friends And Related Function Documentation

◆ TwoParticleGF

friend class TwoParticleGF
friend

Definition at line 56 of file TwoParticleGFPart.hpp.

◆ TwoParticleGFContainer

friend class TwoParticleGFContainer
friend

Definition at line 57 of file TwoParticleGFPart.hpp.


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