17#ifndef dealii_matrix_free_evaluation_template_factory_internal_h
18#define dealii_matrix_free_evaluation_template_factory_internal_h
23#ifndef FE_EVAL_FACTORY_DEGREE_MAX
24# define FE_EVAL_FACTORY_DEGREE_MAX 6
31 template <
int degree,
typename EvaluatorType,
typename... Args>
34 const unsigned int n_q_points_1d,
37 if (given_degree == degree)
39 if (n_q_points_1d == degree + 1)
40 return EvaluatorType::template run<degree, degree + 1>(args...);
41 else if (n_q_points_1d == degree + 2)
42 return EvaluatorType::template run<degree, degree + 2>(args...);
43 else if (n_q_points_1d == degree)
44 return EvaluatorType::template run<degree, degree>(args...);
45 else if (n_q_points_1d == (3 * degree) / 2 + 1)
46 return EvaluatorType::template run<degree, (3 * degree) / 2 + 1>(
50 return EvaluatorType::template run<-1, 0>(args...);
55 EvaluatorType>(given_degree, n_q_points_1d, args...);
58 return EvaluatorType::template run<-1, 0>(args...);
61 template <
int degree,
typename EvaluatorType,
typename... Args>
66 if (given_degree == degree)
68 return EvaluatorType::template run<degree, degree + 1>(args...);
73 EvaluatorType>(given_degree, args...);
76 return EvaluatorType::template run<-1, 0>(args...);
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define FE_EVAL_FACTORY_DEGREE_MAX
bool instantiation_helper_degree_run(const unsigned int given_degree, Args &...args)
bool instantiation_helper_run(const unsigned int given_degree, const unsigned int n_q_points_1d, Args &...args)