QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace > Class Template Reference#

DiFfRG: DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace > Class Template Reference
DiFfRG
DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace > Class Template Reference

#include <quadrature_integrator_fT.hh>

Inheritance diagram for DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >:
DiFfRG::AbstractIntegrator

Public Types

using ctype = typename get_type::ctype<NT>
 Numerical type to be used for integration tasks e.g. the argument or possible jacobians.
 
using execution_space = ExecutionSpace
 Execution space to be used for the integration, e.g. GPU_exec, TBB_exec.
 

Public Member Functions

 QuadratureIntegrator_fT (QuadratureProvider &quadrature_provider, const std::array< size_t, sdim > _grid_size, std::array< ctype, sdim > grid_min, std::array< ctype, sdim > grid_max, const std::array< QuadratureType, sdim > quadrature_type, const ctype T=1, const ctype typical_E=1)
 
void set_grid_extents (const std::array< ctype, sdim > grid_min, const std::array< ctype, sdim > grid_max)
 
void set_T (const ctype T)
 
void set_typical_E (const ctype typical_E)
 
template<typename... T>
void get (NT &dest, const T &...t) const
 
template<typename OT , typename... T>
requires (!std::is_same_v<OT, NT>)
void get (OT &dest, const T &...t) const
 
template<typename OT , typename... Args>
requires (!std::is_same_v<OT, NT>)
void get (ExecutionSpace &space, OT &dest, const Args &...t) const
 
template<typename view_type , typename Coordinates , typename... Args>
void map (ExecutionSpace &space, const view_type integral_view, const Coordinates &coordinates, const Args &...args)
 
template<typename Coordinates , typename... Args>
auto map (NT *dest, const Coordinates &coordinates, const Args &...args)
 
template<typename Coordinates , typename... Args>
auto map_dist (NT *dest, const Coordinates &coordinates, const Args &...args)
 
- Public Member Functions inherited from DiFfRG::AbstractIntegrator
void set_node_distribution (const NodeDistribution &distribution)
 
const NodeDistributionget_node_distribution () const
 
void set_load_balancer (IntegrationLoadBalancer &load_balancer)
 

Static Public Attributes

static constexpr int sdim = dim - 1
 Spatial dimension of the integration problem.
 

Protected Attributes

ExecutionSpace space
 
QuadratureProviderquadrature_provider
 
device::array< device::array< ctype, sdim >, 2 > grid_extents
 
device::array< ctype, sdimgrid_start
 
device::array< ctype, sdimgrid_scale
 
device::array< size_t, dim > grid_size
 
device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, sdimnodes
 
device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, sdimweights
 
ctype T
 
ctype typical_E
 
ctype matsubara_sum_T
 
Kokkos::View< const ctype *, typename ExecutionSpace::memory_space > matsubara_nodes
 
Kokkos::View< const ctype *, typename ExecutionSpace::memory_space > matsubara_weights
 
KokkosNDView< 1+dim, NT, ExecutionSpace > m_cache
 
device::array< size_t, 1+dim > m_cache_extents {}
 
Kokkos::View< NT *, ExecutionSpace > m_dest_device
 
size_t m_dest_device_size = 0
 
Kokkos::View< NT, typename ExecutionSpace::memory_space > m_result_view
 
Kokkos::View< NT, typenameExecutionSpace::memory_space >::host_mirror_type m_result_host
 
bool m_result_views_initialized = false
 
- Protected Attributes inherited from DiFfRG::AbstractIntegrator
NodeDistribution node_distribution
 

Member Typedef Documentation

◆ ctype

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
using DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::ctype = typename get_type::ctype<NT>

Numerical type to be used for integration tasks e.g. the argument or possible jacobians.

◆ execution_space

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
using DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::execution_space = ExecutionSpace

Execution space to be used for the integration, e.g. GPU_exec, TBB_exec.

Constructor & Destructor Documentation

