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

A non-resonant fermion-fermion term in the Lehmann representation of ThreePointSusceptibility. More...

#include <ThreePointSusceptibilityPart.hpp>

Data Structures

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

Public Member Functions

 NonResonantFFTerm ()=default
 
 NonResonantFFTerm (ComplexType Coeff, RealType P1, RealType P2)
 
ComplexType operator() (ComplexType z1, ComplexType z2) const
 
NonResonantFFTermoperator+= (NonResonantFFTerm const &AnotherTerm)
 

Static Public Member Functions

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

Data Fields

ComplexType Coeff = 0
 Coefficient \(C\). More...
 
std::array< RealType, 2 > Poles = {{0, 0}}
 Poles \(P_1\), \(P_2\). More...
 
long Weight = 0
 

Detailed Description

A non-resonant fermion-fermion term in the Lehmann representation of ThreePointSusceptibility.

It is parametrized by a complex coefficient \(C\) and positions of real poles \(P_1, P_2\). An explicit expression for the term reads \(\frac{C}{(z_1-P_1)(z_2-P_2)}\).

Definition at line 66 of file ThreePointSusceptibilityPart.hpp.

Constructor & Destructor Documentation

◆ NonResonantFFTerm() [1/2]

Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::NonResonantFFTerm ( )
default

◆ NonResonantFFTerm() [2/2]

Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::NonResonantFFTerm ( ComplexType  Coeff,
RealType  P1,
RealType  P2 
)
inline

Constructor.

Parameters
[in]CoeffCoefficient of the term \(C\).
[in]P1Pole \(P_1\).
[in]P2Pole \(P_2\).

Definition at line 142 of file ThreePointSusceptibilityPart.hpp.

Member Function Documentation

◆ mpi_datatype()

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

Create and commit an MPI datatype for NonResonantFFTerm.

◆ operator()()

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

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

Parameters
[in]z1Complex frequency \(z_1\).
[in]z2Complex frequency \(z_2\).

Definition at line 521 of file ThreePointSusceptibilityPart.hpp.

◆ operator+=()

NonResonantFFTerm& Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::operator+= ( NonResonantFFTerm const &  AnotherTerm)

Add a non-resonant fermion-fermion term to this term.

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

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

Field Documentation

◆ Coeff

ComplexType Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::Coeff = 0

Coefficient \(C\).

Definition at line 68 of file ThreePointSusceptibilityPart.hpp.

◆ Poles

std::array<RealType, 2> Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::Poles = {{0, 0}}

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

Definition at line 71 of file ThreePointSusceptibilityPart.hpp.

◆ Weight

long Pomerol::ThreePointSusceptibilityPart::NonResonantFFTerm::Weight = 0

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

See also
operator+=()

Definition at line 75 of file ThreePointSusceptibilityPart.hpp.


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