DiFfRG
Loading...
Searching...
No Matches
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>
const std::vector< NT > & get_points (const size_t order, const QuadratureType type=QuadratureType::legendre)
 Get the quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double>
const std::vector< NT > & get_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>
const std::vector< NT > & get_matsubara_points (const NT T, const NT typical_E)
 Get the quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double>
const std::vector< NT > & get_matsubara_weights (const NT T, const NT typical_E)
 Get the quadrature weights for a quadrature of size quadrature_size.
 
template<typename NT = double>
const NT * get_device_points (const size_t order, const int device=0, const QuadratureType type=QuadratureType::legendre)
 Get the device-side quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double>
const NT * get_device_weights (const size_t order, const int device=0, const QuadratureType type=QuadratureType::legendre)
 Get the device-side quadrature weights for a quadrature of size quadrature_size.
 
template<typename NT = double>
const NT * get_device_matsubara_points (const NT T, const NT typical_E, const int device=0)
 Get the device-side quadrature points for a quadrature of size quadrature_size.
 
template<typename NT = double>
const NT * get_device_matsubara_weights (const NT T, const NT typical_E, const int device=0)
 Get the device-side quadrature weights for a quadrature of size quadrature_size.
 

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

◆ get_device_matsubara_points()

template<typename NT = double>
const NT * DiFfRG::QuadratureProvider::get_device_matsubara_points ( const NT T,
const NT typical_E,
const int device = 0 )
inline

Get the device-side quadrature points for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const double*

◆ get_device_matsubara_weights()

template<typename NT = double>
const NT * DiFfRG::QuadratureProvider::get_device_matsubara_weights ( const NT T,
const NT typical_E,
const int device = 0 )
inline

Get the device-side quadrature weights for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const double*

◆ get_device_points()

template<typename NT = double>
const NT * DiFfRG::QuadratureProvider::get_device_points ( const size_t order,
const int device = 0,
const QuadratureType type = QuadratureType::legendre )
inline

Get the device-side quadrature points for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const double*

◆ get_device_weights()

template<typename NT = double>
const NT * DiFfRG::QuadratureProvider::get_device_weights ( const size_t order,
const int device = 0,
const QuadratureType type = QuadratureType::legendre )
inline

Get the device-side quadrature weights for a quadrature of size quadrature_size.

Parameters
quadrature_sizeSize of the quadrature.
Returns
const double*

◆ get_matsubara_points()

template<typename NT = double>
const std::vector< NT > & DiFfRG::QuadratureProvider::get_matsubara_points ( 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>&

◆ get_matsubara_weights()

template<typename NT = double>
const std::vector< NT > & DiFfRG::QuadratureProvider::get_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>&

◆ get_points()

template<typename NT = double>
const std::vector< NT > & DiFfRG::QuadratureProvider::get_points ( 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>&

◆ get_weights()

template<typename NT = double>
const std::vector< NT > & DiFfRG::QuadratureProvider::get_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: