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

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

#include <ThreePointSusceptibilityPart.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 Coeff, RealType P, int xi)
 
ComplexType operator() (ComplexType z1, ComplexType z2, 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 Coeff = 0
 Coefficient \(C\). More...
 
RealType P = 0
 Pole \(P\). More...
 
int xi = 1
 Coefficient \(\xi\). More...
 
long Weight = 0
 

Detailed Description

A resonant term in the Lehmann representation of ThreePointSusceptibility.

It is parametrized by a complex coefficient \(C\), position of a real pole \(P\) and a coefficient \(\xi\) that controls how the bosonic frequency is computed. An explicit expression for the term reads \(\frac{C}{z_1-P}\delta_{z_1, \xi z_2}\).

Definition at line 282 of file ThreePointSusceptibilityPart.hpp.

Constructor & Destructor Documentation

◆ ResonantTerm() [1/2]

Pomerol::ThreePointSusceptibilityPart::ResonantTerm::ResonantTerm ( )
default

◆ ResonantTerm() [2/2]

Pomerol::ThreePointSusceptibilityPart::ResonantTerm::ResonantTerm ( ComplexType  Coeff,
RealType  P,
int  xi 
)
inline

Constructor.

Parameters
[in]CoeffCoefficient of the term \(C\).
[in]PPole \(P\).
[in]xiCoefficient \(\xi\).

Definition at line 359 of file ThreePointSusceptibilityPart.hpp.

Member Function Documentation

◆ mpi_datatype()

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

Create and commit an MPI datatype for ResonantTerm.

◆ operator()()

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

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

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

Definition at line 530 of file ThreePointSusceptibilityPart.hpp.

◆ operator+=()

ResonantTerm& Pomerol::ThreePointSusceptibilityPart::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.

  • Coeff += AnotherTerm.Coeff
  • P = (P * Weight + AnotherTerm.P * AnotherTerm.Weight) / (Weight + AnotherTerm.Weight)
  • Weight += AnotherTerm.Weight
    Parameters
    [in]AnotherTermTerm to add.

Field Documentation

◆ Coeff

ComplexType Pomerol::ThreePointSusceptibilityPart::ResonantTerm::Coeff = 0

Coefficient \(C\).

Definition at line 284 of file ThreePointSusceptibilityPart.hpp.

◆ P

RealType Pomerol::ThreePointSusceptibilityPart::ResonantTerm::P = 0

Pole \(P\).

Definition at line 287 of file ThreePointSusceptibilityPart.hpp.

◆ Weight

long Pomerol::ThreePointSusceptibilityPart::ResonantTerm::Weight = 0

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

See also
operator+=()

Definition at line 294 of file ThreePointSusceptibilityPart.hpp.

◆ xi

int Pomerol::ThreePointSusceptibilityPart::ResonantTerm::xi = 1

Coefficient \(\xi\).

Definition at line 290 of file ThreePointSusceptibilityPart.hpp.


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