Reference documentation for deal.II version 8.4.2
Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
internal::GridReordering3d::Orienter Class Reference

#include <deal.II/grid/grid_reordering_internal.h>

Static Public Member Functions

static bool orient_mesh (std::vector< CellData< 3 > > &incubes)
 

Private Member Functions

 Orienter (const std::vector< CellData< 3 > > &incubes)
 
bool orient_edges ()
 
void orient_cubes ()
 
bool is_oriented (const unsigned int cell_num) const
 
bool cell_is_consistent (const unsigned int cell_num) const
 

Private Attributes

Mesh mesh
 
unsigned int cur_posn
 
unsigned int marker_cube
 
unsigned int cur_edge_group
 
std::vector< int > sheet_to_process
 
bool edge_orient_array [12]
 

Detailed Description

The class that orients the edges of a triangulation in 3d. The member variables basically only store the present state of the algorithm.

Definition at line 531 of file grid_reordering_internal.h.

Constructor & Destructor Documentation

§ Orienter()

internal::GridReordering3d::Orienter::Orienter ( const std::vector< CellData< 3 > > &  incubes)
private

Constructor. Take a list of cells and set up the internal data structures of the mesh member variable.

Since it is private, the only entry point of this class is the static function orient_mesh().

Definition at line 1151 of file grid_reordering.cc.

Member Function Documentation

§ orient_mesh()

bool internal::GridReordering3d::Orienter::orient_mesh ( std::vector< CellData< 3 > > &  incubes)
static

Orient the given mesh. Creates an object of the present type and lets that toil away at the task.

This function is the single entry point to the functionality of this class.

Returns, whether a consistent orientation of lines was possible for the given mesh.

Definition at line 1164 of file grid_reordering.cc.

§ orient_edges()

bool internal::GridReordering3d::Orienter::orient_edges ( )
private

Orient all the edges of a mesh.

Returns, whether this action was carried out successfully.

This assigns an orientation to each edge so that every cube is a rotated Deal.II cube.

Definition at line 1199 of file grid_reordering.cc.

§ orient_cubes()

void internal::GridReordering3d::Orienter::orient_cubes ( )
private

Given oriented edges, rotate the cubes so that the edges are in standard direction.

Definition at line 1511 of file grid_reordering.cc.

§ is_oriented()

bool internal::GridReordering3d::Orienter::is_oriented ( const unsigned int  cell_num) const
private

Return whether the cell with cell number cell_num is fully oriented.

Definition at line 1267 of file grid_reordering.cc.

§ cell_is_consistent()

bool internal::GridReordering3d::Orienter::cell_is_consistent ( const unsigned int  cell_num) const
private

Return whether the cell is consistently oriented at present (i.e. only considering those edges that are already oriented. This is a sanity check that should be called from inside an assert macro.

Definition at line 1279 of file grid_reordering.cc.

Member Data Documentation

§ mesh

Mesh internal::GridReordering3d::Orienter::mesh
private

Internal representation of the given list of cells, including connectivity information and the like.

Definition at line 553 of file grid_reordering_internal.h.

§ cur_posn

unsigned int internal::GridReordering3d::Orienter::cur_posn
private

The cube we're looking at presently.

Definition at line 558 of file grid_reordering_internal.h.

§ marker_cube

unsigned int internal::GridReordering3d::Orienter::marker_cube
private

We have fully oriented all cubes before this one.

Definition at line 563 of file grid_reordering_internal.h.

§ cur_edge_group

unsigned int internal::GridReordering3d::Orienter::cur_edge_group
private

The index of the sheet or equivalence class we are presently processing.

Definition at line 569 of file grid_reordering_internal.h.

§ sheet_to_process

std::vector<int> internal::GridReordering3d::Orienter::sheet_to_process
private

Indices of the cells to be processed within the present sheet. If a cell is being processed presently, it is taken from this list.

Definition at line 575 of file grid_reordering_internal.h.

§ edge_orient_array

bool internal::GridReordering3d::Orienter::edge_orient_array[12]
private

Which edges of the current cell have been oriented during the current iteration. Is reset when moving on to the next cube.

Definition at line 582 of file grid_reordering_internal.h.


The documentation for this class was generated from the following files: