Reference documentation for deal.II version 9.6.0
\(\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\}}\)
Loading...
Searching...
No Matches
internal::CellIDTranslator< dim > Class Template Reference

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

Public Member Functions

 CellIDTranslator (const types::global_cell_index n_coarse_cells, const types::global_cell_index n_global_levels)
 
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 (const TriaIterator< Accessor > &cell, const types::global_cell_index i) const
 
CellId to_cell_id (const types::global_cell_index id) const
 

Static Private Member Functions

static types::global_cell_index convert_cell_id_binary_type_to_level_coarse_cell_id (const typename CellId::binary_type &binary_representation)
 

Private Attributes

const types::global_cell_index n_coarse_cells
 
const types::global_cell_index n_global_levels
 
std::vector< types::global_cell_indextree_sizes
 

Detailed Description

template<int dim>
class internal::CellIDTranslator< dim >

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:

// set up translator
CellIDTranslator<dim> translator(tria.n_global_coarse_cells(),
tria.n_global_levels());
// initialize the index set with the correct size
IndexSet index_set(translator.size());
// convert IDs to indices and add them to the index set
for(const auto & cell : tria.active_cell_iterators())
index_set.add_index(translator.translate(cell));
types::global_cell_index translate(const TriaIterator< Accessor > &cell) const
Note
The definition of the indices are not relevant.

Definition at line 54 of file cell_id_translator.h.

Constructor & Destructor Documentation

◆ CellIDTranslator()

template<int dim>
internal::CellIDTranslator< dim >::CellIDTranslator ( const types::global_cell_index n_coarse_cells,
const types::global_cell_index n_global_levels )

Constructor taking the number of global coarse cells and number of global levels of a triangulation.

Definition at line 120 of file cell_id_translator.h.

Member Function Documentation

◆ size()

template<int dim>
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 171 of file cell_id_translator.h.

◆ translate() [1/2]

template<int dim>
template<typename Accessor >
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 184 of file cell_id_translator.h.

◆ translate() [2/2]

template<int dim>
template<typename Accessor >
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 207 of file cell_id_translator.h.

◆ to_cell_id()

template<int dim>
CellId internal::CellIDTranslator< dim >::to_cell_id ( const types::global_cell_index id) const

Convert an index to a CellId.

Definition at line 223 of file cell_id_translator.h.

◆ convert_cell_id_binary_type_to_level_coarse_cell_id()

template<int dim>
types::global_cell_index internal::CellIDTranslator< dim >::convert_cell_id_binary_type_to_level_coarse_cell_id ( const typename CellId::binary_type & binary_representation)
staticprivate

Convert a binary representation to a index.

Definition at line 254 of file cell_id_translator.h.

Member Data Documentation

◆ n_coarse_cells

template<int dim>
const types::global_cell_index internal::CellIDTranslator< dim >::n_coarse_cells
private

Number of global coarse cells.

Definition at line 104 of file cell_id_translator.h.

◆ n_global_levels

template<int dim>
const types::global_cell_index internal::CellIDTranslator< dim >::n_global_levels
private

Number of global levels.

Definition at line 109 of file cell_id_translator.h.

◆ tree_sizes

template<int dim>
std::vector<types::global_cell_index> internal::CellIDTranslator< dim >::tree_sizes
private

Offset of each level in the index space.

Definition at line 114 of file cell_id_translator.h.


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