From: David Wells Date: Sun, 9 Mar 2025 16:55:41 +0000 (-0400) Subject: Triangulation: don't assume the default line orientation is 1. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43d25a33df644d0a66960be17e4a02aaeed57d72;p=dealii.git Triangulation: don't assume the default line orientation is 1. --- diff --git a/source/grid/tria.cc b/source/grid/tria.cc index c100085ca3..c96f261812 100644 --- a/source/grid/tria.cc +++ b/source/grid/tria.cc @@ -15999,16 +15999,21 @@ void Triangulation::reset_cell_vertex_indices_cache() const std::array line_orientations{{face_iter->line_orientation(0), face_iter->line_orientation(1)}}; - std::array raw_vertex_indices{ - {face_iter->line(0)->vertex_index(1 - line_orientations[0]), - face_iter->line(1)->vertex_index(1 - line_orientations[1]), - face_iter->line(0)->vertex_index(line_orientations[0]), - face_iter->line(1)->vertex_index(line_orientations[1])}}; + const std::array line_vertex_indices{ + {line_orientations[0] == + numbers::default_geometric_orientation, + line_orientations[1] == + numbers::default_geometric_orientation}}; + const std::array raw_vertex_indices{ + {face_iter->line(0)->vertex_index(1 - line_vertex_indices[0]), + face_iter->line(1)->vertex_index(1 - line_vertex_indices[1]), + face_iter->line(0)->vertex_index(line_vertex_indices[0]), + face_iter->line(1)->vertex_index(line_vertex_indices[1])}}; const auto combined_orientation = levels[l]->face_orientations.get_combined_orientation( cell->index() * ReferenceCells::max_n_faces() + face); - std::array vertex_order{ + const std::array vertex_order{ {ref_cell.standard_to_real_face_vertex(0, face, combined_orientation), @@ -16030,11 +16035,15 @@ void Triangulation::reset_cell_vertex_indices_cache() const std::array line_orientations{ {cell->line_orientation(0), cell->line_orientation(1)}}; - std::array raw_vertex_indices{ - {cell->line(0)->vertex_index(1 - line_orientations[0]), - cell->line(1)->vertex_index(1 - line_orientations[1]), - cell->line(0)->vertex_index(line_orientations[0]), - cell->line(1)->vertex_index(line_orientations[1])}}; + const std::array line_vertex_indices{ + {line_orientations[0] == numbers::default_geometric_orientation, + line_orientations[1] == + numbers::default_geometric_orientation}}; + const std::array raw_vertex_indices{ + {cell->line(0)->vertex_index(1 - line_vertex_indices[0]), + cell->line(1)->vertex_index(1 - line_vertex_indices[1]), + cell->line(0)->vertex_index(line_vertex_indices[0]), + cell->line(1)->vertex_index(line_vertex_indices[1])}}; for (unsigned int i = 0; i < 4; ++i) cache[my_index + i] = raw_vertex_indices[i]; }