16 #ifndef dealii__grid_reordering_internal_h 17 #define dealii__grid_reordering_internal_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/grid/tria.h> 26 DEAL_II_NAMESPACE_OPEN
37 namespace GridReordering2d
110 MQuad (
const unsigned int v0,
111 const unsigned int v1,
112 const unsigned int v2,
113 const unsigned int v3,
114 const unsigned int s0,
115 const unsigned int s1,
116 const unsigned int s2,
117 const unsigned int s3,
127 unsigned int side[4];
148 MSide (
const unsigned int initv0,
149 const unsigned int initv1);
154 bool operator==(
const MSide &s2)
const;
159 bool operator!=(
const MSide &s2)
const;
207 void build_graph (
const std::vector<
CellData<2> > &inquads);
234 void get_quads(std::vector<
CellData<2> > &outquads)
const;
242 void orient_side (
const unsigned int quadnum,
243 const unsigned int localsidenum);
248 bool is_fully_oriented_quad (
const unsigned int quadnum)
const;
253 bool is_oriented_side (
const unsigned int quadnum,
254 const unsigned int lsn)
const;
259 bool is_side_default_oriented (
const unsigned int qnum,
260 const unsigned int lsn)
const;
266 bool get_unoriented_quad (
unsigned int &UnOrQLoc)
const;
272 bool get_unoriented_side (
const unsigned int quadnum,
273 unsigned int &sidenum)
const;
283 bool side_hop (
unsigned int &qnum,
284 unsigned int &lsn)
const;
304 namespace GridReordering3d
371 const unsigned int n1);
376 bool operator< (
const CheapEdge &e2)
const;
389 Edge (
const unsigned int n0,
390 const unsigned int n1);
395 unsigned int nodes[2];
480 export_to_deal_format (std::vector<
CellData<3> > &outcubes)
const;
496 void sanity_check()
const;
502 void build_connectivity ();
517 void sanity_check_node (
const Cell &cell,
518 const unsigned int local_node_num)
const;
582 bool edge_orient_array[12];
598 bool orient_edges ();
604 void orient_cubes ();
606 bool get_next_unoriented_cube ();
612 bool is_oriented (
const unsigned int cell_num)
const;
614 bool orient_edges_in_current_cube ();
615 bool orient_edge_set_in_current_cube (
const unsigned int edge_set);
616 bool orient_next_unoriented_edge ();
623 bool cell_is_consistent (
const unsigned int cell_num)
const;
626 void get_adjacent_cubes ();
627 bool get_next_active_cube ();
633 DEAL_II_NAMESPACE_CLOSE
EdgeOrientation orientation_flag
std::vector< MQuad > mquads
static const int EdgeToNode[4][2]
std::vector< Edge > edge_list
std::vector< unsigned int > neighboring_cubes
static const int NodeToEdge[4][2]
std::vector< MSide > sides
static const int DefaultOrientation[4][2]
CellData< 2 > original_cell_data
std::vector< Cell > cell_list
std::vector< int > sheet_to_process
bool is_consistent(const std::vector< CellData< 2 > > &cells)
unsigned int cur_edge_group
bool waiting_to_be_processed