MatsubaraStorage Class Reference#

DiFfRG: DiFfRG::internal::MatsubaraStorage Class Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::internal::MatsubaraStorage Class Reference

A class that stores Matsubara quadrature points and weights for a given T, E. Its main purpose is to avoid recomputing the quadrature points and weights for each Matsubara integrator and provide a search algorithm to find previously computed Matsubara quadratures. More...

#include <quadrature_provider.hh>

Public Member Functions

template<typename NT = double>
MatsubaraQuadrature< NT > & get_matsubara_quadrature (const NT T, const NT E)
 Return the MatsubaraQuadrature object for a given T, E.
 
void set_verbosity (int v)
 
void set_vacuum_quad_size (const int size)
 
void set_min_matsubara_size (const int value)
 
void set_max_matsubara_size (const int value)
 
void set_matsubara_precision_factor (const int value)
 

Private Types

template<typename NT = double>
using StorageType = std::map< double, std::map< double, MatsubaraQuadrature< NT > > >
 
template<typename NT = double>
using SubStorageType = std::map< double, MatsubaraQuadrature< NT > >
 
template<typename NT = double>
using TemperatureIterator = typename StorageType< NT >::iterator
 
template<typename NT = double>
using EnergyIterator = typename StorageType< NT >::mapped_type::iterator
 

Private Member Functions

MatsubaraQuadrature< double > & get_matsubara_quadrature_d (const double T, const double E)
 
MatsubaraQuadrature< float > & get_matsubara_quadrature_f (const float T, const float E)
 
TemperatureIterator< doublefind_T_d (const double T)
 
TemperatureIterator< floatfind_T_f (const float T)
 
EnergyIterator< doublefind_E_d (const double E, TemperatureIterator< double > T_it)
 
EnergyIterator< floatfind_E_f (const float E, TemperatureIterator< float > T_it)
 

Private Attributes

StorageType< doublequadratures_d
 
StorageType< floatquadratures_f
 
int verbosity = 0
 
int vacuum_quad_size = 64
 
int matsubara_precision_factor = 0
 
int min_matsubara_size = 32
 
int max_matsubara_size = 128
 
std::mutex m_mutex
 

Detailed Description

A class that stores Matsubara quadrature points and weights for a given T, E. Its main purpose is to avoid recomputing the quadrature points and weights for each Matsubara integrator and provide a search algorithm to find previously computed Matsubara quadratures.

Member Typedef Documentation

◆ EnergyIterator

template<typename NT = double>
using DiFfRG::internal::MatsubaraStorage::EnergyIterator = typename StorageType<NT>::mapped_type::iterator
private

◆ StorageType

◆ SubStorageType

◆ TemperatureIterator

Member Function Documentation

◆ find_E_d()

EnergyIterator< double > DiFfRG::internal::MatsubaraStorage::find_E_d ( const double  E,
TemperatureIterator< double T_it 
)
private

◆ find_E_f()

EnergyIterator< float > DiFfRG::internal::MatsubaraStorage::find_E_f ( const float  E,
TemperatureIterator< float T_it 
)
private

◆ find_T_d()

TemperatureIterator< double > DiFfRG::internal::MatsubaraStorage::find_T_d ( const double  T)
private

◆ find_T_f()

TemperatureIterator< float > DiFfRG::internal::MatsubaraStorage::find_T_f ( const float  T)
private

◆ get_matsubara_quadrature()

template<typename NT = double>
MatsubaraQuadrature< NT > & DiFfRG::internal::MatsubaraStorage::get_matsubara_quadrature ( const NT  T,
const NT  E 
)
inline

Return the MatsubaraQuadrature object for a given T, E.

◆ get_matsubara_quadrature_d()

MatsubaraQuadrature< double > & DiFfRG::internal::MatsubaraStorage::get_matsubara_quadrature_d ( const double  T,
const double  E 
)
private

◆ get_matsubara_quadrature_f()

MatsubaraQuadrature< float > & DiFfRG::internal::MatsubaraStorage::get_matsubara_quadrature_f ( const float  T,
const float  E 
)
private

◆ set_matsubara_precision_factor()

void DiFfRG::internal::MatsubaraStorage::set_matsubara_precision_factor ( const int  value)

◆ set_max_matsubara_size()

void DiFfRG::internal::MatsubaraStorage::set_max_matsubara_size ( const int  value)

◆ set_min_matsubara_size()

void DiFfRG::internal::MatsubaraStorage::set_min_matsubara_size ( const int  value)

◆ set_vacuum_quad_size()

void DiFfRG::internal::MatsubaraStorage::set_vacuum_quad_size ( const int  size)

◆ set_verbosity()

void DiFfRG::internal::MatsubaraStorage::set_verbosity ( int  v)

Member Data Documentation

◆ m_mutex

std::mutex DiFfRG::internal::MatsubaraStorage::m_mutex
private

◆ matsubara_precision_factor

int DiFfRG::internal::MatsubaraStorage::matsubara_precision_factor = 0
private

◆ max_matsubara_size

int DiFfRG::internal::MatsubaraStorage::max_matsubara_size = 128
private

◆ min_matsubara_size

int DiFfRG::internal::MatsubaraStorage::min_matsubara_size = 32
private

◆ quadratures_d

StorageType<double> DiFfRG::internal::MatsubaraStorage::quadratures_d
private

◆ quadratures_f

StorageType<float> DiFfRG::internal::MatsubaraStorage::quadratures_f
private

◆ vacuum_quad_size

int DiFfRG::internal::MatsubaraStorage::vacuum_quad_size = 64
private

◆ verbosity

int DiFfRG::internal::MatsubaraStorage::verbosity = 0
private

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