Reference documentation for deal.II version 9.2.0
\(\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\}}\)
Static Public Member Functions | List of all members
internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, n_components, Number > Struct Template Reference

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

Static Public Member Functions

static void evaluate (const MatrixFreeFunctions::ShapeInfo< Number > &shape_info, const Number *values_dofs_actual, Number *values_quad, Number *gradients_quad, Number *hessians_quad, Number *scratch_data, const bool evaluate_values, const bool evaluate_gradients, const bool evaluate_hessians)
 
static void integrate (const MatrixFreeFunctions::ShapeInfo< Number > &shape_info, Number *values_dofs_actual, Number *values_quad, Number *gradients_quad, Number *scratch_data, const bool integrate_values, const bool integrate_gradients, const bool add_into_values_array)
 

Detailed Description

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number>
struct internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, n_components, Number >

This struct performs the evaluation of function values, gradients and Hessians for tensor-product finite elements. The operation is used for both the symmetric and non-symmetric case, which use different apply functions 'values', 'gradients' in the individual coordinate directions. The apply functions for values are provided through one of the template classes EvaluatorTensorProduct which in turn are selected from the MatrixFreeFunctions::ElementType template argument.

There are two specialized implementation classes FEEvaluationImplCollocation (for Gauss-Lobatto elements where the nodal points and the quadrature points coincide and the 'values' operation is identity) and FEEvaluationImplTransformToCollocation (which can be transformed to a collocation space and can then use the identity in these spaces), which both allow for shorter code.

Author
Katharina Kormann, Martin Kronbichler, 2012, 2014, 2017

Definition at line 111 of file evaluation_kernels.h.

Member Function Documentation

◆ evaluate()

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number >
void internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, n_components, Number >::evaluate ( const MatrixFreeFunctions::ShapeInfo< Number > &  shape_info,
const Number *  values_dofs_actual,
Number *  values_quad,
Number *  gradients_quad,
Number *  hessians_quad,
Number *  scratch_data,
const bool  evaluate_values,
const bool  evaluate_gradients,
const bool  evaluate_hessians 
)
inlinestatic

Definition at line 145 of file evaluation_kernels.h.

◆ integrate()

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number >
void internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, n_components, Number >::integrate ( const MatrixFreeFunctions::ShapeInfo< Number > &  shape_info,
Number *  values_dofs_actual,
Number *  values_quad,
Number *  gradients_quad,
Number *  scratch_data,
const bool  integrate_values,
const bool  integrate_gradients,
const bool  add_into_values_array 
)
inlinestatic

Definition at line 426 of file evaluation_kernels.h.


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