![]() |
deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
|
#include <deal.II/grid/cell_id_translator.h>
A class that helps to translate between CellIDs and globally unique indices. The resulting index space might be non-contiguous in the case of locally refined meshes.
The following code snippet shows how to set up an IndexSet for active cells, using this class:
Definition at line 60 of file cell_id_translator.h.
Public Member Functions | |
| template<int spacedim> | |
| CellIDTranslator (const Triangulation< dim, spacedim > &tria) | |
| types::global_cell_index | size () const |
| template<typename Accessor > | |
| types::global_cell_index | translate (const TriaIterator< Accessor > &cell) const |
| template<typename Accessor > | |
| types::global_cell_index | translate_level (const TriaIterator< Accessor > &cell) const |
| template<typename Accessor > | |
| types::global_cell_index | translate (const TriaIterator< Accessor > &cell, const types::global_cell_index i) const |
| CellId | to_cell_id (const types::global_cell_index id) const |
Private Member Functions | |
| types::global_cell_index | to_level_cell_index (const CellId &cell_id) const |
Private Attributes | |
| const bool | has_pyramids |
| const unsigned int | max_children_per_cell |
| const types::global_cell_index | n_coarse_cells |
| const types::global_cell_index | n_global_levels |
| std::vector< types::global_cell_index > | tree_sizes |
| internal::CellIDTranslator< dim >::CellIDTranslator | ( | const Triangulation< dim, spacedim > & | tria | ) |
Constructor.
Definition at line 31 of file cell_id_translator.cc.
| types::global_cell_index internal::CellIDTranslator< dim >::size | ( | ) | const |
Return maximum number of cells, i.e., in the case the triangulation were globally refined n_global_levels - 1 times.
Definition at line 152 of file cell_id_translator.h.
| types::global_cell_index internal::CellIDTranslator< dim >::translate | ( | const TriaIterator< Accessor > & | cell | ) | const |
Convert a cell of type TriaAccessor, CellAccessor, DoFAccessor, or DoFCellAccessor to an index.
Definition at line 165 of file cell_id_translator.h.
| types::global_cell_index internal::CellIDTranslator< dim >::translate_level | ( | const TriaIterator< Accessor > & | cell | ) | const |
Convert a cell of type TriaAccessor, CellAccessor, DoFAccessor, or DoFCellAccessor to an index unique on a level.
Definition at line 179 of file cell_id_translator.h.
| types::global_cell_index internal::CellIDTranslator< dim >::translate | ( | const TriaIterator< Accessor > & | cell, |
| const types::global_cell_index | i | ||
| ) | const |
Convert the i-th child of to an index.
Definition at line 195 of file cell_id_translator.h.
| CellId internal::CellIDTranslator< dim >::to_cell_id | ( | const types::global_cell_index | id | ) | const |
Convert an index to a CellId.
Definition at line 88 of file cell_id_translator.cc.
|
private |
Convert a CellId to a index on that cell's level.
Definition at line 139 of file cell_id_translator.cc.
|
private |
Whether or not the Triangulation has Pyramid elements. If so we must assume the maximum number of children per cell is ReferenceCells::Pyramid.n_isotropic_children() (10). Otherwise we may assume it is ReferenceCells::get_hypercube<dim>.n_isotropic_children() (2**dim).
Definition at line 120 of file cell_id_translator.h.
|
private |
Maximum number of children per cell.
Definition at line 130 of file cell_id_translator.h.
|
private |
Number of global coarse cells.
Definition at line 135 of file cell_id_translator.h.
|
private |
Number of global levels.
Definition at line 140 of file cell_id_translator.h.
|
private |
Offset of each level in the index space.
Definition at line 145 of file cell_id_translator.h.