From d4ae87c8a9bbe0a0f683755a6c75992bd9a7c266 Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Tue, 7 Jun 2022 23:02:22 +0200 Subject: [PATCH] Use shortcase when determining isotropic refinement cases --- include/deal.II/base/geometry_info.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/deal.II/base/geometry_info.h b/include/deal.II/base/geometry_info.h index 4c778352d0..ab7ac139e4 100644 --- a/include/deal.II/base/geometry_info.h +++ b/include/deal.II/base/geometry_info.h @@ -3675,6 +3675,10 @@ GeometryInfo<2>::face_refinement_case( RefinementCase::isotropic_refinement + 1); AssertIndexRange(face_no, GeometryInfo::faces_per_cell); + // simple special case + if (cell_refinement_case == RefinementCase::cut_xy) + return RefinementCase<1>::cut_x; + const RefinementCase ref_cases[RefinementCase::isotropic_refinement + 1][GeometryInfo::faces_per_cell / 2] = { @@ -3706,6 +3710,10 @@ GeometryInfo<3>::face_refinement_case( RefinementCase::isotropic_refinement + 1); AssertIndexRange(face_no, GeometryInfo::faces_per_cell); + // simple special case + if (cell_refinement_case == RefinementCase::cut_xyz) + return RefinementCase::cut_xy; + const RefinementCase ref_cases[RefinementCase::isotropic_refinement + 1] [GeometryInfo::faces_per_cell / 2] = { @@ -3816,6 +3824,10 @@ GeometryInfo<3>::line_refinement_case( RefinementCase::isotropic_refinement + 1); AssertIndexRange(line_no, GeometryInfo::lines_per_cell); + // simple special case + if (cell_refinement_case == RefinementCase::cut_xyz) + return RefinementCase<1>::cut_x; + // array indicating, which simple refine // case cuts a line in direction x, y or // z. For example, cut_y and everything -- 2.39.5