deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
\(\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
Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
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 Public Member Functions

template<typename Accessor >
static types::global_cell_index translate_level (const TriaIterator< Accessor > &cell)
 

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 128 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 179 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 192 of file cell_id_translator.h.

◆ translate_level()

template<int dim>
template<typename Accessor >
types::global_cell_index internal::CellIDTranslator< dim >::translate_level ( const TriaIterator< Accessor > &  cell)
static

Convert a cell of type TriaAccessor, CellAccessor, DoFAccessor, or DoFCellAccessor to an index unique on a level.

Definition at line 206 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 223 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 239 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 270 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 112 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 117 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 122 of file cell_id_translator.h.


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