◆ QuadratureIntegrator_fT()

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::QuadratureIntegrator_fT ( QuadratureProvider & quadrature_provider,
const std::array< size_t, sdim > _grid_size,
std::array< ctype, sdim > grid_min,
std::array< ctype, sdim > grid_max,
const std::array< QuadratureType, sdim > quadrature_type,
const ctype T = 1,
const ctype typical_E = 1 )
inline

Member Function Documentation

◆ get() [1/3]

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename OT , typename... Args>
requires (!std::is_same_v<OT, NT>)
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::get ( ExecutionSpace & space,
OT & dest,
const Args &... t ) const
inline

◆ get() [2/3]

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename... T>
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::get ( NT & dest,
const T &... t ) const
inline

◆ get() [3/3]

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename OT , typename... T>
requires (!std::is_same_v<OT, NT>)
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::get ( OT & dest,
const T &... t ) const
inline

◆ map() [1/2]

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename view_type , typename Coordinates , typename... Args>
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::map ( ExecutionSpace & space,
const view_type integral_view,
const Coordinates & coordinates,
const Args &... args )
inline

◆ map() [2/2]

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename Coordinates , typename... Args>
auto DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::map ( NT * dest,
const Coordinates & coordinates,
const Args &... args )
inline

◆ map_dist()

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename Coordinates , typename... Args>
auto DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::map_dist ( NT * dest,
const Coordinates & coordinates,
const Args &... args )
inline

◆ set_grid_extents()

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::set_grid_extents ( const std::array< ctype, sdim > grid_min,
const std::array< ctype, sdim > grid_max )
inline

◆ set_T()

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::set_T ( const ctype T)
inline

◆ set_typical_E()

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
void DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::set_typical_E ( const ctype typical_E)
inline

Member Data Documentation

◆ grid_extents

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<device::array<ctype, sdim>, 2> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::grid_extents
protected

◆ grid_scale

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<ctype, sdim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::grid_scale
protected

◆ grid_size

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<size_t, dim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::grid_size
protected

◆ grid_start

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<ctype, sdim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::grid_start
protected

◆ m_cache

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
KokkosNDView<1 + dim, NT, ExecutionSpace> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_cache
mutableprotected

◆ m_cache_extents

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<size_t, 1 + dim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_cache_extents {}
mutableprotected

◆ m_dest_device

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Kokkos::View<NT *, ExecutionSpace> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_dest_device
mutableprotected

◆ m_dest_device_size

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
size_t DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_dest_device_size = 0
mutableprotected

◆ m_result_host

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Kokkos::View<NT,typenameExecutionSpace::memory_space>::host_mirror_type DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_result_host
mutableprotected

◆ m_result_view

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Kokkos::View<NT, typename ExecutionSpace::memory_space> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_result_view
mutableprotected

◆ m_result_views_initialized

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
bool DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::m_result_views_initialized = false
mutableprotected

◆ matsubara_nodes

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Kokkos::View<const ctype *, typename ExecutionSpace::memory_space> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::matsubara_nodes
protected

◆ matsubara_sum_T

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
ctype DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::matsubara_sum_T
protected

◆ matsubara_weights

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Kokkos::View<const ctype *, typename ExecutionSpace::memory_space> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::matsubara_weights
protected

◆ nodes

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<Kokkos::View<const ctype *, typename ExecutionSpace::memory_space>, sdim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::nodes
protected

◆ quadrature_provider

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
QuadratureProvider& DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::quadrature_provider
protected

◆ sdim

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
int DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::sdim = dim - 1
staticconstexpr

Spatial dimension of the integration problem.

◆ space

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
ExecutionSpace DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::space
protected

◆ T

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
ctype DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::T
protected

◆ typical_E

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
ctype DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::typical_E
protected

◆ weights

template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
device::array<Kokkos::View<const ctype *, typename ExecutionSpace::memory_space>, sdim> DiFfRG::QuadratureIntegrator_fT< dim, NT, KERNEL, ExecutionSpace >::weights
protected

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