Reference documentation for deal.II version Git c92c73f660 2021-06-12 09:30:03 +0200
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Static Public Member Functions | List of all members
GridReordering< dim, spacedim > Class Template Reference

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

Public Member Functions

template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 2 >> &all_vertices, std::vector< CellData< 2 >> &cells, const bool use_new_style_ordering)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 3 >> &all_vertices, std::vector< CellData< 2 >> &cells, const bool use_new_style_ordering)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 3 >> &all_vertices, std::vector< CellData< 3 >> &cells, const bool use_new_style_ordering)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 1 >> &, std::vector< CellData< 1 >> &, const bool)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 2 >> &, std::vector< CellData< 1 >> &, const bool)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 3 >> &, std::vector< CellData< 1 >> &, const bool)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 2 >> &all_vertices, std::vector< CellData< 2 >> &cells, const bool use_new_style_ordering)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 3 >> &, std::vector< CellData< 2 >> &, const bool)
 
template<>
void invert_all_cells_of_negative_grid (const std::vector< Point< 3 >> &all_vertices, std::vector< CellData< 3 >> &cells, const bool use_new_style_ordering)
 

Static Public Member Functions

static void reorder_cells (std::vector< CellData< dim >> &original_cells, const bool use_new_style_ordering=false)
 
static void invert_all_cells_of_negative_grid (const std::vector< Point< spacedim >> &all_vertices, std::vector< CellData< dim >> &original_cells, const bool use_new_style_ordering=false)
 

Detailed Description

template<int dim, int spacedim = dim>
class GridReordering< dim, spacedim >

A class implementing various grid reordering algorithms. For more information see the reordering module.

Deprecated:
Use GridTools::invert_all_negative_measure_cells() or GridTools::consistently_order_cells() instead of the functions provided by this class. Usage of the old-style numbering is deprecated.

Definition at line 37 of file grid_reordering.h.

Member Function Documentation

◆ reorder_cells()

template<int dim, int spacedim>
void GridReordering< dim, spacedim >::reorder_cells ( std::vector< CellData< dim >> &  original_cells,
const bool  use_new_style_ordering = false 
)
static

This is the main function, doing what is announced in the general documentation of this class for dim=2 and 3 and doing nothing for dim=1.

If a consistent reordering is not possible in dim=3, the original connectivity data is restored.

Parameters
original_cellsAn object that contains the data that describes the mesh.
use_new_style_orderingIf true, then use the standard ordering of vertices within a cell. If false (the default), then use the "old-style" ordering of vertices within cells used by deal.II before version 5.2 and as explained in the documentation of this class.
Deprecated:
Use GridTools::consistently_order_cells() instead.

Definition at line 100 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [1/10]

template<int dim, int spacedim = dim>
static void GridReordering< dim, spacedim >::invert_all_cells_of_negative_grid ( const std::vector< Point< spacedim >> &  all_vertices,
std::vector< CellData< dim >> &  original_cells,
const bool  use_new_style_ordering = false 
)
static

Grids generated by grid generators may have an orientation of cells which is the inverse of the orientation required by deal.II.

In 2d and 3d this function checks whether all cells have negative or positive measure/volume. In the former case, all cells are inverted. It does nothing in 1d.

The inversion of cells might also work when only a subset of all cells have negative volume. However, grids consisting of a mixture of negative and positively oriented cells are very likely to be broken. Therefore, an exception is thrown, in case cells are not uniformly oriented.

Note, that this function should be called before reorder_cells().

Parameters
all_verticesThe vertices of the mesh.
original_cellsAn object that contains the data that describes the mesh.
use_new_style_orderingIf true, then use the standard ordering of vertices within a cell. If false (the default), then use the "old-style" ordering of vertices within cells used by deal.II before version 5.2 and as explained in the documentation of this class.
Deprecated:
Use GridTools::invert_all_negative_measure_cells() instead.

◆ invert_all_cells_of_negative_grid() [2/10]

template<>
void GridReordering< 2 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 2 >> &  all_vertices,
std::vector< CellData< 2 >> &  cells,
const bool  use_new_style_ordering 
)

◆ invert_all_cells_of_negative_grid() [3/10]

template<>
void GridReordering< 2, 3 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 3 >> &  all_vertices,
std::vector< CellData< 2 >> &  cells,
const bool  use_new_style_ordering 
)

◆ invert_all_cells_of_negative_grid() [4/10]

template<>
void GridReordering< 3 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 3 >> &  all_vertices,
std::vector< CellData< 3 >> &  cells,
const bool  use_new_style_ordering 
)

◆ invert_all_cells_of_negative_grid() [5/10]

template<>
void GridReordering< 1 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 1 >> &  ,
std::vector< CellData< 1 >> &  ,
const bool   
)

Definition at line 125 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [6/10]

template<>
void GridReordering< 1, 2 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 2 >> &  ,
std::vector< CellData< 1 >> &  ,
const bool   
)

Definition at line 137 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [7/10]

template<>
void GridReordering< 1, 3 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 3 >> &  ,
std::vector< CellData< 1 >> &  ,
const bool   
)

Definition at line 149 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [8/10]

template<>
void GridReordering< 2 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 2 >> &  all_vertices,
std::vector< CellData< 2 >> &  cells,
const bool  use_new_style_ordering 
)

Definition at line 160 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [9/10]

template<>
void GridReordering< 2, 3 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 3 >> &  ,
std::vector< CellData< 2 >> &  ,
const bool   
)

Definition at line 178 of file grid_reordering.cc.

◆ invert_all_cells_of_negative_grid() [10/10]

template<>
void GridReordering< 3 >::invert_all_cells_of_negative_grid ( const std::vector< Point< 3 >> &  all_vertices,
std::vector< CellData< 3 >> &  cells,
const bool  use_new_style_ordering 
)

Definition at line 190 of file grid_reordering.cc.


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