const bool evaluate_gradients,
const bool evaluate_hessians)
{
- Assert(shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric||
- shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric_collocation,
+ Assert(shape_info.element_type <= internal::MatrixFreeFunctions::tensor_symmetric,
ExcInternalError());
Factory<dim, n_components, Number>::evaluate
(shape_info, values_dofs_actual, values_quad, gradients_quad, hessians_quad,
const bool integrate_values,
const bool integrate_gradients)
{
- Assert(shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric||
- shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric_collocation,
+ Assert(shape_info.element_type <= internal::MatrixFreeFunctions::tensor_symmetric,
ExcInternalError());
Factory<dim, n_components, Number>::integrate
(shape_info, values_dofs_actual, values_quad, gradients_quad,
evaluate_values, evaluate_gradients, evaluate_hessians);
}
else if (fe_degree < n_q_points_1d &&
- shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric)
+ shape_info.element_type <= internal::MatrixFreeFunctions::tensor_symmetric)
{
internal::FEEvaluationImplTransformToCollocation<dim, fe_degree, n_q_points_1d, n_components, Number>
::evaluate(shape_info, values_dofs_actual, values_quad,
integrate_values, integrate_gradients, false);
}
else if (fe_degree < n_q_points_1d &&
- shape_info.element_type == internal::MatrixFreeFunctions::tensor_symmetric)
+ shape_info.element_type <= internal::MatrixFreeFunctions::tensor_symmetric)
{
internal::FEEvaluationImplTransformToCollocation<dim, fe_degree, n_q_points_1d, n_components, Number>
::integrate(shape_info, values_dofs_actual, values_quad,
element_type = tensor_symmetric_collocation;
else
element_type = tensor_symmetric;
- if (n_dofs_1d > 3 && element_type == tensor_symmetric)
+ if (n_dofs_1d > 2 && element_type == tensor_symmetric)
{
// check if we are a Hermite type
element_type = tensor_symmetric_hermite;
test(FE_DGQ<2>(17), gauss8);
test(FE_DGQ<2>(25), gauss3);
+ test(FE_DGQHermite<2>(1), gauss3);
+ test(FE_DGQHermite<2>(1), gauss8);
+ test(FE_DGQHermite<2>(2), gauss3);
+ test(FE_DGQHermite<2>(2), gauss8);
+ test(FE_DGQHermite<2>(3), gauss3);
+ test(FE_DGQHermite<2>(3), gauss8);
+ test(FE_DGQHermite<2>(6), gauss3);
+ test(FE_DGQHermite<2>(6), gauss8);
+ test(FE_DGQHermite<2>(12), gauss3);
+ test(FE_DGQHermite<2>(12), gauss8);
+ test(FE_DGQHermite<2>(25), gauss3);
+ test(FE_DGQHermite<2>(25), gauss8);
+ test(FE_DGQHermite<2>(45), gauss8);
+
test(FE_DGQArbitraryNodes<2>(QIterated<1>(QTrapez<1>(), 1)), gauss3);
test(FE_DGQArbitraryNodes<3>(QIterated<1>(QTrapez<1>(), 6)), gauss3);
test(FE_DGQArbitraryNodes<2>(QIterated<1>(QTrapez<1>(), 13)), gauss8);
DEAL::Detected shape info type for FE_Q_Hierarchical<3>(6): 3
DEAL::Detected shape info type for FE_DGQ<2>(17): 2
DEAL::Detected shape info type for FE_DGQ<2>(25): 2
+DEAL::Detected shape info type for FE_DGQHermite<2>(1): 2
+DEAL::Detected shape info type for FE_DGQHermite<2>(1): 2
+DEAL::Detected shape info type for FE_DGQHermite<2>(2): 3
+DEAL::Detected shape info type for FE_DGQHermite<2>(2): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(3): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(3): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(6): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(6): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(12): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(12): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(25): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(25): 1
+DEAL::Detected shape info type for FE_DGQHermite<2>(45): 1
DEAL::Detected shape info type for FE_DGQ<2>(1): 2
DEAL::Detected shape info type for FE_DGQArbitraryNodes<3>(QIterated(QTrapez(),6)): 2
DEAL::Detected shape info type for FE_DGQArbitraryNodes<2>(QIterated(QTrapez(),13)): 2