From 7ba096de7b5dadf863fa3e3963510eded69750ad Mon Sep 17 00:00:00 2001 From: Dominik Still Date: Fri, 5 Jul 2024 13:59:44 +0200 Subject: [PATCH] Add support for integrations on simplex unit support points --- include/deal.II/matrix_free/util.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/include/deal.II/matrix_free/util.h b/include/deal.II/matrix_free/util.h index a78eb78ffb..532740af5e 100644 --- a/include/deal.II/matrix_free/util.h +++ b/include/deal.II/matrix_free/util.h @@ -22,6 +22,8 @@ #include #include +#include + #include #include @@ -56,6 +58,15 @@ namespace internal return {ReferenceCells::get_simplex(), dealii::hp::QCollection( QWitherdenVincentSimplex(i))}; + + for (unsigned int i = 1; i <= 3; ++i) + { + FE_SimplexP fe(i); + if (quad == Quadrature(fe.get_unit_support_points())) + return {ReferenceCells::get_simplex(), + dealii::hp::QCollection(Quadrature( + fe.get_unit_face_support_points()))}; + } } if (dim == 3) @@ -138,6 +149,22 @@ namespace internal return {Quadrature(), QWitherdenVincentSimplex(i)}; } + + for (unsigned int i = 1; i <= 3; ++i) + { + FE_SimplexP fe(i); + if (quad == Quadrature(fe.get_unit_support_points())) + { + if (dim == 2) + return {Quadrature( + fe.get_unit_face_support_points()), // line! + Quadrature()}; + else + return {Quadrature(), + Quadrature( + fe.get_unit_face_support_points())}; + } + } } if (dim == 3) -- 2.39.5