DiFfRG
|
Integration of an arbitrary 2D function from (qx_min, qy_min) to (qx_max, qy_max) using TBB. More...
#include <integrator_2D_cartesian_gpu.hh>
Public Types | |
using | ctype = typename get_type::ctype<NT> |
Numerical type to be used for integration tasks e.g. the argument or possible jacobians. | |
Public Member Functions | |
Integrator2DCartesianGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 2 > grid_sizes, const ctype x_extent, const JSONValue &json) | |
Construct a new Integrator2DCartesianGPU object. | |
Integrator2DCartesianGPU (QuadratureProvider &quadrature_provider, std::array< uint, 2 > grid_sizes, const ctype x_extent=0., const uint max_block_size=256, const ctype qx_min=-M_PI, const ctype qy_min=-M_PI, const ctype qx_max=M_PI, const ctype qy_max=M_PI) | |
Construct a new Integrator2DCartesianGPU object. | |
Integrator2DCartesianGPU (const Integrator2DCartesianGPU &other) | |
Copy a Integrator2DCartesianGPU object. | |
void | set_qx_min (const ctype qx_min) |
Set the minimum value of the qx integration range. | |
void | set_qy_min (const ctype qy_min) |
Set the minimum value of the qy integration range. | |
void | set_qx_max (const ctype qx_max) |
Set the maximum value of the qx integration range. | |
void | set_qy_max (const ctype qy_max) |
Set the maximum value of the qy integration range. | |
template<typename... T> | |
NT | get (const ctype k, const T &...t) const |
Get the result of the integration. | |
template<typename... T> | |
std::future< NT > | request (const ctype k, const T &...t) const |
Get the result of the integration asynchronously. | |
Private Types | |
using | PoolMR = rmm::mr::pool_memory_resource<rmm::mr::device_memory_resource> |
Private Attributes | |
const std::array< uint, 2 > | grid_sizes |
std::array< uint, 2 > | block_sizes |
const uint | device_data_size |
ctype | qx_min = -M_PI |
ctype | qy_min = -M_PI |
ctype | qx_extent = 2 * M_PI |
ctype | qy_extent = 2 * M_PI |
const ctype * | ptr_x_quadrature_p |
const ctype * | ptr_x_quadrature_w |
const ctype * | ptr_y_quadrature_p |
const ctype * | ptr_y_quadrature_w |
dim3 | num_blocks |
dim3 | threads_per_block |
PoolMR | pool |
const rmm::cuda_stream_pool | cuda_stream_pool |
Integration of an arbitrary 2D function from (qx_min, qy_min) to (qx_max, qy_max) using TBB.
NT | The numerical type of the result. |
KERNEL | The kernel to integrate. |
using DiFfRG::Integrator2DCartesianGPU< NT, KERNEL >::ctype = typename get_type::ctype<NT> |
Numerical type to be used for integration tasks e.g. the argument or possible jacobians.
|
private |
|
inline |
Construct a new Integrator2DCartesianGPU object.
quadrature_provider | The quadrature provider to use. |
grid_sizes | The number of grid points in x and y direction. |
x_extent | This argument is not used, but kept for compatibility with flow classes. |
json | The JSON object containing the configuration. |
|
inline |
Construct a new Integrator2DCartesianGPU object.
quadrature_provider | The quadrature provider to use. |
grid_sizes | The number of grid points in x and y direction. |
x_extent | This argument is not used, but kept for compatibility with flow classes. |
max_block_size | The maximum block size to use on GPU. |
qy_min | The minimum value of the y integration range. |
qx_max | The maximum value of the x integration range. |
qy_max | The maximum value of the y integration range. |
|
inline |
Copy a Integrator2DCartesianGPU object.
other | The other Integrator2DCartesianGPU object to copy. |
|
inline |
Get the result of the integration.
k | The current RG scale. |
t | The remaining arguments of the kernel. |
|
inline |
Get the result of the integration asynchronously.
k | The current RG scale. |
t | The remaining arguments of the kernel. |
|
inline |
Set the maximum value of the qx integration range.
|
inline |
Set the minimum value of the qx integration range.
|
inline |
Set the maximum value of the qy integration range.
|
inline |
Set the minimum value of the qy integration range.
|
private |
|
private |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |