From 74a2b9647359c44ad5f74da5f1ec79a273fbad7e Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Fri, 24 Jun 2022 10:58:51 -0400 Subject: [PATCH] Remove deprecated QProjector member functions --- .../changes/incompatibilities/20220624Arndt | 4 + include/deal.II/base/qprojector.h | 251 ---------------- .../vector_tools_boundary.templates.h | 13 +- source/base/qprojector.cc | 283 +----------------- source/grid/grid_out.cc | 8 +- tests/base/qprojector.cc | 25 +- tests/base/quadrature_sorted_test.cc | 6 +- tests/base/quadrature_test.cc | 6 +- tests/fe/fe_support_points_common.h | 5 +- tests/fe/rt_normal_02.cc | 17 +- 10 files changed, 69 insertions(+), 549 deletions(-) create mode 100644 doc/news/changes/incompatibilities/20220624Arndt diff --git a/doc/news/changes/incompatibilities/20220624Arndt b/doc/news/changes/incompatibilities/20220624Arndt new file mode 100644 index 0000000000..67b3302f06 --- /dev/null +++ b/doc/news/changes/incompatibilities/20220624Arndt @@ -0,0 +1,4 @@ +Removed: The deprecated member functions of QProjector not using a ReferenceCell +object have been removed. +
+(Daniel Arndt, 2022/06/24) diff --git a/include/deal.II/base/qprojector.h b/include/deal.II/base/qprojector.h index 7d69d3f510..45c98f972a 100644 --- a/include/deal.II/base/qprojector.h +++ b/include/deal.II/base/qprojector.h @@ -86,20 +86,6 @@ public: */ using SubQuadrature = Quadrature; - /** - * Compute the quadrature points on the cell if the given quadrature formula - * is used on face face_no. For further details, see the general - * doc for this class. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static void - project_to_face(const SubQuadrature & quadrature, - const unsigned int face_no, - std::vector> &q_points); - /** * Compute the quadrature points on the cell if the given quadrature formula * is used on face face_no. For further details, see the general @@ -111,18 +97,6 @@ public: const unsigned int face_no, std::vector> &q_points); - /** - * Compute the cell quadrature formula corresponding to using - * quadrature on face face_no. For further details, see - * the general doc for this class. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_face(const SubQuadrature &quadrature, const unsigned int face_no); - /** * Compute the cell quadrature formula corresponding to using * quadrature on face face_no. For further details, see @@ -133,27 +107,6 @@ public: const SubQuadrature &quadrature, const unsigned int face_no); - /** - * Compute the quadrature points on the cell if the given quadrature formula - * is used on face face_no, subface number subface_no - * corresponding to RefineCase::Type ref_case. The last argument is - * only used in 3D. - * - * @note Only the points are transformed. The quadrature weights are the - * same as those of the original rule. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static void - project_to_subface(const SubQuadrature & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> & q_points, - const RefinementCase &ref_case = - RefinementCase::isotropic_refinement); - /** * Compute the quadrature points on the cell if the given quadrature formula * is used on face face_no, subface number subface_no @@ -172,26 +125,6 @@ public: const RefinementCase &ref_case = RefinementCase::isotropic_refinement); - /** - * Compute the cell quadrature formula corresponding to using - * quadrature on subface subface_no of face - * face_no with RefinementCase ref_case. The last - * argument is only used in 3D. - * - * @note Only the points are transformed. The quadrature weights are the - * same as those of the original rule. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_subface(const SubQuadrature & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - const RefinementCase &ref_case = - RefinementCase::isotropic_refinement); - /** * Compute the cell quadrature formula corresponding to using * quadrature on subface subface_no of face @@ -213,29 +146,6 @@ public: const RefinementCase &ref_case = RefinementCase::isotropic_refinement); - /** - * Take a face quadrature formula and generate a cell quadrature formula - * from it where the quadrature points of the given argument are projected - * on all faces. - * - * The weights of the new rule are replications of the original weights. - * Thus, the sum of the weights is not one, but the number of faces, which - * is the surface of the reference cell. - * - * This in particular allows us to extract a subset of points corresponding - * to a single face and use it as a quadrature on this face, as is done in - * FEFaceValues. - * - * @note In 3D, this function produces eight sets of quadrature points for - * each face, in order to cope possibly different orientations of the mesh. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_all_faces(const Quadrature &quadrature); - /** * Take a collection of face quadrature formulas and generate a cell * quadrature formula from it where the quadrature points of the given @@ -264,26 +174,6 @@ public: project_to_all_faces(const ReferenceCell reference_cell, const Quadrature &quadrature); - /** - * Take a face quadrature formula and generate a cell quadrature formula - * from it where the quadrature points of the given argument are projected - * on all subfaces. - * - * Like in project_to_all_faces(), the weights of the new rule sum up to the - * number of faces (not subfaces), which is the surface of the reference - * cell. - * - * This in particular allows us to extract a subset of points corresponding - * to a single subface and use it as a quadrature on this face, as is done - * in FESubfaceValues. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_all_subfaces(const SubQuadrature &quadrature); - /** * Take a face quadrature formula and generate a cell quadrature formula * from it where the quadrature points of the given argument are projected @@ -301,24 +191,6 @@ public: project_to_all_subfaces(const ReferenceCell reference_cell, const SubQuadrature &quadrature); - /** - * Project a given quadrature formula to a child of a cell. You may want to - * use this function in case you want to extend an integral only over the - * area which a potential child would occupy. The child numbering is the - * same as the children would be numbered upon refinement of the cell. - * - * As integration using this quadrature formula now only extends over a - * fraction of the cell, the weights of the resulting object are divided by - * GeometryInfo::children_per_cell. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_child(const Quadrature &quadrature, - const unsigned int child_no); - /** * Project a given quadrature formula to a child of a cell. You may want to * use this function in case you want to extend an integral only over the @@ -334,22 +206,6 @@ public: const Quadrature &quadrature, const unsigned int child_no); - /** - * Project a quadrature rule to all children of a cell. Similarly to - * project_to_all_subfaces(), this function replicates the formula generated - * by project_to_child() for all children, such that the weights sum up to - * one, the volume of the total cell again. - * - * The child numbering is the same as the children would be numbered upon - * refinement of the cell. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_all_children(const Quadrature &quadrature); - /** * Project a quadrature rule to all children of a cell. Similarly to * project_to_all_subfaces(), this function replicates the formula generated @@ -363,19 +219,6 @@ public: project_to_all_children(const ReferenceCell reference_cell, const Quadrature &quadrature); - /** - * Project the one dimensional rule quadrature to the straight line - * connecting the points p1 and p2. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static Quadrature - project_to_line(const Quadrature<1> &quadrature, - const Point & p1, - const Point & p2); - /** * Project the one dimensional rule quadrature to the straight line * connecting the points p1 and p2. @@ -415,27 +258,6 @@ public: static DataSetDescriptor cell(); - /** - * Static function to generate an offset object for a given face of a cell - * with the given face orientation, flip and rotation. This function of - * course is only allowed if dim>=2, and the face orientation, - * flip and rotation are ignored if the space dimension equals 2. - * - * The last argument denotes the number of quadrature points the lower- - * dimensional face quadrature formula (the one that has been projected - * onto the faces) has. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static DataSetDescriptor - face(const unsigned int face_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points); - /** * Static function to generate an offset object for a given face of a cell * with the given face orientation, flip and rotation. This function of @@ -466,32 +288,6 @@ public: const bool face_rotation, const hp::QCollection &quadrature); - /** - * Static function to generate an offset object for a given subface of a - * cell with the given face orientation, flip and rotation. This function - * of course is only allowed if dim>=2, and the face orientation, - * flip and rotation are ignored if the space dimension equals 2. - * - * The last but one argument denotes the number of quadrature points the - * lower-dimensional face quadrature formula (the one that has been - * projected onto the faces) has. - * - * Through the last argument anisotropic refinement can be respected. - * - * @note This function is deprecated since it makes an implicit assumption - * that the cell is a line (1D), a quad (2D), or a hex (3D). Use the other - * version of this function that takes the reference cell type instead. - */ - DEAL_II_DEPRECATED static DataSetDescriptor - subface(const unsigned int face_no, - const unsigned int subface_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points, - const internal::SubfaceCase ref_case = - internal::SubfaceCase::case_isotropic); - /** * Static function to generate an offset object for a given subface of a * cell with the given face orientation, flip and rotation. This function @@ -575,14 +371,6 @@ inline QProjector::DataSetDescriptor::operator unsigned int() const -template -Quadrature inline QProjector::project_to_all_faces( - const Quadrature &quadrature) -{ - return project_to_all_faces(ReferenceCells::get_hypercube(), quadrature); -} - - template Quadrature inline QProjector::project_to_all_faces( const ReferenceCell reference_cell, @@ -598,11 +386,6 @@ Quadrature inline QProjector::project_to_all_faces( #ifndef DOXYGEN -template <> -void -QProjector<1>::project_to_face(const Quadrature<0> &, - const unsigned int, - std::vector> &); template <> void QProjector<1>::project_to_face(const ReferenceCell reference_cell, @@ -611,22 +394,12 @@ QProjector<1>::project_to_face(const ReferenceCell reference_cell, std::vector> &); template <> void -QProjector<2>::project_to_face(const Quadrature<1> & quadrature, - const unsigned int face_no, - std::vector> &q_points); -template <> -void QProjector<2>::project_to_face(const ReferenceCell reference_cell, const Quadrature<1> & quadrature, const unsigned int face_no, std::vector> &q_points); template <> void -QProjector<3>::project_to_face(const Quadrature<2> & quadrature, - const unsigned int face_no, - std::vector> &q_points); -template <> -void QProjector<3>::project_to_face(const ReferenceCell reference_cell, const Quadrature<2> & quadrature, const unsigned int face_no, @@ -638,13 +411,6 @@ QProjector<1>::project_to_all_faces(const ReferenceCell reference_cell, const hp::QCollection<0> &quadrature); -template <> -void -QProjector<1>::project_to_subface(const Quadrature<0> &, - const unsigned int, - const unsigned int, - std::vector> &, - const RefinementCase<0> &); template <> void QProjector<1>::project_to_subface(const ReferenceCell reference_cell, @@ -655,13 +421,6 @@ QProjector<1>::project_to_subface(const ReferenceCell reference_cell, const RefinementCase<0> &); template <> void -QProjector<2>::project_to_subface(const Quadrature<1> & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> &q_points, - const RefinementCase<1> &); -template <> -void QProjector<2>::project_to_subface(const ReferenceCell reference_cell, const Quadrature<1> & quadrature, const unsigned int face_no, @@ -670,13 +429,6 @@ QProjector<2>::project_to_subface(const ReferenceCell reference_cell, const RefinementCase<1> &); template <> void -QProjector<3>::project_to_subface(const Quadrature<2> & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> & q_points, - const RefinementCase<2> &face_ref_case); -template <> -void QProjector<3>::project_to_subface(const ReferenceCell reference_cell, const Quadrature<2> & quadrature, const unsigned int face_no, @@ -684,9 +436,6 @@ QProjector<3>::project_to_subface(const ReferenceCell reference_cell, std::vector> & q_points, const RefinementCase<2> &face_ref_case); -template <> -Quadrature<1> -QProjector<1>::project_to_all_subfaces(const Quadrature<0> &quadrature); template <> Quadrature<1> QProjector<1>::project_to_all_subfaces(const ReferenceCell reference_cell, diff --git a/include/deal.II/numerics/vector_tools_boundary.templates.h b/include/deal.II/numerics/vector_tools_boundary.templates.h index ad0a9b9700..938a8018bc 100644 --- a/include/deal.II/numerics/vector_tools_boundary.templates.h +++ b/include/deal.II/numerics/vector_tools_boundary.templates.h @@ -1968,8 +1968,11 @@ namespace VectorTools { edge_quadrature_collection.push_back( QProjector::project_to_face( + ReferenceCells::get_hypercube(), QProjector::project_to_face( - reference_edge_quadrature, line), + ReferenceCells::get_hypercube(), + reference_edge_quadrature, + line), face)); } } @@ -2401,8 +2404,8 @@ namespace VectorTools hp::QCollection quadrature_collection; for (unsigned int face : GeometryInfo::face_indices()) - quadrature_collection.push_back( - QProjector::project_to_face(face_quadrature, face)); + quadrature_collection.push_back(QProjector::project_to_face( + ReferenceCells::get_hypercube(), face_quadrature, face)); hp::FEValues fe_values(mapping_collection, fe_collection, @@ -2563,8 +2566,8 @@ namespace VectorTools face_quadrature_collection.push_back(quadrature); for (unsigned int face : GeometryInfo::face_indices()) - quadrature_collection.push_back( - QProjector::project_to_face(quadrature, face)); + quadrature_collection.push_back(QProjector::project_to_face( + ReferenceCells::get_hypercube(), quadrature, face)); } hp::FEFaceValues fe_face_values(mapping_collection, diff --git a/source/base/qprojector.cc b/source/base/qprojector.cc index 5dddf213aa..5b5e763010 100644 --- a/source/base/qprojector.cc +++ b/source/base/qprojector.cc @@ -79,17 +79,6 @@ namespace internal -template <> -void -QProjector<1>::project_to_face(const Quadrature<0> & quadrature, - const unsigned int face_no, - std::vector> &q_points) -{ - project_to_face(ReferenceCells::Line, quadrature, face_no, q_points); -} - - - template <> void QProjector<1>::project_to_face(const ReferenceCell reference_cell, @@ -109,17 +98,6 @@ QProjector<1>::project_to_face(const ReferenceCell reference_cell, -template <> -void -QProjector<2>::project_to_face(const Quadrature<1> & quadrature, - const unsigned int face_no, - std::vector> &q_points) -{ - project_to_face(ReferenceCells::Quadrilateral, quadrature, face_no, q_points); -} - - - template <> void QProjector<2>::project_to_face(const ReferenceCell reference_cell, @@ -182,17 +160,6 @@ QProjector<2>::project_to_face(const ReferenceCell reference_cell, -template <> -void -QProjector<3>::project_to_face(const Quadrature<2> & quadrature, - const unsigned int face_no, - std::vector> &q_points) -{ - project_to_face(ReferenceCells::Hexahedron, quadrature, face_no, q_points); -} - - - template <> void QProjector<3>::project_to_face(const ReferenceCell reference_cell, @@ -243,20 +210,6 @@ QProjector<3>::project_to_face(const ReferenceCell reference_cell, -template <> -void -QProjector<1>::project_to_subface(const Quadrature<0> & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> & q_points, - const RefinementCase<0> &ref_case) -{ - project_to_subface( - ReferenceCells::Line, quadrature, face_no, subface_no, q_points, ref_case); -} - - - template <> void QProjector<1>::project_to_subface(const ReferenceCell reference_cell, @@ -278,24 +231,6 @@ QProjector<1>::project_to_subface(const ReferenceCell reference_cell, -template <> -void -QProjector<2>::project_to_subface(const Quadrature<1> & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> & q_points, - const RefinementCase<1> &ref_case) -{ - project_to_subface(ReferenceCells::Quadrilateral, - quadrature, - face_no, - subface_no, - q_points, - ref_case); -} - - - template <> void QProjector<2>::project_to_subface(const ReferenceCell reference_cell, @@ -440,24 +375,6 @@ QProjector<2>::project_to_subface(const ReferenceCell reference_cell, -template <> -void -QProjector<3>::project_to_subface(const Quadrature<2> & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - std::vector> & q_points, - const RefinementCase<2> &ref_case) -{ - project_to_subface(ReferenceCells::Hexahedron, - quadrature, - face_no, - subface_no, - q_points, - ref_case); -} - - - template <> void QProjector<3>::project_to_subface(const ReferenceCell reference_cell, @@ -571,7 +488,8 @@ QProjector<1>::project_to_all_faces(const ReferenceCell reference_cell, // results for (unsigned int face = 0; face < n_faces; ++face) { - project_to_face(quadrature[quadrature.size() == 1 ? 0 : face], + project_to_face(reference_cell, + quadrature[quadrature.size() == 1 ? 0 : face], face, help); std::copy(help.begin(), help.end(), std::back_inserter(q_points)); @@ -694,7 +612,8 @@ QProjector<2>::project_to_all_faces(const ReferenceCell reference_cell, for (unsigned int face = 0; face < n_faces; ++face) { help.resize(quadrature[quadrature.size() == 1 ? 0 : face].size()); - project_to_face(quadrature[quadrature.size() == 1 ? 0 : face], + project_to_face(reference_cell, + quadrature[quadrature.size() == 1 ? 0 : face], face, help); std::copy(help.begin(), help.end(), std::back_inserter(q_points)); @@ -1006,7 +925,7 @@ QProjector<3>::project_to_all_faces(const ReferenceCell reference_cell, } help.resize(quadrature[quadrature.size() == 1 ? 0 : face].size()); - project_to_face(mutation, face, help); + project_to_face(reference_cell, mutation, face, help); std::copy(help.begin(), help.end(), std::back_inserter(q_points)); std::copy(mutation.get_weights().begin(), @@ -1024,15 +943,6 @@ QProjector<3>::project_to_all_faces(const ReferenceCell reference_cell, -template <> -Quadrature<1> -QProjector<1>::project_to_all_subfaces(const Quadrature<0> &quadrature) -{ - return project_to_all_subfaces(ReferenceCells::Line, quadrature); -} - - - template <> Quadrature<1> QProjector<1>::project_to_all_subfaces(const ReferenceCell reference_cell, @@ -1057,7 +967,7 @@ QProjector<1>::project_to_all_subfaces(const ReferenceCell reference_cell, for (unsigned int face = 0; face < n_faces; ++face) for (unsigned int subface = 0; subface < subfaces_per_face; ++subface) { - project_to_subface(quadrature, face, subface, help); + project_to_subface(reference_cell, quadrature, face, subface, help); std::copy(help.begin(), help.end(), std::back_inserter(q_points)); } @@ -1108,7 +1018,7 @@ QProjector<2>::project_to_all_subfaces(const ReferenceCell reference_cell, for (unsigned int face = 0; face < n_faces; ++face) for (unsigned int subface = 0; subface < subfaces_per_face; ++subface) { - project_to_subface(quadrature, face, subface, help); + project_to_subface(reference_cell, quadrature, face, subface, help); std::copy(help.begin(), help.end(), std::back_inserter(q_points)); } @@ -1131,15 +1041,6 @@ QProjector<2>::project_to_all_subfaces(const ReferenceCell reference_cell, -template <> -Quadrature<2> -QProjector<2>::project_to_all_subfaces(const SubQuadrature &quadrature) -{ - return project_to_all_subfaces(ReferenceCells::Quadrilateral, quadrature); -} - - - template <> Quadrature<3> QProjector<3>::project_to_all_subfaces(const ReferenceCell reference_cell, @@ -1191,7 +1092,8 @@ QProjector<3>::project_to_all_subfaces(const ReferenceCell reference_cell, RefinementCase(ref_case)); ++subface) { - project_to_subface(mutation, + project_to_subface(reference_cell, + mutation, face, subface, help, @@ -1223,28 +1125,6 @@ QProjector<3>::project_to_all_subfaces(const ReferenceCell reference_cell, -template <> -Quadrature<3> -QProjector<3>::project_to_all_subfaces(const SubQuadrature &quadrature) -{ - return project_to_all_subfaces(ReferenceCells::Hexahedron, quadrature); -} - - - -// This function is not used in the library -template -Quadrature -QProjector::project_to_child(const Quadrature &quadrature, - const unsigned int child_no) -{ - return project_to_child(ReferenceCells::get_hypercube(), - quadrature, - child_no); -} - - - template Quadrature QProjector::project_to_child(const ReferenceCell reference_cell, @@ -1277,16 +1157,6 @@ QProjector::project_to_child(const ReferenceCell reference_cell, -template -Quadrature -QProjector::project_to_all_children(const Quadrature &quadrature) -{ - return project_to_all_children(ReferenceCells::get_hypercube(), - quadrature); -} - - - template Quadrature QProjector::project_to_all_children(const ReferenceCell reference_cell, @@ -1306,7 +1176,8 @@ QProjector::project_to_all_children(const ReferenceCell reference_cell, // results for (unsigned int child = 0; child < n_children; ++child) { - Quadrature help = project_to_child(quadrature, child); + Quadrature help = + project_to_child(reference_cell, quadrature, child); for (unsigned int i = 0; i < n_points; ++i) { q_points[child * n_points + i] = help.point(i); @@ -1318,20 +1189,6 @@ QProjector::project_to_all_children(const ReferenceCell reference_cell, -template -Quadrature -QProjector::project_to_line(const Quadrature<1> &quadrature, - const Point & p1, - const Point & p2) -{ - return project_to_line(ReferenceCells::get_hypercube(), - quadrature, - p1, - p2); -} - - - template Quadrature QProjector::project_to_line(const ReferenceCell reference_cell, @@ -1360,24 +1217,6 @@ QProjector::project_to_line(const ReferenceCell reference_cell, -template -typename QProjector::DataSetDescriptor -QProjector::DataSetDescriptor::face(const unsigned int face_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points) -{ - return face(ReferenceCells::get_hypercube(), - face_no, - face_orientation, - face_flip, - face_rotation, - n_quadrature_points); -} - - - template typename QProjector::DataSetDescriptor QProjector::DataSetDescriptor::face(const ReferenceCell reference_cell, @@ -1629,29 +1468,6 @@ QProjector<1>::DataSetDescriptor::subface( -template <> -QProjector<1>::DataSetDescriptor -QProjector<1>::DataSetDescriptor::subface( - const unsigned int face_no, - const unsigned int subface_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points, - const internal::SubfaceCase<1> ref_case) -{ - return subface(ReferenceCells::Line, - face_no, - subface_no, - face_orientation, - face_flip, - face_rotation, - n_quadrature_points, - ref_case); -} - - - template <> QProjector<2>::DataSetDescriptor QProjector<2>::DataSetDescriptor::subface( @@ -1677,28 +1493,6 @@ QProjector<2>::DataSetDescriptor::subface( -template <> -QProjector<2>::DataSetDescriptor -QProjector<2>::DataSetDescriptor::subface( - const unsigned int face_no, - const unsigned int subface_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points, - const internal::SubfaceCase<2> ref_case) -{ - return subface(ReferenceCells::Quadrilateral, - face_no, - subface_no, - face_orientation, - face_flip, - face_rotation, - n_quadrature_points, - ref_case); -} - - template <> QProjector<3>::DataSetDescriptor QProjector<3>::DataSetDescriptor::subface( @@ -1956,40 +1750,6 @@ QProjector<3>::DataSetDescriptor::subface( } -template <> -QProjector<3>::DataSetDescriptor -QProjector<3>::DataSetDescriptor::subface( - const unsigned int face_no, - const unsigned int subface_no, - const bool face_orientation, - const bool face_flip, - const bool face_rotation, - const unsigned int n_quadrature_points, - const internal::SubfaceCase<3> ref_case) -{ - return subface(ReferenceCells::Hexahedron, - face_no, - subface_no, - face_orientation, - face_flip, - face_rotation, - n_quadrature_points, - ref_case); -} - - - -template -Quadrature -QProjector::project_to_face(const SubQuadrature &quadrature, - const unsigned int face_no) -{ - return project_to_face(ReferenceCells::get_hypercube(), - quadrature, - face_no); -} - - template Quadrature @@ -2002,28 +1762,12 @@ QProjector::project_to_face(const ReferenceCell reference_cell, (void)reference_cell; std::vector> points(quadrature.size()); - project_to_face(quadrature, face_no, points); + project_to_face(reference_cell, quadrature, face_no, points); return Quadrature(points, quadrature.get_weights()); } -template -Quadrature -QProjector::project_to_subface(const SubQuadrature & quadrature, - const unsigned int face_no, - const unsigned int subface_no, - const RefinementCase &ref_case) -{ - return project_to_subface(ReferenceCells::get_hypercube(), - quadrature, - face_no, - subface_no, - ref_case); -} - - - template Quadrature QProjector::project_to_subface(const ReferenceCell reference_cell, @@ -2037,7 +1781,8 @@ QProjector::project_to_subface(const ReferenceCell reference_cell, (void)reference_cell; std::vector> points(quadrature.size()); - project_to_subface(quadrature, face_no, subface_no, points, ref_case); + project_to_subface( + reference_cell, quadrature, face_no, subface_no, points, ref_case); return Quadrature(points, quadrature.get_weights()); } diff --git a/source/grid/grid_out.cc b/source/grid/grid_out.cc index 1ff6b1f1fe..9357016489 100644 --- a/source/grid/grid_out.cc +++ b/source/grid/grid_out.cc @@ -4233,7 +4233,7 @@ namespace internal Quadrature quadrature(boundary_points, dummy_weights); q_projector = QProjector::project_to_all_faces( - dealii::ReferenceCells::Quadrilateral, quadrature); + dealii::ReferenceCells::get_hypercube(), quadrature); } for (const auto &cell : tria.active_cell_iterators()) @@ -4347,7 +4347,8 @@ namespace internal // tensor product of points, only one copy QIterated quadrature(quadrature1d, 1); q_projector = std::make_unique>( - QProjector::project_to_all_faces(quadrature)); + QProjector::project_to_all_faces( + ReferenceCells::get_hypercube(), quadrature)); } for (const auto &cell : tria.active_cell_iterators()) @@ -4770,7 +4771,8 @@ namespace internal Quadrature quadrature(boundary_points); Quadrature q_projector( - QProjector::project_to_all_faces(quadrature)); + QProjector::project_to_all_faces( + ReferenceCells::get_hypercube(), quadrature)); // next loop over all // boundary faces and diff --git a/tests/base/qprojector.cc b/tests/base/qprojector.cc index 2037d4b586..cf66df28f2 100644 --- a/tests/base/qprojector.cc +++ b/tests/base/qprojector.cc @@ -40,8 +40,9 @@ check_line(Quadrature<1> &quadrature) p1(2) = 0; p2(2) = 10.; } - Quadrature q = QProjector::project_to_line(quadrature, p1, p2); - double s = 0.; + Quadrature q = QProjector::project_to_line( + ReferenceCells::get_hypercube(), quadrature, p1, p2); + double s = 0.; for (unsigned int k = 0; k < q.size(); ++k) { @@ -63,7 +64,9 @@ check_face(Quadrature<1> &q1) deallog << "Face " << f << std::endl; Quadrature quadrature = - QProjector::project_to_face(subquadrature, f); + QProjector::project_to_face(ReferenceCells::get_hypercube(), + subquadrature, + f); for (unsigned int k = 0; k < quadrature.size(); ++k) deallog << quadrature.point(k) << std::endl; } @@ -74,7 +77,9 @@ check_face(Quadrature<1> &q1) deallog << "Face " << f << " subface " << s << std::endl; Quadrature quadrature = - QProjector::project_to_face(subquadrature, f); + QProjector::project_to_face(ReferenceCells::get_hypercube(), + subquadrature, + f); for (unsigned int k = 0; k < quadrature.size(); ++k) deallog << quadrature.point(k) << std::endl; } @@ -92,22 +97,24 @@ check_faces(Quadrature<1> &q1) Quadrature subquadrature(q1); const unsigned int nqs = subquadrature.size(); - Quadrature faces = QProjector::project_to_all_faces(subquadrature); + Quadrature faces = + QProjector::project_to_all_faces(ReferenceCells::get_hypercube(), + subquadrature); for (const unsigned int f : GeometryInfo::face_indices()) { deallog << "Face " << f << " orientation false" << std::endl; - unsigned int offset = - QProjector::DataSetDescriptor::face(f, false, false, false, nqs); + unsigned int offset = QProjector::DataSetDescriptor::face( + ReferenceCells::get_hypercube(), f, false, false, false, nqs); for (unsigned int k = 0; k < nqs; ++k) deallog << faces.point(offset + k) << std::endl; deallog << "Face " << f << " orientation true" << std::endl; - offset = - QProjector::DataSetDescriptor::face(f, true, false, false, nqs); + offset = QProjector::DataSetDescriptor::face( + ReferenceCells::get_hypercube(), f, true, false, false, nqs); for (unsigned int k = 0; k < nqs; ++k) deallog << faces.point(offset + k) << std::endl; diff --git a/tests/base/quadrature_sorted_test.cc b/tests/base/quadrature_sorted_test.cc index 4bd2018706..bef2afcbf9 100644 --- a/tests/base/quadrature_sorted_test.cc +++ b/tests/base/quadrature_sorted_test.cc @@ -112,8 +112,10 @@ check_faces(const std::vector *> &quadratures, { Quadrature quadrature( sub == false ? - QProjector::project_to_all_faces(*quadratures[n]) : - QProjector::project_to_all_subfaces(*quadratures[n])); + QProjector::project_to_all_faces( + ReferenceCells::get_hypercube(), *quadratures[n]) : + QProjector::project_to_all_subfaces( + ReferenceCells::get_hypercube(), *quadratures[n])); const std::vector> &points = quadrature.get_points(); const std::vector & weights = quadrature.get_weights(); diff --git a/tests/base/quadrature_test.cc b/tests/base/quadrature_test.cc index f7f69ac728..362d810ffd 100644 --- a/tests/base/quadrature_test.cc +++ b/tests/base/quadrature_test.cc @@ -127,8 +127,10 @@ check_faces(const std::vector *> &quadratures, { Quadrature quadrature( sub == false ? - QProjector::project_to_all_faces(*quadratures[n]) : - QProjector::project_to_all_subfaces(*quadratures[n])); + QProjector::project_to_all_faces( + ReferenceCells::get_hypercube(), *quadratures[n]) : + QProjector::project_to_all_subfaces( + ReferenceCells::get_hypercube(), *quadratures[n])); const std::vector> &points = quadrature.get_points(); const std::vector & weights = quadrature.get_weights(); diff --git a/tests/fe/fe_support_points_common.h b/tests/fe/fe_support_points_common.h index 7c1979d538..de39b504b7 100644 --- a/tests/fe/fe_support_points_common.h +++ b/tests/fe/fe_support_points_common.h @@ -72,7 +72,10 @@ check_support(const FiniteElement &finel, const char *name) for (const unsigned int i : GeometryInfo::face_indices()) { std::vector> q_points(q.get_points().size()); - QProjector::project_to_face(q, i, q_points); + QProjector::project_to_face(ReferenceCells::get_hypercube(), + q, + i, + q_points); Quadrature qp(q_points); deallog << name << '<' << dim << '>' << " face " << i << " support points" << std::endl; diff --git a/tests/fe/rt_normal_02.cc b/tests/fe/rt_normal_02.cc index 1b54664863..4c6e559d34 100644 --- a/tests/fe/rt_normal_02.cc +++ b/tests/fe/rt_normal_02.cc @@ -65,7 +65,8 @@ EvaluateNormal2(DoFHandler<2> *dof_handler, Vector &solution) // This quadrature rule determines the points, where the // continuity will be tested. QGauss<1> quad(6); - Quadrature<2> qproject = QProjector<2>::project_to_all_faces(quad); + Quadrature<2> qproject = + QProjector<2>::project_to_all_faces(ReferenceCells::Quadrilateral, quad); FEFaceValues<2> fe_v_face( dof_handler->get_fe(), @@ -107,12 +108,13 @@ EvaluateNormal2(DoFHandler<2> *dof_handler, Vector &solution) if (!cell->face(f)->at_boundary()) { const QProjector<2>::DataSetDescriptor offset = - (QProjector<2>::DataSetDescriptor::face(f, - cell->face_orientation( - f), - cell->face_flip(f), - cell->face_rotation(f), - quad.size())); + (QProjector<2>::DataSetDescriptor::face( + ReferenceCells::Quadrilateral, + f, + cell->face_orientation(f), + cell->face_flip(f), + cell->face_rotation(f), + quad.size())); fe_v_face.reinit(cell, f); DoFHandler<2>::active_cell_iterator cell_n = cell->neighbor(f); @@ -121,6 +123,7 @@ EvaluateNormal2(DoFHandler<2> *dof_handler, Vector &solution) const QProjector<2>::DataSetDescriptor offset_n = (QProjector<2>::DataSetDescriptor::face( + ReferenceCells::Quadrilateral, neighbor, cell_n->face_orientation(neighbor), cell_n->face_flip(neighbor), -- 2.39.5