Reference documentation for deal.II version Git 0491297983 2019-09-23 09:31:59 +0200
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Static Public Member Functions | List of all members
SelectEvaluator< dim, -1, n_q_points_1d, n_components, Number > Struct Template Reference

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

Static Public Member Functions

static void evaluate (const internal::MatrixFreeFunctions::ShapeInfo< Number > &shape_info, 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 internal::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 sum_into_values_array=false)
 

Detailed Description

template<int dim, int n_q_points_1d, int n_components, typename Number>
struct SelectEvaluator< dim, -1, n_q_points_1d, n_components, Number >

This specialization chooses an appropriate evaluation strategy if we don't know the correct template parameters at compile time. Instead the selection is done based on the shape_info variable which contains the relevant runtime parameters. In case these parameters do not satisfy \(0\leq fe\_degree \leq 9\) and \(degree+1\leq n\_q\_points\_1d\leq fe\_degree+2\), a non-optimized fallback is used.

Definition at line 553 of file evaluation_selector.h.

Member Function Documentation

◆ evaluate()

template<int dim, int n_q_points_1d, int n_components, typename Number >
static void SelectEvaluator< dim, -1, n_q_points_1d, n_components, Number >::evaluate ( const internal::MatrixFreeFunctions::ShapeInfo< Number > &  shape_info,
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

Based on the run time parameters stored in shape_info this function chooses an appropriate evaluation strategy for the integrate function, i.e. this calls internal::FEEvaluationImpl::evaluate(), internal::FEEvaluationImplCollocation::evaluate() or internal::FEEvaluationImplTransformToCollocation::evaluate() with appropriate template parameters.

◆ integrate()

template<int dim, int n_q_points_1d, int n_components, typename Number >
static void SelectEvaluator< dim, -1, n_q_points_1d, n_components, Number >::integrate ( const internal::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  sum_into_values_array = false 
)
static

Based on the run time parameters stored in shape_info this function chooses an appropriate evaluation strategy for the integrate function, i.e. this calls internal::FEEvaluationImpl::integrate(), internal::FEEvaluationImplCollocation::integrate() or internal::FEEvaluationImplTransformToCollocation::integrate() with appropriate template parameters.


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