deal.II version GIT relicensing-1929-g70a5450eef 2024-10-03 18:00:00+00:00
\(\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\}}\)
Loading...
Searching...
No Matches
Static Public Member Functions | Static Private Member Functions | List of all members
internal::FEEvaluationImplSelector< dim, Number, do_integrate > Struct Template Reference

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

Static Public Member Functions

template<int fe_degree, int n_q_points_1d, typename OtherNumber >
static bool run (const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, OtherNumber *values_dofs, FEEvaluationData< dim, Number, false > &fe_eval, const bool sum_into_values_array_in=false)
 

Static Private Member Functions

template<typename T >
static void evaluate_or_integrate (const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, const Number *values_dofs, FEEvaluationData< dim, Number, false > &fe_eval, const bool sum_into_values_array, std::bool_constant< false >)
 
template<typename T >
static void evaluate_or_integrate (const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, Number *values_dofs, FEEvaluationData< dim, Number, false > &fe_eval, const bool sum_into_values_array, std::bool_constant< true >)
 
template<typename T , typename OtherNumber >
static void evaluate_or_integrate (const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, OtherNumber *values_dofs, FEEvaluationData< dim, Number, false > &fe_eval, const bool sum_into_values_array)
 

Detailed Description

template<int dim, typename Number, bool do_integrate>
struct internal::FEEvaluationImplSelector< dim, Number, do_integrate >

This class chooses an appropriate evaluation/integration strategy based on the template parameters and the shape_info variable which contains runtime parameters for the strategy underlying FEEvaluation::evaluate(), i.e. this calls internal::FEEvaluationImpl::evaluate(), internal::FEEvaluationImplCollocation::evaluate() or internal::FEEvaluationImplTransformToCollocation::evaluate() with appropriate template parameters. In case the template parameters fe_degree and n_q_points_1d contain valid information (i.e. fe_degree>-1 and n_q_points_1d>0), we simply pass these values to the respective template specializations. Otherwise, we perform a runtime matching of the runtime parameters to find the correct specialization. This matching currently supports \(0\leq fe\_degree \leq 9\) and \(degree+1\leq n\_q\_points\_1d\leq fe\_degree+2\).

Definition at line 1971 of file evaluation_kernels.h.

Member Function Documentation

◆ run()

template<int dim, typename Number , bool do_integrate>
template<int fe_degree, int n_q_points_1d, typename OtherNumber >
static bool internal::FEEvaluationImplSelector< dim, Number, do_integrate >::run ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  evaluation_flag,
OtherNumber *  values_dofs,
FEEvaluationData< dim, Number, false > &  fe_eval,
const bool  sum_into_values_array_in = false 
)
inlinestatic

Definition at line 1975 of file evaluation_kernels.h.

◆ evaluate_or_integrate() [1/3]

template<int dim, typename Number , bool do_integrate>
template<typename T >
static void internal::FEEvaluationImplSelector< dim, Number, do_integrate >::evaluate_or_integrate ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  evaluation_flag,
const Number *  values_dofs,
FEEvaluationData< dim, Number, false > &  fe_eval,
const bool  sum_into_values_array,
std::bool_constant< false >   
)
inlinestaticprivate

Definition at line 2152 of file evaluation_kernels.h.

◆ evaluate_or_integrate() [2/3]

template<int dim, typename Number , bool do_integrate>
template<typename T >
static void internal::FEEvaluationImplSelector< dim, Number, do_integrate >::evaluate_or_integrate ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  evaluation_flag,
Number *  values_dofs,
FEEvaluationData< dim, Number, false > &  fe_eval,
const bool  sum_into_values_array,
std::bool_constant< true >   
)
inlinestaticprivate

Definition at line 2167 of file evaluation_kernels.h.

◆ evaluate_or_integrate() [3/3]

template<int dim, typename Number , bool do_integrate>
template<typename T , typename OtherNumber >
static void internal::FEEvaluationImplSelector< dim, Number, do_integrate >::evaluate_or_integrate ( const unsigned int  n_components,
const EvaluationFlags::EvaluationFlags  evaluation_flag,
OtherNumber *  values_dofs,
FEEvaluationData< dim, Number, false > &  fe_eval,
const bool  sum_into_values_array 
)
inlinestaticprivate

Definition at line 2184 of file evaluation_kernels.h.


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