17 #ifndef __deal2__grid_reordering_internal_h 18 #define __deal2__grid_reordering_internal_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/grid/tria.h> 38 namespace GridReordering2d
125 MQuad (
const unsigned int v0,
126 const unsigned int v1,
127 const unsigned int v2,
128 const unsigned int v3,
129 const unsigned int s0,
130 const unsigned int s1,
131 const unsigned int s2,
132 const unsigned int s3,
142 unsigned int side[4];
164 MSide (
const unsigned int initv0,
165 const unsigned int initv1);
172 bool operator==(
const MSide &s2)
const;
177 bool operator!=(
const MSide &s2)
const;
231 void build_graph (
const std::vector<
CellData<2> > &inquads);
273 void get_quads(std::vector<
CellData<2> > &outquads)
const;
286 void orient_side (
const unsigned int quadnum,
287 const unsigned int localsidenum);
294 bool is_fully_oriented_quad (
const unsigned int quadnum)
const;
301 bool is_oriented_side (
const unsigned int quadnum,
302 const unsigned int lsn)
const;
309 bool is_side_default_oriented (
const unsigned int qnum,
310 const unsigned int lsn)
const;
320 bool get_unoriented_quad (
unsigned int &UnOrQLoc)
const;
329 bool get_unoriented_side (
const unsigned int quadnum,
330 unsigned int &sidenum)
const;
350 bool side_hop (
unsigned int &qnum,
351 unsigned int &lsn)
const;
373 namespace GridReordering3d
478 const unsigned int n1);
484 bool operator< (
const CheapEdge &e2)
const;
498 Edge (
const unsigned int n0,
499 const unsigned int n1);
504 unsigned int nodes[2];
622 export_to_deal_format (std::vector<
CellData<3> > &outcubes)
const;
639 void sanity_check()
const;
648 void build_connectivity ();
668 void sanity_check_node (
const Cell &cell,
669 const unsigned int local_node_num)
const;
756 bool edge_orient_array[12];
780 bool orient_edges ();
788 void orient_cubes ();
790 bool get_next_unoriented_cube ();
798 bool is_oriented (
const unsigned int cell_num)
const;
800 bool orient_edges_in_current_cube ();
801 bool orient_edge_set_in_current_cube (
const unsigned int edge_set);
802 bool orient_next_unoriented_edge ();
815 bool cell_is_consistent (
const unsigned int cell_num)
const;
818 void get_adjacent_cubes ();
819 bool get_next_active_cube ();
825 DEAL_II_NAMESPACE_CLOSE
EdgeOrientation orientation_flag
std::vector< MQuad > mquads
static const int EdgeToNode[4][2]
static const int DefaultOrientation[4][2]
std::vector< Edge > edge_list
std::vector< unsigned int > neighboring_cubes
std::vector< MSide > sides
CellData< 2 > original_cell_data
std::vector< Cell > cell_list
static const int NodeToEdge[4][2]
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