DiFfRG
Loading...
Searching...
No Matches
DiFfRG::LoopIntegrals Namespace Reference

Functions

template<typename NT , int d, typename FUN >
NT integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT angle_integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &cos_quadrature)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT two_angle_integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &cos_quadrature)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT three_angle_integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &cos_quadrature)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT spatial_integrate_and_integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &m_quadrature, const double m_extent)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT spatial_angle_integrate_and_integrate (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &cos_quadrature, const QGauss< 1 > &m_quadrature, const double m_extent)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT spatial_integrate_and_sum (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const int m_order, const QGauss< 1 > &m_quadrature, const double m_extent, const double T)
 Performs the integral.
 
template<typename NT , int d, typename FUN >
NT spatial_angle_integrate_and_sum (const FUN &fun, const QGauss< 1 > &x_quadrature, const double x_extent, const double k, const QGauss< 1 > &cos_quadrature, const int m_order, const QGauss< 1 > &m_quadrature, const double m_extent, const double T)
 Performs the integral.
 
template<typename NT , typename FUN >
NT sum (const FUN &fun, const int m_order, const QGauss< 1 > &m_quadrature, const double m_extent, const double T)
 

Function Documentation

◆ angle_integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::angle_integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & cos_quadrature )

Performs the integral.

\[ \int d\Omega_{d-1} \int_{-1}^1 d\cos \int_0^\infty dq f(q^2, cos) q^{d-1} \]

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
cos_quadratureQuadrature rule for the integral over \(\cos\).
Returns
NT Result of the integral.

◆ integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k )

Performs the integral.

\[ \int d\Omega_{d} \int_0^\infty dq f(q^2) q^{d-1} \]

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
Returns
NT Result of the integral.

◆ spatial_angle_integrate_and_integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::spatial_angle_integrate_and_integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & cos_quadrature,
const QGauss< 1 > & m_quadrature,
const double m_extent )

Performs the integral.

\[ \int_{-\infty}^\infty dq_0\int d\Omega_{d-2} \int_{-1}^1 d\cos \int_0^\infty dq f(q^2, cos, q0) q^{d-2} \]

with \(q_0\) being the zeroth momentum mode.

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
cos_quadratureQuadrature rule for the integral over \(\cos\).
m_quadratureQuadrature rule for the integral over \(q0\), specifically for the domain [0,m_extent).
m_extentExtent of the integral over \(q0\).
Returns
NT Result of the integral.

◆ spatial_angle_integrate_and_sum()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::spatial_angle_integrate_and_sum ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & cos_quadrature,
const int m_order,
const QGauss< 1 > & m_quadrature,
const double m_extent,
const double T )

Performs the integral.

\[ \sum_{q0}\int d\Omega_{d-2} \int_{-1}^1 d\cos \int_0^\infty dq f(q^2, cos, q0) q^{d-2} \]

with \(q0 \,\in 2\pi\mathbb{Z}\) being a Matsubara frequency. The Matsubara sum is performed only for the first \(|n| <= m_order\) summands, the rest is approximated by an integral.

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
cos_quadratureQuadrature rule for the integral over \(\cos\).
m_orderNumber of Matsubara frequencies to be summed over.
m_quadratureQuadrature rule for the integral over \(q0\).
m_extentExtent of the integral over \(q0\).
Returns
NT Result of the integral.

◆ spatial_integrate_and_integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::spatial_integrate_and_integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & m_quadrature,
const double m_extent )

Performs the integral.

\[ \int_{-\infty}^\infty dq_0\int d\Omega_{d-1} \int_0^\infty dq f(q^2, cos, q0) q^{d-2} \]

with \(q_0\) being the zeroth momentum mode.

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
m_quadratureQuadrature rule for the integral over \(q0\), specifically for the domain [0,m_extent).
m_extentExtent of the integral over \(q0\).
Returns
NT Result of the integral.

◆ spatial_integrate_and_sum()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::spatial_integrate_and_sum ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const int m_order,
const QGauss< 1 > & m_quadrature,
const double m_extent,
const double T )

Performs the integral.

\[ \sum_{q0}\int d\Omega_{d-1} \int_0^\infty dq f(q^2, q0) q^{d-2} \]

with \(q0 \,\in 2\pi\mathbb{Z}\) being a Matsubara frequency. The Matsubara sum is performed only for the first \(|n| <= m_order\) summands, the rest is approximated by an integral.

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
m_orderNumber of Matsubara frequencies to be summed over.
m_quadratureQuadrature rule for the integral over \(q0\).
m_extentExtent of the integral over \(q0\).
Returns
NT Result of the integral.

◆ sum()

template<typename NT , typename FUN >
NT DiFfRG::LoopIntegrals::sum ( const FUN & fun,
const int m_order,
const QGauss< 1 > & m_quadrature,
const double m_extent,
const double T )

◆ three_angle_integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::three_angle_integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & cos_quadrature )

Performs the integral.

\[ \int d\Omega_{d-2} \int_{-1}^1 d\cos \int_0^{2\pi}d\phi \int_0^\infty dq f(q^2, cos, phi) q^{d-1} \]

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
cos_quadratureQuadrature rule for the integral over \(\cos\).
Returns
NT Result of the integral.

◆ two_angle_integrate()

template<typename NT , int d, typename FUN >
NT DiFfRG::LoopIntegrals::two_angle_integrate ( const FUN & fun,
const QGauss< 1 > & x_quadrature,
const double x_extent,
const double k,
const QGauss< 1 > & cos_quadrature )

Performs the integral.

\[ \int d\Omega_{d-2} \int_{-1}^1 d\cos \int_0^{2\pi}d\phi \int_0^\infty dq f(q^2, cos, phi) q^{d-1} \]

Template Parameters
NTNumber type used throughout.
dDimension of the integral.
FUNFunction type of the integrand.
Parameters
funIntegrand, should be a callable with signature NT(double q^2).
x_quadratureQuadrature rule for the integral over \(q^2\), \(q^2 = x * k^2\).
x_extentExtent of the integral over \(q^2\), \(q^2 = x * k^2\).
kMomentum scale as defined above.
cos_quadratureQuadrature rule for the integral over \(\cos\).
Returns
NT Result of the integral.