Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.4.1
\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\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number > Struct Template Reference

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

Public Types

using Eval = EvaluatorTensorProduct< variant, dim, fe_degree+1, n_q_points_1d, Number >
 

Static Public Member Functions

static void evaluate (const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, const Number *values_dofs_actual, FEEvaluationData< dim, Number, false > &fe_eval)
 
static void integrate (const unsigned int n_components, const EvaluationFlags::EvaluationFlags integration_flag, Number *values_dofs_actual, FEEvaluationData< dim, Number, false > &fe_eval, const bool add_into_values_array)
 
static Eval create_evaluator_tensor_product (const MatrixFreeFunctions::UnivariateShapeData< Number > *univariate_shape_data)
 

Static Public Attributes

static const EvaluatorVariant variant
 

Detailed Description

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number>
struct internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, 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.

Definition at line 117 of file evaluation_kernels.h.

Member Typedef Documentation

◆ Eval

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number >
using internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number >::Eval = EvaluatorTensorProduct<variant, dim, fe_degree + 1, n_q_points_1d, Number>

Definition at line 122 of file evaluation_kernels.h.

Member Function Documentation

◆ evaluate()

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number >
void internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number >::evaluate ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  evaluation_flag,
const Number *  values_dofs_actual,
FEEvaluationData< dim, Number, false > &  fe_eval 
)
inlinestatic

Definition at line 245 of file evaluation_kernels.h.

◆ integrate()

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number >
void internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number >::integrate ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  integration_flag,
Number *  values_dofs_actual,
FEEvaluationData< dim, Number, false > &  fe_eval,
const bool  add_into_values_array 
)
inlinestatic

Definition at line 518 of file evaluation_kernels.h.

◆ create_evaluator_tensor_product()

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number >
static Eval internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number >::create_evaluator_tensor_product ( const MatrixFreeFunctions::UnivariateShapeData< Number > *  univariate_shape_data)
inlinestatic

Definition at line 142 of file evaluation_kernels.h.

Member Data Documentation

◆ variant

template<MatrixFreeFunctions::ElementType type, int dim, int fe_degree, int n_q_points_1d, typename Number >
const EvaluatorVariant internal::FEEvaluationImpl< type, dim, fe_degree, n_q_points_1d, Number >::variant
static
Initial value:
=
EvaluatorSelector<type, (fe_degree + n_q_points_1d > 4)>::variant
static const EvaluatorVariant variant

Definition at line 119 of file evaluation_kernels.h.


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