template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number>
struct SelectEvaluator< dim, fe_degree, n_q_points_1d, n_components, Number >
This class chooses an appropriate evaluation strategy based on the template parameters and the shape_info variable which contains runtime 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 495 of file evaluation_selector.h.
template<int dim, int fe_degree, int n_q_points_1d, int n_components, typename Number >
constexpr bool SelectEvaluator< dim, fe_degree, n_q_points_1d, n_components, Number >::use_collocation |
|
staticconstexpr |
Initial value:=
n_q_points_1d > fe_degree &&n_q_points_1d <= 3 * fe_degree / 2 + 1 &&
n_q_points_1d < 200
We enable a transformation to collocation for derivatives if it gives correct results (first condition), if it is the most efficient choice in terms of operation counts (second condition) and if we were able to initialize the fields in shape_info.templates.h from the polynomials (third condition).
Definition at line 504 of file evaluation_selector.h.