Reference documentation for deal.II version Git 6abe6d7889 2020-08-12 13:30:05 -0400
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number > Struct Template Reference

#include <deal.II/matrix_free/cuda_tensor_product_kernels.h>

Public Member Functions

 EvaluatorTensorProduct (int mf_object_id)
 
template<int direction, bool dof_to_quad, bool add, bool in_place>
void values (Number shape_values[], const Number *in, Number *out) const
 
template<int direction, bool dof_to_quad, bool add, bool in_place>
void gradients (Number shape_gradients[], const Number *in, Number *out) const
 
template<int direction, bool dof_to_quad, bool add, bool in_place>
void apply (Number shape_data[], const Number *in, Number *out) const
 
void value_at_quad_pts (Number *u)
 
void integrate_value (Number *u)
 
void gradient_at_quad_pts (const Number *const u, Number *grad_u[dim])
 
void value_and_gradient_at_quad_pts (Number *const u, Number *grad_u[dim])
 
template<bool add>
void integrate_gradient (Number *u, Number *grad_u[dim])
 
void integrate_value_and_gradient (Number *u, Number *grad_u[dim])
 

Public Attributes

const int mf_object_id
 

Static Public Attributes

static constexpr unsigned int dofs_per_cell
 
static constexpr unsigned int n_q_points
 

Detailed Description

template<int dim, int fe_degree, int n_q_points_1d, typename Number>
struct CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >

Internal evaluator for 1d-3d shape function using the tensor product form of the basis functions.

Definition at line 75 of file cuda_tensor_product_kernels.h.

Constructor & Destructor Documentation

◆ EvaluatorTensorProduct()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::EvaluatorTensorProduct ( int  mf_object_id)

Definition at line 164 of file cuda_tensor_product_kernels.h.

Member Function Documentation

◆ values()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
template<int direction, bool dof_to_quad, bool add, bool in_place>
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::values ( Number  shape_values[],
const Number *  in,
Number *  out 
) const

Evaluate the values of a finite element function at the quadrature points.

Definition at line 177 of file cuda_tensor_product_kernels.h.

◆ gradients()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
template<int direction, bool dof_to_quad, bool add, bool in_place>
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::gradients ( Number  shape_gradients[],
const Number *  in,
Number *  out 
) const

Evaluate the gradient of a finite element function at the quadrature points for a given direction.

Definition at line 193 of file cuda_tensor_product_kernels.h.

◆ apply()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
template<int direction, bool dof_to_quad, bool add, bool in_place>
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::apply ( Number  shape_data[],
const Number *  in,
Number *  out 
) const

Helper function for values() and gradients().

Definition at line 209 of file cuda_tensor_product_kernels.h.

◆ value_at_quad_pts()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::value_at_quad_pts ( Number *  u)
inline

Evaluate the finite element function at the quadrature points.

Definition at line 258 of file cuda_tensor_product_kernels.h.

◆ integrate_value()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::integrate_value ( Number *  u)
inline

Helper function for integrate(). Integrate the finite element function.

Definition at line 308 of file cuda_tensor_product_kernels.h.

◆ gradient_at_quad_pts()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::gradient_at_quad_pts ( const Number *const  u,
Number *  grad_u[dim] 
)
inline

Evaluate the gradients of the finite element function at the quadrature points.

Definition at line 358 of file cuda_tensor_product_kernels.h.

◆ value_and_gradient_at_quad_pts()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::value_and_gradient_at_quad_pts ( Number *const  u,
Number *  grad_u[dim] 
)
inline

Evaluate the values and the gradients of the finite element function at the quadrature points.

Definition at line 448 of file cuda_tensor_product_kernels.h.

◆ integrate_gradient()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
template<bool add>
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::integrate_gradient ( Number *  u,
Number *  grad_u[dim] 
)
inline

Helper function for integrate(). Integrate the gradients of the finite element function.

Definition at line 530 of file cuda_tensor_product_kernels.h.

◆ integrate_value_and_gradient()

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
void CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::integrate_value_and_gradient ( Number *  u,
Number *  grad_u[dim] 
)
inline

Helper function for integrate(). Integrate the values and the gradients of the finite element function.

Definition at line 624 of file cuda_tensor_product_kernels.h.

Member Data Documentation

◆ dofs_per_cell

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
constexpr unsigned int CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::dofs_per_cell
static
Initial value:
=
Utilities::pow(fe_degree + 1, dim)

Definition at line 81 of file cuda_tensor_product_kernels.h.

◆ n_q_points

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
constexpr unsigned int CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::n_q_points
static
Initial value:
=
Utilities::pow(n_q_points_1d, dim)

Definition at line 83 of file cuda_tensor_product_kernels.h.

◆ mf_object_id

template<int dim, int fe_degree, int n_q_points_1d, typename Number >
const int CUDAWrappers::internal::EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >::mf_object_id

Definition at line 153 of file cuda_tensor_product_kernels.h.


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