QuadratureIntegrator< dim, NT, KERNEL, ExecutionSpace > Class Template Reference#
|
DiFfRG
|
DiFfRG::QuadratureIntegrator< dim, NT, KERNEL, ExecutionSpace > Class Template Reference
This class performs numerical integration over a d-dimensional hypercube using quadrature rules. More...
#include <quadrature_integrator.hh>
Inheritance diagram for DiFfRG::QuadratureIntegrator< dim, NT, KERNEL, ExecutionSpace >:
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 (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) |
| template<typename... T> requires is_valid_kernel<NT, KERNEL, ctype, dim, T...> | |
| void | get (NT &dest, const T &...t) const |
| template<typename OT , typename... T> requires (!std::is_same_v<OT, NT> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>) | |
| void | get (OT &dest, const T &...t) const |
| template<typename OT , typename... T> requires (!std::is_same_v<OT, NT> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>) | |
| void | get (ExecutionSpace &space, OT &dest, const T &...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 NodeDistribution & | get_node_distribution () const |
| void | set_load_balancer (IntegrationLoadBalancer &load_balancer) |
Protected Attributes | |
| device::array< size_t, dim > | grid_size |
| ExecutionSpace | space |
| QuadratureProvider & | quadrature_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 = 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 |
Detailed Description
template<int dim, typename NT, typename KERNEL, typename ExecutionSpace>
requires (dim > 0)
class DiFfRG::QuadratureIntegrator< dim, NT, KERNEL, ExecutionSpace >
requires (dim > 0)
class DiFfRG::QuadratureIntegrator< dim, NT, KERNEL, ExecutionSpace >
This class performs numerical integration over a d-dimensional hypercube using quadrature rules.
- Template Parameters
-
dim The dimension of the hypercube, which can be between 1 and 5. NT numerical type of the result KERNEL kernel to be integrated, which must provide the static methods kernelandconstantExecutionSpace can be any execution space, e.g. GPU_exec, TBB_exec.
Member Typedef Documentation
◆ ctype
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
| using DiFfRG::QuadratureIntegrator< 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< 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()
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
inline |
Member Function Documentation
◆ get() [1/3]
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename OT , typename... T>
requires (!std::is_same_v<OT, NT> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>)
requires (!std::is_same_v<OT, NT> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>)
|
inline |
◆ get() [2/3]
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename... T>
requires is_valid_kernel<NT, KERNEL, ctype, dim, T...>
requires is_valid_kernel<NT, KERNEL, ctype, dim, T...>
|
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> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>)
requires (!std::is_same_v<OT, NT> && is_valid_kernel<NT, KERNEL, ctype, dim, T...>)
|
inline |
◆ map() [1/2]
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename view_type , typename Coordinates , typename... Args>
|
inline |
◆ map() [2/2]
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename Coordinates , typename... Args>
|
inline |
◆ map_dist()
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
template<typename Coordinates , typename... Args>
|
inline |
◆ set_grid_extents()
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
inline |
Member Data Documentation
◆ grid_extents
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ grid_scale
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ grid_size
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ grid_start
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ m_cache
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_cache_extents
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_dest_device
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_dest_device_size
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_result_host
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_result_view
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ m_result_views_initialized
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
mutableprotected |
◆ nodes
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ quadrature_provider
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ space
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
◆ weights
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
|
protected |
The documentation for this class was generated from the following file:
- /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/physics/integration/quadrature_integrator.hh
Generated by
Public Member Functions inherited from