DiFfRG
Loading...
Searching...
No Matches
DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL > Class Template Reference

#include <integrator_finiteTq0_gpu.hh>

Public Types

using ctype = typename get_type::ctype<NT>
 

Public Member Functions

 IntegratorFiniteTq0GPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_sizes, const ctype x_extent, const JSONValue &json)
 
 IntegratorFiniteTq0GPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > _grid_sizes, const ctype x_extent, const ctype T, const uint max_block_size=256)
 
void reinit ()
 
void set_T (const ctype T, const ctype E=0)
 Set the temperature and typical energy scale of the integrator and recompute the Matsubara quadrature rule.
 
void set_E (const ctype E)
 Set the typical energy scale of the integrator and recompute the Matsubara quadrature rule.
 
 IntegratorFiniteTq0GPU (const IntegratorFiniteTq0GPU &other)
 
template<typename... T>
NT get (const ctype k, const T &...t)
 
template<typename... T>
std::future< NT > request (const ctype k, const T &...t)
 

Private Types

using PoolMR = rmm::mr::pool_memory_resource<rmm::mr::device_memory_resource>
 

Private Attributes

QuadratureProviderquadrature_provider
 
std::array< uint, 2 > grid_sizes
 
std::array< uint, 2 > block_sizes
 
uint device_data_size
 
const ctypeptr_x_quadrature_p
 
const ctypeptr_x_quadrature_w
 
const ctypeptr_matsubara_quadrature_p
 
const ctypeptr_matsubara_quadrature_w
 
const ctype x_extent
 
ctype m_T
 
ctype m_E
 
bool manual_E
 
const uint max_block_size
 
dim3 num_blocks
 
dim3 threads_per_block
 
PoolMR pool
 
const rmm::cuda_stream_pool cuda_stream_pool
 

Member Typedef Documentation

◆ ctype

template<int d, typename NT , typename KERNEL >
using DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::ctype = typename get_type::ctype<NT>

◆ PoolMR

template<int d, typename NT , typename KERNEL >
using DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::PoolMR = rmm::mr::pool_memory_resource<rmm::mr::device_memory_resource>
private

Constructor & Destructor Documentation

◆ IntegratorFiniteTq0GPU() [1/3]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::IntegratorFiniteTq0GPU ( QuadratureProvider & quadrature_provider,
const std::array< uint, 1 > grid_sizes,
const ctype x_extent,
const JSONValue & json )
inline

◆ IntegratorFiniteTq0GPU() [2/3]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::IntegratorFiniteTq0GPU ( QuadratureProvider & quadrature_provider,
const std::array< uint, 1 > _grid_sizes,
const ctype x_extent,
const ctype T,
const uint max_block_size = 256 )
inline

◆ IntegratorFiniteTq0GPU() [3/3]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::IntegratorFiniteTq0GPU ( const IntegratorFiniteTq0GPU< d, NT, KERNEL > & other)
inline

Member Function Documentation

◆ get()

template<int d, typename NT , typename KERNEL >
template<typename... T>
NT DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::get ( const ctype k,
const T &... t )
inline

◆ reinit()

template<int d, typename NT , typename KERNEL >
void DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::reinit ( )
inline

◆ request()

template<int d, typename NT , typename KERNEL >
template<typename... T>
std::future< NT > DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::request ( const ctype k,
const T &... t )
inline

◆ set_E()

template<int d, typename NT , typename KERNEL >
void DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::set_E ( const ctype E)
inline

Set the typical energy scale of the integrator and recompute the Matsubara quadrature rule.

Parameters
EThe typical energy scale.

◆ set_T()

template<int d, typename NT , typename KERNEL >
void DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::set_T ( const ctype T,
const ctype E = 0 )
inline

Set the temperature and typical energy scale of the integrator and recompute the Matsubara quadrature rule.

Parameters
TThe temperature.
EA typical energy scale, which determines the number of nodes in the quadrature rule.

Member Data Documentation

◆ block_sizes

template<int d, typename NT , typename KERNEL >
std::array<uint, 2> DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::block_sizes
private

◆ cuda_stream_pool

template<int d, typename NT , typename KERNEL >
const rmm::cuda_stream_pool DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::cuda_stream_pool
private

◆ device_data_size

template<int d, typename NT , typename KERNEL >
uint DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::device_data_size
private

◆ grid_sizes

template<int d, typename NT , typename KERNEL >
std::array<uint, 2> DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::grid_sizes
private

◆ m_E

template<int d, typename NT , typename KERNEL >
ctype DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::m_E
private

◆ m_T

template<int d, typename NT , typename KERNEL >
ctype DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::m_T
private

◆ manual_E

template<int d, typename NT , typename KERNEL >
bool DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::manual_E
private

◆ max_block_size

template<int d, typename NT , typename KERNEL >
const uint DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::max_block_size
private

◆ num_blocks

template<int d, typename NT , typename KERNEL >
dim3 DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::num_blocks
private

◆ pool

template<int d, typename NT , typename KERNEL >
PoolMR DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::pool
mutableprivate

◆ ptr_matsubara_quadrature_p

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::ptr_matsubara_quadrature_p
private

◆ ptr_matsubara_quadrature_w

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::ptr_matsubara_quadrature_w
private

◆ ptr_x_quadrature_p

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::ptr_x_quadrature_p
private

◆ ptr_x_quadrature_w

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::ptr_x_quadrature_w
private

◆ quadrature_provider

template<int d, typename NT , typename KERNEL >
QuadratureProvider& DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::quadrature_provider
private

◆ threads_per_block

template<int d, typename NT , typename KERNEL >
dim3 DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::threads_per_block
private

◆ x_extent

template<int d, typename NT , typename KERNEL >
const ctype DiFfRG::IntegratorFiniteTq0GPU< d, NT, KERNEL >::x_extent
private

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