PolyDEAL
 
Loading...
Searching...
No Matches
dealii::CellsAgglomerator< dim, RtreeType > Class Template Reference

#include <agglomerator.h>

Public Member Functions

 CellsAgglomerator (const RtreeType &rtree, const unsigned int extraction_level)
 
const std::vector< std::vector< typename Triangulation< dim >::active_cell_iterator > > & extract_agglomerates ()
 
unsigned int get_n_levels () const
 
types::global_cell_index get_n_nodes_per_level (const unsigned int level) const
 
const std::map< std::pair< types::global_cell_index, types::global_cell_index >, std::vector< types::global_cell_index > > & get_hierarchy () const
 

Private Attributes

RtreeType * rtree
 
const unsigned int extraction_level
 
std::vector< std::vector< typename Triangulation< dim >::active_cell_iterator > > agglomerates_on_level
 
std::vector< types::global_cell_indexn_nodes_per_level
 
std::map< std::pair< types::global_cell_index, types::global_cell_index >, std::vector< types::global_cell_index > > parent_node_to_children_nodes
 

Friends

template<int , int >
class ::AgglomerationHandler
 

Detailed Description

template<int dim, typename RtreeType>
class dealii::CellsAgglomerator< dim, RtreeType >

Helper class which handles agglomeration based on the R-tree data structure. Notice that the R-tree type is assumed to be an R-star-tree.

Definition at line 300 of file agglomerator.h.

Constructor & Destructor Documentation

◆ CellsAgglomerator()

template<int dim, typename RtreeType >
dealii::CellsAgglomerator< dim, RtreeType >::CellsAgglomerator ( const RtreeType & rtree,
const unsigned int extraction_level )

Constructor. It takes a given rtree and an integer representing the index of the level to be extracted.

Definition at line 378 of file agglomerator.h.

References Assert, and dealii::CellsAgglomerator< dim, RtreeType >::rtree.

Member Function Documentation

◆ extract_agglomerates()

template<int dim, typename RtreeType >
const std::vector< std::vector< typename Triangulation< dim >::active_cell_iterator > > & dealii::CellsAgglomerator< dim, RtreeType >::extract_agglomerates ( )

Extract agglomerates based on the current tree and the extraction level. This function returns a reference to

Definition at line 392 of file agglomerator.h.

References AssertThrow, and std::min().

Referenced by dealii::PolyUtils::construct_agglomerated_levels().

◆ get_hierarchy()

template<int dim, typename RtreeType >
const std::map< std::pair< types::global_cell_index, types::global_cell_index >, std::vector< types::global_cell_index > > & dealii::CellsAgglomerator< dim, RtreeType >::get_hierarchy ( ) const
inline

This function returns a map which associates to each node on level extraction_level a list of children.

Definition at line 464 of file agglomerator.h.

References Assert.

◆ get_n_levels()

template<int dim, typename RtreeType >
unsigned int dealii::CellsAgglomerator< dim, RtreeType >::get_n_levels ( ) const
inline

Get total number of levels.

Definition at line 443 of file agglomerator.h.

◆ get_n_nodes_per_level()

template<int dim, typename RtreeType >
types::global_cell_index dealii::CellsAgglomerator< dim, RtreeType >::get_n_nodes_per_level ( const unsigned int level) const
inline

Return the number of nodes present in level level.

Definition at line 452 of file agglomerator.h.

References level.

Friends And Related Symbol Documentation

◆ ::AgglomerationHandler

template<int dim, typename RtreeType >
template<int , int >
friend class ::AgglomerationHandler
friend

Definition at line 304 of file agglomerator.h.

Member Data Documentation

◆ agglomerates_on_level

template<int dim, typename RtreeType >
std::vector<std::vector<typename Triangulation<dim>::active_cell_iterator> > dealii::CellsAgglomerator< dim, RtreeType >::agglomerates_on_level
private

Store agglomerates obtained after recursive extraction on nodes of level extraction_level.

Definition at line 358 of file agglomerator.h.

◆ extraction_level

template<int dim, typename RtreeType >
const unsigned int dealii::CellsAgglomerator< dim, RtreeType >::extraction_level
private

Extraction level.

Definition at line 351 of file agglomerator.h.

Referenced by AgglomerationHandler< dim, spacedim >::connect_hierarchy().

◆ n_nodes_per_level

template<int dim, typename RtreeType >
std::vector<types::global_cell_index> dealii::CellsAgglomerator< dim, RtreeType >::n_nodes_per_level
private

Vector storing the number of nodes (and, ultimately, agglomerates) for each level.

Definition at line 364 of file agglomerator.h.

◆ parent_node_to_children_nodes

template<int dim, typename RtreeType >
std::map<std::pair<types::global_cell_index, types::global_cell_index>, std::vector<types::global_cell_index> > dealii::CellsAgglomerator< dim, RtreeType >::parent_node_to_children_nodes
private

Map which maps a node parent
on level l to a vector of integers which stores the index of children.

Definition at line 372 of file agglomerator.h.

Referenced by AgglomerationHandler< dim, spacedim >::connect_hierarchy().

◆ rtree

template<int dim, typename RtreeType >
RtreeType* dealii::CellsAgglomerator< dim, RtreeType >::rtree
private

Raw pointer to the actual R-tree.

Definition at line 346 of file agglomerator.h.

Referenced by dealii::CellsAgglomerator< dim, RtreeType >::CellsAgglomerator().


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