21 #ifndef __REGULAR_CUT_REFINEMENT_H 22 #define __REGULAR_CUT_REFINEMENT_H 31 template<
typename T>
class MeshFunction;
57 enum class marker_type : int { no_refinement=-1, regular_refinement=-2,
58 backtrack_bisection=-3, backtrack_bisection_refine=-4 };
61 static void compute_markers(std::vector<int>& refinement_markers,
67 static void refine_marked(
Mesh& refined_mesh,
69 const std::vector<int>& refinement_markers,
73 static std::size_t count_markers(
const std::vector<bool>& markers);
76 static std::size_t extract_edge(
const std::vector<bool>& markers);
79 static bool too_thin(
const Cell& cell,
80 const std::vector<bool>& edge_markers);
83 static std::pair<std::size_t, std::size_t> find_common_edges(
const Cell& cell,
85 std::size_t bisection_twin);
88 static std::pair<std::size_t, std::size_t> find_bisection_edges(
const Cell& cell,
90 std::size_t bisection_twin);
93 static std::pair<std::size_t, std::size_t> find_bisection_vertices(
const Cell& cell,
95 std::size_t bisection_twin,
96 const std::pair<std::size_t, std::size_t>& bisection_edges);
Definition: IndexSet.h:34
static void refine(Mesh &refined_mesh, const Mesh &mesh, const MeshFunction< bool > &cell_markers)
Definition: RegularCutRefinement.cpp:37
A Cell is a MeshEntity of topological codimension 0.
Definition: Cell.h:42
Definition: RegularCutRefinement.h:38