|
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::integral_constant< bool, 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::integral_constant< bool, 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) |
|
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 2274 of file evaluation_kernels.h.