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

DiFfRG: DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace > Class Template Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace > Class Template Reference

Integrator_p2 integrates a kernel \(K(p,\ldots)\) depending on the radial momentum \(p\) as $$ \frac{S_d}{(2\pi)^{d}}\,\int_0^\infty dp^2 p^{d-2} K(p, \ldots) $$ where \(S_d\) is the solid angle in $d$ dimensions. More...

#include <integrator_p2.hh>

Inheritance diagram for DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace >:
DiFfRG::QuadratureIntegrator< 1, NT, internal::Transform_p2< 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 Types inherited from DiFfRG::QuadratureIntegrator< 1, NT, internal::Transform_p2< dim, NT, KERNEL >, ExecutionSpace >
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

 Integrator_p2 (QuadratureProvider &quadrature_provider, const JSONValue &json)
 
 Integrator_p2 (QuadratureProvider &quadrature_provider, const std::array< size_t, 1 > grid_size, ctype x_extent=2.)
 
void set_x_extent (ctype x_extent)
 
void set_k (ctype k)
 
- Public Member Functions inherited from DiFfRG::QuadratureIntegrator< 1, NT, internal::Transform_p2< dim, NT, KERNEL >, ExecutionSpace >
 QuadratureIntegrator (QuadratureProvider &quadrature_provider, const std::array< size_t, dim > &_grid_size, const std::array< ctype, dim > &grid_min, const std::array< ctype, dim > &grid_max, const std::array< QuadratureType, dim > &quadrature_type)
 
void set_grid_extents (const std::array< ctype, dim > &grid_min, const std::array< ctype, dim > &grid_max)
 
void get (NT &dest, const T &...t) const
 
void get (OT &dest, const T &...t) const
 
void get (ExecutionSpace &space, OT &dest, const T &...t) const
 
void map (ExecutionSpace &space, const view_type integral_view, const Coordinates &coordinates, const Args &...args)
 
auto map (NT *dest, const Coordinates &coordinates, const Args &...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)
 

Private Types

using Base = QuadratureIntegrator< 1, NT, internal::Transform_p2< dim, NT, KERNEL >, ExecutionSpace >
 

Private Attributes

ctype x_extent
 
ctype k
 

Additional Inherited Members

- Protected Attributes inherited from DiFfRG::QuadratureIntegrator< 1, NT, internal::Transform_p2< dim, NT, KERNEL >, ExecutionSpace >
device::array< size_t, dim > grid_size
 
ExecutionSpace space
 
QuadratureProviderquadrature_provider
 
device::array< device::array< ctype, dim >, 2 > grid_extents
 
device::array< ctype, dim > grid_start
 
device::array< ctype, dim > grid_scale
 
device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, dim > nodes
 
device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, dim > 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
 
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
 
- Protected Attributes inherited from DiFfRG::AbstractIntegrator
NodeDistribution node_distribution
 

Detailed Description

template<int dim, typename NT, typename KERNEL, typename ExecutionSpace>
class DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace >

Integrator_p2 integrates a kernel \(K(p,\ldots)\) depending on the radial momentum \(p\) as $$ \frac{S_d}{(2\pi)^{d}}\,\int_0^\infty dp^2 p^{d-2} K(p, \ldots) $$ where \(S_d\) is the solid angle in $d$ dimensions.

Template Parameters
dimdimension of the momentum space, i.e. $d$ in the above equation
NTnumerical type of the result
KERNELkernel to be integrated, which must provide the static methods kernel and constant
ExecutionSpacecan be any execution space, e.g. GPU_exec, TBB_exec, or Threads_exec.

Member Typedef Documentation

◆ Base

◆ ctype

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

◆ execution_space

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

Constructor & Destructor Documentation

◆ Integrator_p2() [1/2]

DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace >::Integrator_p2 ( QuadratureProvider quadrature_provider,
const JSONValue json 
)
inline

◆ Integrator_p2() [2/2]

DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace >::Integrator_p2 ( QuadratureProvider quadrature_provider,
const std::array< size_t, 1 >  grid_size,
ctype  x_extent = 2. 
)
inline

Member Function Documentation

◆ set_k()

◆ set_x_extent()

void DiFfRG::Integrator_p2< dim, NT, KERNEL, ExecutionSpace >::set_x_extent ( ctype  x_extent)
inline

Member Data Documentation

◆ k

◆ x_extent


The documentation for this class was generated from the following file:
  • /__w/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/physics/integration/vacuum/integrator_p2.hh