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

Part of a 3-point susceptibility. More...

#include <ThreePointSusceptibilityPart.hpp>

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

Data Structures

struct  NonResonantFBTerm
 A non-resonant fermion-boson term in the Lehmann representation of ThreePointSusceptibility. More...
 
struct  NonResonantFFTerm
 A non-resonant fermion-fermion term in the Lehmann representation of ThreePointSusceptibility. More...
 
struct  ResonantTerm
 A resonant term in the Lehmann representation of ThreePointSusceptibility. More...
 

Public Member Functions

 ThreePointSusceptibilityPart (MonomialOperatorPart const &F1, MonomialOperatorPart const &F2, MonomialOperatorPart const &B1, MonomialOperatorPart const &B2, HamiltonianPart const &Hpart1, HamiltonianPart const &Hpart2, HamiltonianPart const &Hpart3, DensityMatrixPart const &DMpart1, DensityMatrixPart const &DMpart2, DensityMatrixPart const &DMpart3, Channel channel, bool SwappedFermionOps)
 
void compute ()
 Compute the terms contributing to this part. More...
 
void clear ()
 Purge all terms. More...
 
ComplexType operator() (ComplexType z1, ComplexType z2) const
 
ComplexType operator() (long MatsubaraNumber1, long MatsubaraNumber2) const
 
std::size_t getNumResonantTerms () const
 Return the number of resonant terms. More...
 
std::size_t getNumNonResonantFFTerms () const
 Return the number of non-resonant fermion-fermion terms. More...
 
std::size_t getNumNonResonantFBTerms () const
 Return the number of non-resonant fermion-boson terms. More...
 
bool getSwappedFermionOps () const
 Are fermionic operators in this part swapped with respect to their order in the definition? More...
 
TermList< ResonantTerm > const & getResonantTerms () const
 Access the list of the resonant terms. More...
 
TermList< NonResonantFFTerm > const & getNonResonantFFTerms () const
 Access the list of the non-resonant fermion-fermion terms. More...
 
TermList< NonResonantFBTerm > const & getNonResonantFBTerms () const
 Access the list of the non-resonant fermion-boson terms. More...
 
- Public Member Functions inherited from Pomerol::Thermal
 Thermal (RealType beta)
 

Friends

class ThreePointSusceptibility
 
class ThreePointSusceptibilityContainer
 

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 3-point susceptibility.

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

\[ \langle {\rm S_1}| \hat F_1 |{\rm S_2}\rangle \langle {\rm S_2}| \hat F_2 |{\rm S_3} \rangle \langle {\rm S_3}| \hat B_1 |{\rm S_4} \rangle \langle {\rm S_4}| \hat B_2 |{\rm S_1} \rangle, \]

where \(\hat F_1, \hat F_2, \hat B_1, \hat B_2\) are fermionic field operators, and \(\hat B = \hat B_1 \hat B_2\). \({\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 three kinds of terms contributing to the expansion, so called resonant (ResonantTerm), non-resonant fermion-fermion (NonResonantFFTerm) and non-resonant fermion-boson (NonResonantFBTerm) terms.

Definition at line 56 of file ThreePointSusceptibilityPart.hpp.

Constructor & Destructor Documentation

◆ ThreePointSusceptibilityPart()

Pomerol::ThreePointSusceptibilityPart::ThreePointSusceptibilityPart ( MonomialOperatorPart const &  F1,
MonomialOperatorPart const &  F2,
MonomialOperatorPart const &  B1,
MonomialOperatorPart const &  B2,
HamiltonianPart const &  Hpart1,
HamiltonianPart const &  Hpart2,
HamiltonianPart const &  Hpart3,
DensityMatrixPart const &  DMpart1,
DensityMatrixPart const &  DMpart2,
DensityMatrixPart const &  DMpart3,
Channel  channel,
bool  SwappedFermionOps 
)

Constructor.

Parameters
[in]F1Part of the first fermionic field operator \(\hat F_1\).
[in]F2Part of the second fermionic field operator \(\hat F_2\).
[in]B1Part of the first multiplier of the quadratic operator \(\hat B\).
[in]B2Part of the second multiplier of the quadratic operator \(\hat B\).
[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]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]channelSusceptibility channel.
[in]SwappedFermionOpsAre fermionic operators swapped with respect to their order in the definition?

Member Function Documentation

◆ clear()

void Pomerol::ThreePointSusceptibilityPart::clear ( )

Purge all terms.

◆ compute()

void Pomerol::ThreePointSusceptibilityPart::compute ( )

Compute the terms contributing to this part.

◆ getNonResonantFBTerms()

TermList<NonResonantFBTerm> const& Pomerol::ThreePointSusceptibilityPart::getNonResonantFBTerms ( ) const
inline

Access the list of the non-resonant fermion-boson terms.

Definition at line 516 of file ThreePointSusceptibilityPart.hpp.

◆ getNonResonantFFTerms()

TermList<NonResonantFFTerm> const& Pomerol::ThreePointSusceptibilityPart::getNonResonantFFTerms ( ) const
inline

Access the list of the non-resonant fermion-fermion terms.

Definition at line 514 of file ThreePointSusceptibilityPart.hpp.

◆ getNumNonResonantFBTerms()

std::size_t Pomerol::ThreePointSusceptibilityPart::getNumNonResonantFBTerms ( ) const
inline

Return the number of non-resonant fermion-boson terms.

Definition at line 506 of file ThreePointSusceptibilityPart.hpp.

◆ getNumNonResonantFFTerms()

std::size_t Pomerol::ThreePointSusceptibilityPart::getNumNonResonantFFTerms ( ) const
inline

Return the number of non-resonant fermion-fermion terms.

Definition at line 504 of file ThreePointSusceptibilityPart.hpp.

◆ getNumResonantTerms()

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

Return the number of resonant terms.

Definition at line 502 of file ThreePointSusceptibilityPart.hpp.

◆ getResonantTerms()

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

Access the list of the resonant terms.

Definition at line 512 of file ThreePointSusceptibilityPart.hpp.

◆ getSwappedFermionOps()

bool Pomerol::ThreePointSusceptibilityPart::getSwappedFermionOps ( ) const
inline

Are fermionic operators in this part swapped with respect to their order in the definition?

Definition at line 509 of file ThreePointSusceptibilityPart.hpp.

◆ operator()() [1/2]

ComplexType Pomerol::ThreePointSusceptibilityPart::operator() ( ComplexType  z1,
ComplexType  z2 
) const

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

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

◆ operator()() [2/2]

ComplexType Pomerol::ThreePointSusceptibilityPart::operator() ( long  MatsubaraNumber1,
long  MatsubaraNumber2 
) const

Substitute Matsubara frequencies \(i\omega_{n_1}, i\omega_{n_2}\) 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\)).

Friends And Related Function Documentation

◆ ThreePointSusceptibility

friend class ThreePointSusceptibility
friend

Definition at line 58 of file ThreePointSusceptibilityPart.hpp.

◆ ThreePointSusceptibilityContainer

friend class ThreePointSusceptibilityContainer
friend

Definition at line 59 of file ThreePointSusceptibilityPart.hpp.


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