QuadratureProvider Class Reference#

DiFfRG: DiFfRG::QuadratureProvider Class Reference
DiFfRG
DiFfRG::QuadratureProvider Class Reference

A class that provides quadrature points and weights, in host and device memory. The quadrature points and weights are computed either the GSL quadratures or the MatsubaraQuadrature class. This avoids recomputing the quadrature points and weights for each integrator. More...

#include <quadrature_provider.hh>

Public Member Functions

 QuadratureProvider ()
 
 QuadratureProvider (const JSONValue &json)
 
template<typename NT = double, typename MemorySpace = CPU_memory>
auto nodes (const size_t order, const QuadratureType type=QuadratureType::legendre)
 Get the quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double, typename MemorySpace = CPU_memory>
auto weights (const size_t order, const QuadratureType type=QuadratureType::legendre)
 Get the quadrature weights for a quadrature of size quadrature_size.
 
template<typename NT = double, typename MemorySpace = CPU_memory>
auto matsubara_nodes (const NT T, const NT typical_E)
 Get the quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double, typename MemorySpace = CPU_memory>
auto matsubara_weights (const NT T, const NT typical_E)
 Get the quadrature weights for a quadrature of size quadrature_size.
 
template<typename NT = double>
NT matsubara_T (const NT T, const NT typical_E)
 Get the effective temperature for the Matsubara zero-mode weight. Returns 0 for vacuum (T=0) quadratures and the physical T for Monien quadratures.
 

Private Attributes

internal::MatsubaraStorage matsubara_storage
 
internal::QuadratureStorage quadrature_storage
 
int verbosity
 

Detailed Description

A class that provides quadrature points and weights, in host and device memory. The quadrature points and weights are computed either the GSL quadratures or the MatsubaraQuadrature class. This avoids recomputing the quadrature points and weights for each integrator.

Constructor & Destructor Documentation

◆ QuadratureProvider() [1/2]

DiFfRG::QuadratureProvider::QuadratureProvider ( )

◆ QuadratureProvider() [2/2]

DiFfRG::QuadratureProvider::QuadratureProvider ( const JSONValue & json)

Member Function Documentation

◆ matsubara_nodes()

template<typename NT = double, typename MemorySpace = CPU_memory>
auto DiFfRG::QuadratureProvider::matsubara_nodes ( const NT T,
const NT typical_E )
inline

Get the quadrature points for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const std::vector<double>&

◆ matsubara_T()

template<typename NT = double>
NT DiFfRG::QuadratureProvider::matsubara_T ( const NT T,
const NT typical_E )
inline

Get the effective temperature for the Matsubara zero-mode weight. Returns 0 for vacuum (T=0) quadratures and the physical T for Monien quadratures.

◆ matsubara_weights()

template<typename NT = double, typename MemorySpace = CPU_memory>
auto DiFfRG::QuadratureProvider::matsubara_weights ( const NT T,
const NT typical_E )
inline

Get the quadrature weights for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const std::vector<double>&

◆ nodes()

template<typename NT = double, typename MemorySpace = CPU_memory>
auto DiFfRG::QuadratureProvider::nodes ( const size_t order,
const QuadratureType type = QuadratureType::legendre )
inline

Get the quadrature points for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const std::vector<double>&

◆ weights()

template<typename NT = double, typename MemorySpace = CPU_memory>
auto DiFfRG::QuadratureProvider::weights ( const size_t order,
const QuadratureType type = QuadratureType::legendre )
inline

Get the quadrature weights for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const std::vector<double>&

Member Data Documentation

◆ matsubara_storage

internal::MatsubaraStorage DiFfRG::QuadratureProvider::matsubara_storage
private

◆ quadrature_storage

internal::QuadratureStorage DiFfRG::QuadratureProvider::quadrature_storage
private

◆ verbosity

int DiFfRG::QuadratureProvider::verbosity
private

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/quadrature/quadrature_provider.hh