pomerol  2.1
Data Structures | Public Member Functions | Static Public Member Functions | Data Fields
Pomerol::TwoParticleGFPart::ResonantTerm Struct Reference

A resonant term in the Lehmann representation of TwoParticleGF. More...

#include <TwoParticleGFPart.hpp>

Data Structures

struct  Hash
 Hasher for resonant terms. More...
 
struct  IsNegligible
 Predicate: Does a term have a negligible residue? More...
 
struct  KeyEqual
 Similarity predicate for resonant terms. More...
 

Public Member Functions

 ResonantTerm ()=default
 
 ResonantTerm (ComplexType ResCoeff, ComplexType NonResCoeff, RealType P1, RealType P2, RealType P3, bool isz1z2)
 
ComplexType operator() (ComplexType z1, ComplexType z2, ComplexType z3, RealType DeltaTolerance=1e-16) const
 
ResonantTermoperator+= (ResonantTerm const &AnotherTerm)
 

Static Public Member Functions

static MPI_Datatype mpi_datatype ()
 Create and commit an MPI datatype for ResonantTerm. More...
 

Data Fields

ComplexType ResCoeff = 0
 Coefficient \(R\). More...
 
ComplexType NonResCoeff = 0
 Coefficient \(N\). More...
 
std::array< RealType, 3 > Poles = {{0, 0, 0}}
 Poles \(P_1\), \(P_2\), \(P_3\). More...
 
bool isz1z2 = false
 
long Weight = 0
 

Detailed Description

A resonant term in the Lehmann representation of TwoParticleGF.

It is parametrized by two complex coefficients \(R\) and \(N\), and positions of real poles \(P_1, P_2, P_3\). Depending on the value of the isz1z2 flag, an explicit expression for the term reads

Definition at line 189 of file TwoParticleGFPart.hpp.

Constructor & Destructor Documentation

◆ ResonantTerm() [1/2]

Pomerol::TwoParticleGFPart::ResonantTerm::ResonantTerm ( )
default

◆ ResonantTerm() [2/2]

Pomerol::TwoParticleGFPart::ResonantTerm::ResonantTerm ( ComplexType  ResCoeff,
ComplexType  NonResCoeff,
RealType  P1,
RealType  P2,
RealType  P3,
bool  isz1z2 
)
inline

Constructor.

Parameters
[in]ResCoeffNumerator of the term for the resonant case, \(R\).
[in]NonResCoeffNumerator of the term for the non-resonant case, \(N\).
[in]P1Pole \(P_1\).
[in]P2Pole \(P_2\).
[in]P3Pole \(P_3\).
[in]isz1z2Are we using the \(\delta(z_1+z_2-P_1-P_2)\) resonance condition?

Definition at line 279 of file TwoParticleGFPart.hpp.

Member Function Documentation

◆ mpi_datatype()

static MPI_Datatype Pomerol::TwoParticleGFPart::ResonantTerm::mpi_datatype ( )
static

Create and commit an MPI datatype for ResonantTerm.

◆ operator()()

ComplexType Pomerol::TwoParticleGFPart::ResonantTerm::operator() ( ComplexType  z1,
ComplexType  z2,
ComplexType  z3,
RealType  DeltaTolerance = 1e-16 
) const
inline

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

Parameters
[in]z1Complex frequency \(z_1\).
[in]z2Complex frequency \(z_2\).
[in]z3Complex frequency \(z_3\).
[in]DeltaToleranceTolerance for the resonance detection.

Definition at line 478 of file TwoParticleGFPart.hpp.

◆ operator+=()

ResonantTerm& Pomerol::TwoParticleGFPart::ResonantTerm::operator+= ( ResonantTerm const &  AnotherTerm)

Add a resonant term to this term.

This operator does not check similarity of the terms! Parameters of this term are updated as follows.

  • ResCoeff += AnotherTerm.ResCoeff
  • NonResCoeff += AnotherTerm.NonResCoeff
  • Poles[i] = (Poles[i] * Weight + AnotherTerm.Poles[i] * AnotherTerm.Weight) / (Weight + AnotherTerm.Weight)
  • Weight += AnotherTerm.Weight
    Parameters
    [in]AnotherTermTerm to add.

Field Documentation

◆ isz1z2

bool Pomerol::TwoParticleGFPart::ResonantTerm::isz1z2 = false

Are we using \( \delta(z_1+z_2-P_1-P_2) \) resonance condition? If not, we are using \( \delta(z_2+z_3-P_2-P_3) \).

Definition at line 201 of file TwoParticleGFPart.hpp.

◆ NonResCoeff

ComplexType Pomerol::TwoParticleGFPart::ResonantTerm::NonResCoeff = 0

Coefficient \(N\).

Definition at line 194 of file TwoParticleGFPart.hpp.

◆ Poles

std::array<RealType, 3> Pomerol::TwoParticleGFPart::ResonantTerm::Poles = {{0, 0, 0}}

Poles \(P_1\), \(P_2\), \(P_3\).

Definition at line 197 of file TwoParticleGFPart.hpp.

◆ ResCoeff

ComplexType Pomerol::TwoParticleGFPart::ResonantTerm::ResCoeff = 0

Coefficient \(R\).

Definition at line 192 of file TwoParticleGFPart.hpp.

◆ Weight

long Pomerol::TwoParticleGFPart::ResonantTerm::Weight = 0

Weight \(W\) used in addition of terms with different poles.

See also
operator+=()

Definition at line 205 of file TwoParticleGFPart.hpp.


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