PolyDEAL
 
Loading...
Searching...
No Matches
AgglomerationHandler< dim, spacedim > Class Template Reference

#include <agglomeration_handler.h>

Inheritance diagram for AgglomerationHandler< dim, spacedim >:
Subscriptor

Public Types

enum  CellAgglomerationType { master = 0 , slave = 1 }
 
using agglomeration_iterator = AgglomerationIterator<dim, spacedim>
 
using AgglomerationContainer
 

Public Member Functions

 AgglomerationHandler (const GridTools::Cache< dim, spacedim > &cached_tria)
 
 AgglomerationHandler ()=default
 
 ~AgglomerationHandler ()
 
agglomeration_iterator begin () const
 
agglomeration_iterator begin ()
 
agglomeration_iterator end () const
 
agglomeration_iterator end ()
 
agglomeration_iterator last ()
 
IteratorRange< agglomeration_iteratorpolytope_iterators () const
 
void distribute_agglomerated_dofs (const FiniteElement< dim > &fe_space)
 
void initialize_fe_values (const Quadrature< dim > &cell_quadrature=QGauss< dim >(1), const UpdateFlags &flags=UpdateFlags::update_default, const Quadrature< dim - 1 > &face_quadrature=QGauss< dim - 1 >(1), const UpdateFlags &face_flags=UpdateFlags::update_default)
 
template<typename SparsityPatternType , typename Number = double>
void create_agglomeration_sparsity_pattern (SparsityPatternType &sparsity_pattern, const AffineConstraints< Number > &constraints=AffineConstraints< Number >(), const bool keep_constrained_dofs=true, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id)
 
agglomeration_iterator define_agglomerate (const AgglomerationContainer &cells)
 
void define_agglomerate_with_check (const AgglomerationContainer &cells)
 
const Triangulation< dim, spacedim > & get_triangulation () const
 
const FiniteElement< dim, spacedim > & get_fe () const
 
const Mapping< dim > & get_mapping () const
 
const MappingBox< dim > & get_agglomeration_mapping () const
 
const std::vector< BoundingBox< dim > > & get_local_bboxes () const
 
double get_mesh_size () const
 
types::global_cell_index cell_to_polytope_index (const typename Triangulation< dim, spacedim >::active_cell_iterator &cell) const
 
decltype(auto) get_interface () const
 
template<typename CellIterator >
bool is_master_cell (const CellIterator &cell) const
 
const std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > & get_slaves_of_idx (types::global_cell_index idx) const
 
const LinearAlgebra::distributed::Vector< float > & get_relationships () const
 
std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > get_agglomerate (const typename Triangulation< dim, spacedim >::active_cell_iterator &master_cell) const
 
template<class StreamType >
void print_agglomeration (StreamType &out)
 
const DoFHandler< dim, spacedim > & get_dof_handler () const
 
unsigned int n_agglomerates () const
 
unsigned int n_agglomerated_faces_per_cell (const typename Triangulation< dim, spacedim >::active_cell_iterator &cell) const
 
const FEValues< dim, spacedim > & reinit (const AgglomerationIterator< dim, spacedim > &polytope) const
 
const FEValuesBase< dim, spacedim > & reinit (const AgglomerationIterator< dim, spacedim > &polytope, const unsigned int face_index) const
 
std::pair< const FEValuesBase< dim, spacedim > &, const FEValuesBase< dim, spacedim > & > reinit_interface (const AgglomerationIterator< dim, spacedim > &polytope_in, const AgglomerationIterator< dim, spacedim > &neigh_polytope, const unsigned int local_in, const unsigned int local_outside) const
 
Quadrature< dim > agglomerated_quadrature (const AgglomerationContainer &cells, const typename Triangulation< dim, spacedim >::active_cell_iterator &master_cell) const
 
bool at_boundary (const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell, const unsigned int f) const
 
unsigned int n_dofs_per_cell () const noexcept
 
types::global_dof_index n_dofs () const noexcept
 
const std::vector< typename Triangulation< dim >::active_face_iterator > & polytope_boundary (const typename Triangulation< dim >::active_cell_iterator &cell)
 
void setup_ghost_polytopes ()
 
void exchange_interface_values ()
 
const DoFHandler< dim, spacedim >::active_cell_iterator polytope_to_dh_iterator (const types::global_cell_index polytope_index) const
 
template<typename RtreeType >
void connect_hierarchy (const CellsAgglomerator< dim, RtreeType > &agglomerator)
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Public Attributes

DoFHandler< dim, spacedim > agglo_dh
 
DoFHandler< dim, spacedim > output_dh
 
std::unique_ptr< MappingBox< dim > > box_mapping
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< Point< spacedim > > > > recv_qpoints
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< double > > > recv_jxws
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< Tensor< 1, spacedim > > > > recv_normals
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< std::vector< double > > > > recv_values
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< std::vector< Tensor< 1, spacedim > > > > > recv_gradients
 

Private Types

using ScratchData = MeshWorker::ScratchData<dim, spacedim>
 

Private Member Functions

void initialize_agglomeration_data (const std::unique_ptr< GridTools::Cache< dim, spacedim > > &cache_tria)
 
void update_agglomerate (AgglomerationContainer &polytope, const typename Triangulation< dim, spacedim >::active_cell_iterator &master_cell)
 
void connect_to_tria_signals ()
 
Triangulation< dim, spacedim >::active_cell_iterator & is_slave_cell_of (const typename Triangulation< dim, spacedim >::active_cell_iterator &cell)
 
void create_bounding_box (const AgglomerationContainer &polytope)
 
types::global_cell_index get_master_idx_of_cell (const typename Triangulation< dim, spacedim >::active_cell_iterator &cell) const
 
bool are_cells_agglomerated (const typename Triangulation< dim, spacedim >::active_cell_iterator &cell, const typename Triangulation< dim, spacedim >::active_cell_iterator &other_cell) const
 
void initialize_hp_structure ()
 
const FEValuesBase< dim, spacedim > & reinit_master (const typename DoFHandler< dim, spacedim >::active_cell_iterator &cell, const unsigned int face_number, std::unique_ptr< NonMatching::FEImmersedSurfaceValues< spacedim > > &agglo_isv_ptr) const
 
template<typename CellIterator >
bool is_slave_cell (const CellIterator &cell) const
 
void setup_connectivity_of_agglomeration ()
 

Private Attributes

unsigned int n_agglomerations
 
LinearAlgebra::distributed::Vector< float > master_slave_relationships
 
std::map< types::global_cell_index, typename Triangulation< dim, spacedim >::active_cell_iterator > master_slave_relationships_iterators
 
std::vector< types::global_cell_indexnumber_of_agglomerated_faces
 
std::map< const typename Triangulation< dim, spacedim >::active_cell_iterator, std::vector< typename Triangulation< dim >::active_face_iterator > > polygon_boundary
 
std::vector< BoundingBox< spacedim > > bboxes
 
std::map< types::subdomain_id, std::map< CellId, unsigned int > > local_n_faces
 
std::map< types::subdomain_id, std::map< CellId, unsigned int > > recv_n_faces
 
std::map< types::subdomain_id, std::map< CellId, CellId > > local_cell_ids_neigh_cell
 
std::map< types::subdomain_id, std::map< CellId, CellId > > recv_cell_ids_neigh_cell
 
std::map< types::subdomain_id, std::map< CellId, std::map< unsigned int, CellId > > > local_ghosted_master_id
 
std::map< types::subdomain_id, std::map< CellId, std::map< unsigned int, CellId > > > recv_ghosted_master_id
 
std::map< types::subdomain_id, std::map< CellId, std::map< unsigned int, bool > > > local_bdary_info
 
std::map< types::subdomain_id, std::map< CellId, std::map< unsigned int, bool > > > recv_bdary_info
 
std::map< types::subdomain_id, std::map< CellId, BoundingBox< dim > > > local_ghosted_bbox
 
std::map< types::subdomain_id, std::map< CellId, BoundingBox< dim > > > recv_ghosted_bbox
 
std::map< types::subdomain_id, std::map< CellId, std::vector< types::global_dof_index > > > local_ghost_dofs
 
std::map< types::subdomain_id, std::map< CellId, std::vector< types::global_dof_index > > > recv_ghost_dofs
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< Point< spacedim > > > > local_qpoints
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< double > > > local_jxws
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< Tensor< 1, spacedim > > > > local_normals
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< std::vector< double > > > > local_values
 
std::map< types::subdomain_id, std::map< std::pair< CellId, unsigned int >, std::vector< std::vector< Tensor< 1, spacedim > > > > > local_gradients
 
ObserverPointer< const Triangulation< dim, spacedim > > tria
 
ObserverPointer< const Mapping< dim, spacedim > > mapping
 
std::unique_ptr< GridTools::Cache< dim, spacedim > > cached_tria
 
const MPI_Comm communicator
 
std::unique_ptr< FiniteElement< dim > > fe
 
hp::FECollection< dim, spacedim > fe_collection
 
LinearAlgebra::distributed::Vector< double > euler_vector
 
std::unique_ptr< ScratchDatastandard_scratch
 
std::unique_ptr< ScratchDataagglomerated_scratch
 
std::unique_ptr< NonMatching::FEImmersedSurfaceValues< spacedim > > agglomerated_isv
 
std::unique_ptr< NonMatching::FEImmersedSurfaceValues< spacedim > > agglomerated_isv_neigh
 
std::unique_ptr< NonMatching::FEImmersedSurfaceValues< spacedim > > agglomerated_isv_bdary
 
boost::signals2::connection tria_listener
 
UpdateFlags agglomeration_flags
 
const UpdateFlags internal_agglomeration_flags
 
UpdateFlags agglomeration_face_flags
 
const UpdateFlags internal_agglomeration_face_flags
 
Quadrature< dim > agglomeration_quad
 
Quadrature< dim - 1 > agglomeration_face_quad
 
std::unordered_map< types::global_cell_index, std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > > master2slaves
 
std::map< types::global_cell_index, types::global_cell_indexmaster2polygon
 
std::vector< typename Triangulation< dim >::active_cell_iterator > master_disconnected
 
FE_Nothing< dim, spacedim > dummy_fe
 
std::unique_ptr< FEValues< dim, spacedim > > no_values
 
std::unique_ptr< FEFaceValues< dim, spacedim > > no_face_values
 
std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > master_cells_container
 
internal::PolytopeCache< dim, spacedim > polytope_cache
 
bool hybrid_mesh
 
std::map< std::pair< types::global_cell_index, types::global_cell_index >, std::vector< types::global_cell_index > > parent_child_info
 
unsigned int present_extraction_level
 

Friends

template<int , int >
class AgglomerationIterator
 
template<int , int >
class AgglomerationAccessor
 
class internal::AgglomerationHandlerImplementation< dim, spacedim >
 

Additional Inherited Members

- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

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

#TODO: Documentation.

Definition at line 171 of file agglomeration_handler.h.

Member Typedef Documentation

◆ agglomeration_iterator

template<int dim, int spacedim = dim>
using AgglomerationHandler< dim, spacedim >::agglomeration_iterator = AgglomerationIterator<dim, spacedim>

Definition at line 174 of file agglomeration_handler.h.

◆ AgglomerationContainer

template<int dim, int spacedim = dim>
using AgglomerationHandler< dim, spacedim >::AgglomerationContainer
Initial value:
typename AgglomerationAccessor< dim, spacedim >::AgglomerationContainer AgglomerationContainer

Definition at line 176 of file agglomeration_handler.h.

◆ ScratchData

template<int dim, int spacedim = dim>
using AgglomerationHandler< dim, spacedim >::ScratchData = MeshWorker::ScratchData<dim, spacedim>
private

Definition at line 651 of file agglomeration_handler.h.

Member Enumeration Documentation

◆ CellAgglomerationType

template<int dim, int spacedim = dim>
enum AgglomerationHandler::CellAgglomerationType
Enumerator
master 
slave 

Definition at line 180 of file agglomeration_handler.h.

Constructor & Destructor Documentation

◆ AgglomerationHandler() [1/2]

◆ AgglomerationHandler() [2/2]

template<int dim, int spacedim = dim>
AgglomerationHandler< dim, spacedim >::AgglomerationHandler ( )
default

◆ ~AgglomerationHandler()

template<int dim, int spacedim = dim>
AgglomerationHandler< dim, spacedim >::~AgglomerationHandler ( )
inline

Member Function Documentation

◆ agglomerated_quadrature()

template<int dim, int spacedim = dim>
Quadrature< dim > AgglomerationHandler< dim, spacedim >::agglomerated_quadrature ( const AgglomerationContainer & cells,
const typename Triangulation< dim, spacedim >::active_cell_iterator & master_cell ) const

Return the agglomerated quadrature for the given agglomeration. This amounts to loop over all cells in an agglomeration and collecting together all the rules.

Definition at line 438 of file agglomeration_handler.cc.

References Assert, and w().

◆ are_cells_agglomerated()

template<int dim, int spacedim>
bool AgglomerationHandler< dim, spacedim >::are_cells_agglomerated ( const typename Triangulation< dim, spacedim >::active_cell_iterator & cell,
const typename Triangulation< dim, spacedim >::active_cell_iterator & other_cell ) const
inlineprivate

Returns true if the two given cells are agglomerated together.

Definition at line 1081 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ at_boundary()

template<int dim, int spacedim>
bool AgglomerationHandler< dim, spacedim >::at_boundary ( const typename DoFHandler< dim, spacedim >::active_cell_iterator & cell,
const unsigned int f ) const
inline

This function generalizes the behaviour of cell->face(f)->at_boundary() in the case where f is an index out of the range [0,..., n_faces). In practice, if you call this function with a standard deal.II cell, you have precisely the same result as calling cell->face(f)->at_boundary(). Otherwise, if the cell is a master one, you have a boolean returning true is that face for the agglomeration is on the boundary or not.

Definition at line 1014 of file agglomeration_handler.h.

References Assert, and first.

◆ begin() [1/2]

template<int dim, int spacedim>
AgglomerationIterator< dim, spacedim > AgglomerationHandler< dim, spacedim >::begin ( )

Iterator to the first polytope.

Definition at line 1128 of file agglomeration_handler.h.

References Assert.

◆ begin() [2/2]

template<int dim, int spacedim>
AgglomerationIterator< dim, spacedim > AgglomerationHandler< dim, spacedim >::begin ( ) const

Iterator to the first polytope.

Definition at line 1117 of file agglomeration_handler.h.

References Assert.

◆ cell_to_polytope_index()

template<int dim, int spacedim>
types::global_cell_index AgglomerationHandler< dim, spacedim >::cell_to_polytope_index ( const typename Triangulation< dim, spacedim >::active_cell_iterator & cell) const
inline

◆ connect_hierarchy()

template<int dim, int spacedim>
template<typename RtreeType >
void AgglomerationHandler< dim, spacedim >::connect_hierarchy ( const CellsAgglomerator< dim, RtreeType > & agglomerator)

◆ connect_to_tria_signals()

template<int dim, int spacedim = dim>
void AgglomerationHandler< dim, spacedim >::connect_to_tria_signals ( )
inlineprivate

◆ create_agglomeration_sparsity_pattern()

template<int dim, int spacedim>
template<typename SparsityPatternType , typename Number >
template void AgglomerationHandler< dim, spacedim >::create_agglomeration_sparsity_pattern ( SparsityPatternType & sparsity_pattern,
const AffineConstraints< Number > & constraints = AffineConstraints< Number >(),
const bool keep_constrained_dofs = true,
const types::subdomain_id subdomain_id = numbers::invalid_subdomain_id )

Given a Triangulation with some agglomerated cells, create the sparsity pattern corresponding to a Discontinuous Galerkin discretization where the agglomerated cells are seen as one unique cell, with only the DoFs associated to the master cell of the agglomeration.

Definition at line 670 of file agglomeration_handler.cc.

References AffineConstraints< typename number >::add_entries_local_to_global(), Assert, AssertThrow, DoFTools::extract_locally_relevant_dofs(), DoFTools::make_sparsity_pattern(), IndexSet::size(), AgglomerationIterator< dim, spacedim >::state(), and IteratorState::valid.

◆ create_bounding_box()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::create_bounding_box ( const AgglomerationContainer & polytope)
private

Construct bounding boxes for an agglomeration described by a sequence of cells. This fills also the euler vector

Definition at line 292 of file agglomeration_handler.cc.

References Assert.

◆ define_agglomerate()

template<int dim, int spacedim>
AgglomerationHandler< dim, spacedim >::agglomeration_iterator AgglomerationHandler< dim, spacedim >::define_agglomerate ( const AgglomerationContainer & cells)

Store internally that the given cells are agglomerated. The convenction we take is the following: -1: cell is a master cell

Note
cells are assumed to be adjacent one to each other, and no check about this is done.

Definition at line 46 of file agglomeration_handler.cc.

References Assert, and numbers::invalid_subdomain_id.

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

◆ define_agglomerate_with_check()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::define_agglomerate_with_check ( const AgglomerationContainer & cells)

Same as above, but checking that every vector of cells is connected. If not, each connected component is agglomerated by calling the define_agglomerate() function defined above.

Definition at line 110 of file agglomeration_handler.cc.

References Assert, Utils::compute_connected_components(), and Utils::create_graph_from_agglomerate().

◆ distribute_agglomerated_dofs()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::distribute_agglomerated_dofs ( const FiniteElement< dim > & fe_space)

Distribute degrees of freedom on a grid where some cells have been agglomerated.

Definition at line 235 of file agglomeration_handler.cc.

References AssertThrow, and FiniteElement< int dim, int spacedim >::degree.

◆ end() [1/2]

template<int dim, int spacedim>
AgglomerationIterator< dim, spacedim > AgglomerationHandler< dim, spacedim >::end ( )

Iterator to one past the last polygonal element.

Definition at line 1150 of file agglomeration_handler.h.

References Assert.

◆ end() [2/2]

template<int dim, int spacedim>
AgglomerationIterator< dim, spacedim > AgglomerationHandler< dim, spacedim >::end ( ) const

Iterator to one past the last polygonal element.

Definition at line 1139 of file agglomeration_handler.h.

References Assert.

◆ exchange_interface_values()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::exchange_interface_values ( )

Definition at line 347 of file agglomeration_handler.cc.

◆ get_agglomerate()

template<int dim, int spacedim>
std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > AgglomerationHandler< dim, spacedim >::get_agglomerate ( const typename Triangulation< dim, spacedim >::active_cell_iterator & master_cell) const
inline

TODO: remove this in favour of the accessor version.

Parameters
master_cell
Returns
std::vector< typename Triangulation<dim, spacedim>::active_cell_iterator>

Definition at line 954 of file agglomeration_handler.h.

References Assert.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ get_agglomeration_mapping()

template<int dim, int spacedim>
const MappingBox< dim > & AgglomerationHandler< dim, spacedim >::get_agglomeration_mapping ( ) const
inline

Definition at line 900 of file agglomeration_handler.h.

◆ get_dof_handler()

template<int dim, int spacedim>
const DoFHandler< dim, spacedim > & AgglomerationHandler< dim, spacedim >::get_dof_handler ( ) const
inline

Return a constant reference to the DoFHandler underlying the agglomeration. It knows which cell have been agglomerated, and which FE spaces are present on each cell of the triangulation.

Definition at line 968 of file agglomeration_handler.h.

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

◆ get_fe()

template<int dim, int spacedim>
const FiniteElement< dim, spacedim > & AgglomerationHandler< dim, spacedim >::get_fe ( ) const
inline

◆ get_interface()

template<int dim, int spacedim>
decltype(auto) AgglomerationHandler< dim, spacedim >::get_interface ( ) const
inline

Definition at line 936 of file agglomeration_handler.h.

◆ get_local_bboxes()

◆ get_mapping()

template<int dim, int spacedim>
const Mapping< dim > & AgglomerationHandler< dim, spacedim >::get_mapping ( ) const
inline

◆ get_master_idx_of_cell()

template<int dim, int spacedim>
types::global_cell_index AgglomerationHandler< dim, spacedim >::get_master_idx_of_cell ( const typename Triangulation< dim, spacedim >::active_cell_iterator & cell) const
inlineprivate

Definition at line 1067 of file agglomeration_handler.h.

◆ get_mesh_size()

template<int dim, int spacedim = dim>
double AgglomerationHandler< dim, spacedim >::get_mesh_size ( ) const

Return the mesh size of the polytopal mesh. It simply takes the maximum diameter over all the polytopes.

◆ get_relationships()

template<int dim, int spacedim>
const LinearAlgebra::distributed::Vector< float > & AgglomerationHandler< dim, spacedim >::get_relationships ( ) const
inline

Definition at line 945 of file agglomeration_handler.h.

◆ get_slaves_of_idx()

template<int dim, int spacedim>
const std::vector< typename Triangulation< dim, spacedim >::active_cell_iterator > & AgglomerationHandler< dim, spacedim >::get_slaves_of_idx ( types::global_cell_index idx) const
inline

Find (if any) the cells that have the given master index. Note that idx is as it can be equal to -1 (meaning that the cell is a master one).

Definition at line 978 of file agglomeration_handler.h.

Referenced by dealii::PolyUtils::fill_interpolation_matrix(), and dealii::PolyUtils::internal::interpolate_to_fine_grid().

◆ get_triangulation()

◆ initialize_agglomeration_data()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::initialize_agglomeration_data ( const std::unique_ptr< GridTools::Cache< dim, spacedim > > & cache_tria)
private

◆ initialize_fe_values()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::initialize_fe_values ( const Quadrature< dim > & cell_quadrature = QGauss<dim>(1),
const UpdateFlags & flags = UpdateFlags::update_default,
const Quadrature< dim - 1 > & face_quadrature = QGauss<dim - 1>(1),
const UpdateFlags & face_flags = UpdateFlags::update_default )

Set the degree of the quadrature formula to be used and the proper flags for the FEValues object on the agglomerated cell.

Definition at line 148 of file agglomeration_handler.cc.

References update_JxW_values, update_normal_vectors, and update_quadrature_points.

◆ initialize_hp_structure()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::initialize_hp_structure ( )
private

Assign a finite element index on each cell of a triangulation, depending if it is a master cell, a slave cell, or a standard deal.II cell. A user doesn't need to know the internals of this, the only thing that is relevant is that after the call to the present function, DoFs are distributed in a different way if a cell is a master, slave, or standard cell.

Definition at line 482 of file agglomeration_handler.cc.

References Assert.

◆ is_master_cell()

template<int dim, int spacedim>
template<typename CellIterator >
bool AgglomerationHandler< dim, spacedim >::is_master_cell ( const CellIterator & cell) const
inline

◆ is_slave_cell()

template<int dim, int spacedim>
template<typename CellIterator >
bool AgglomerationHandler< dim, spacedim >::is_slave_cell ( const CellIterator & cell) const
inlineprivate

Helper function to determine whether or not a cell is a slave cell, without any information about his parents.

Definition at line 1004 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ is_slave_cell_of()

template<int dim, int spacedim>
Triangulation< dim, spacedim >::active_cell_iterator & AgglomerationHandler< dim, spacedim >::is_slave_cell_of ( const typename Triangulation< dim, spacedim >::active_cell_iterator & cell)
inlineprivate

Helper function to determine whether or not a cell is a slave cell. Instead of returning a boolean, it gives the index of the master cell. If it's a master cell, then the it returns -1, by construction.

Definition at line 1057 of file agglomeration_handler.h.

◆ last()

template<int dim, int spacedim>
AgglomerationIterator< dim, spacedim > AgglomerationHandler< dim, spacedim >::last ( )

Iterator to the last polygonal element.

Definition at line 1161 of file agglomeration_handler.h.

References Assert.

◆ n_agglomerated_faces_per_cell()

template<int dim, int spacedim>
unsigned int AgglomerationHandler< dim, spacedim >::n_agglomerated_faces_per_cell ( const typename Triangulation< dim, spacedim >::active_cell_iterator & cell) const

Return the number of agglomerated faces for a generic deal.II cell.

Definition at line 178 of file agglomeration_handler.cc.

◆ n_agglomerates()

template<int dim, int spacedim>
unsigned int AgglomerationHandler< dim, spacedim >::n_agglomerates ( ) const
inline

Returns the number of agglomerate cells in the grid.

Definition at line 1097 of file agglomeration_handler.h.

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

◆ n_dofs()

template<int dim, int spacedim>
types::global_dof_index AgglomerationHandler< dim, spacedim >::n_dofs ( ) const
inlinenoexcept

Definition at line 1038 of file agglomeration_handler.h.

Referenced by Utils::fill_injection_matrix().

◆ n_dofs_per_cell()

template<int dim, int spacedim>
unsigned int AgglomerationHandler< dim, spacedim >::n_dofs_per_cell ( ) const
inlinenoexcept

◆ polytope_boundary()

template<int dim, int spacedim>
const std::vector< typename Triangulation< dim >::active_face_iterator > & AgglomerationHandler< dim, spacedim >::polytope_boundary ( const typename Triangulation< dim >::active_cell_iterator & cell)
inline

Return the collection of vertices describing the boundary of the polytope associated to the master cell cell. The return type is meant to describe a sequence of edges (in 2D) or faces (in 3D).

Definition at line 1047 of file agglomeration_handler.h.

◆ polytope_iterators()

◆ polytope_to_dh_iterator()

template<int dim, int spacedim>
const DoFHandler< dim, spacedim >::active_cell_iterator AgglomerationHandler< dim, spacedim >::polytope_to_dh_iterator ( const types::global_cell_index polytope_index) const
inline

Given the index of a polytopic element, return a DoFHandler iterator for which DoFs associated to that polytope can be queried.

Definition at line 1106 of file agglomeration_handler.h.

Referenced by Utils::fill_injection_matrix().

◆ print_agglomeration()

template<int dim, int spacedim = dim>
template<class StreamType >
void AgglomerationHandler< dim, spacedim >::print_agglomeration ( StreamType & out)
inline

Display the indices of the vector identifying which cell is agglomerated with which master.

Definition at line 362 of file agglomeration_handler.h.

References AgglomerationHandler< dim, spacedim >::master_slave_relationships, and AgglomerationHandler< dim, spacedim >::tria.

◆ reinit() [1/2]

template<int dim, int spacedim>
const FEValues< dim, spacedim > & AgglomerationHandler< dim, spacedim >::reinit ( const AgglomerationIterator< dim, spacedim > & polytope) const

Construct a finite element space on the agglomeration.

Definition at line 500 of file agglomeration_handler.cc.

Referenced by dealii::PolyUtils::assemble_dg_matrix(), dealii::PolyUtils::compute_global_error(), and dealii::PolyUtils::compute_quality_metrics().

◆ reinit() [2/2]

template<int dim, int spacedim>
const FEValuesBase< dim, spacedim > & AgglomerationHandler< dim, spacedim >::reinit ( const AgglomerationIterator< dim, spacedim > & polytope,
const unsigned int face_index ) const

For a given polytope and face index, initialize shape functions, normals and quadratures rules to integrate there.

Definition at line 544 of file agglomeration_handler.cc.

References Assert, and dealii::internal::AgglomerationHandlerImplementation< int, int >::reinit_master().

◆ reinit_interface()

template<int dim, int spacedim>
std::pair< const FEValuesBase< dim, spacedim > &, const FEValuesBase< dim, spacedim > & > AgglomerationHandler< dim, spacedim >::reinit_interface ( const AgglomerationIterator< dim, spacedim > & polytope_in,
const AgglomerationIterator< dim, spacedim > & neigh_polytope,
const unsigned int local_in,
const unsigned int local_outside ) const

Return a pair of FEValuesBase object reinited from the two sides of the agglomeration.

Definition at line 565 of file agglomeration_handler.cc.

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

◆ reinit_master()

template<int dim, int spacedim>
const FEValuesBase< dim, spacedim > & AgglomerationHandler< dim, spacedim >::reinit_master ( const typename DoFHandler< dim, spacedim >::active_cell_iterator & cell,
const unsigned int face_number,
std::unique_ptr< NonMatching::FEImmersedSurfaceValues< spacedim > > & agglo_isv_ptr ) const
private

Helper function to call reinit on a master cell.

Definition at line 530 of file agglomeration_handler.cc.

◆ setup_connectivity_of_agglomeration()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::setup_connectivity_of_agglomeration ( )
private

Initialize all the necessary connectivity information for an agglomeration. #TODO: loop over polytopes, avoid using explicitly master cells.

Definition at line 311 of file agglomeration_handler.cc.

References Assert, Utilities::MPI::job_supports_mpi(), dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity(), and Utilities::MPI::some_to_some().

◆ setup_ghost_polytopes()

template<int dim, int spacedim>
void AgglomerationHandler< dim, spacedim >::setup_ghost_polytopes ( )

This function stores the information needed to identify which polytopes are ghosted w.r.t the local partition. The issue this function addresses is due to the fact that the layer of ghost cells is made by just one layer of deal.II cells. Therefore, the neighboring polytopes will always be made by some ghost cells and artificial ones. This implies that we need to communicate the missing information from the neighboring rank.

Definition at line 741 of file agglomeration_handler.cc.

References Assert, and Utilities::MPI::some_to_some().

◆ update_agglomerate()

template<int dim, int spacedim = dim>
void AgglomerationHandler< dim, spacedim >::update_agglomerate ( AgglomerationContainer & polytope,
const typename Triangulation< dim, spacedim >::active_cell_iterator & master_cell )
private

Friends And Related Symbol Documentation

◆ AgglomerationAccessor

template<int dim, int spacedim = dim>
template<int , int >
friend class AgglomerationAccessor
friend

Definition at line 240 of file agglomeration_handler.h.

◆ AgglomerationIterator

template<int dim, int spacedim = dim>
template<int , int >
friend class AgglomerationIterator
friend

Definition at line 237 of file agglomeration_handler.h.

◆ internal::AgglomerationHandlerImplementation< dim, spacedim >

template<int dim, int spacedim = dim>
friend class internal::AgglomerationHandlerImplementation< dim, spacedim >
friend

Definition at line 858 of file agglomeration_handler.h.

Member Data Documentation

◆ agglo_dh

template<int dim, int spacedim = dim>
DoFHandler<dim, spacedim> AgglomerationHandler< dim, spacedim >::agglo_dh

◆ agglomerated_isv

template<int dim, int spacedim = dim>
std::unique_ptr<NonMatching::FEImmersedSurfaceValues<spacedim> > AgglomerationHandler< dim, spacedim >::agglomerated_isv
mutableprivate

Definition at line 798 of file agglomeration_handler.h.

◆ agglomerated_isv_bdary

template<int dim, int spacedim = dim>
std::unique_ptr<NonMatching::FEImmersedSurfaceValues<spacedim> > AgglomerationHandler< dim, spacedim >::agglomerated_isv_bdary
mutableprivate

Definition at line 804 of file agglomeration_handler.h.

◆ agglomerated_isv_neigh

template<int dim, int spacedim = dim>
std::unique_ptr<NonMatching::FEImmersedSurfaceValues<spacedim> > AgglomerationHandler< dim, spacedim >::agglomerated_isv_neigh
mutableprivate

Definition at line 801 of file agglomeration_handler.h.

◆ agglomerated_scratch

template<int dim, int spacedim = dim>
std::unique_ptr<ScratchData> AgglomerationHandler< dim, spacedim >::agglomerated_scratch
mutableprivate

Fill this up in reinit(cell), for agglomerated cells, using the custom quadrature, and return the result of scratch.reinit(cell);

Definition at line 794 of file agglomeration_handler.h.

◆ agglomeration_face_flags

template<int dim, int spacedim = dim>
UpdateFlags AgglomerationHandler< dim, spacedim >::agglomeration_face_flags
private

◆ agglomeration_face_quad

template<int dim, int spacedim = dim>
Quadrature<dim - 1> AgglomerationHandler< dim, spacedim >::agglomeration_face_quad
private

◆ agglomeration_flags

template<int dim, int spacedim = dim>
UpdateFlags AgglomerationHandler< dim, spacedim >::agglomeration_flags
private

Definition at line 808 of file agglomeration_handler.h.

◆ agglomeration_quad

template<int dim, int spacedim = dim>
Quadrature<dim> AgglomerationHandler< dim, spacedim >::agglomeration_quad
private

Definition at line 820 of file agglomeration_handler.h.

◆ bboxes

template<int dim, int spacedim = dim>
std::vector<BoundingBox<spacedim> > AgglomerationHandler< dim, spacedim >::bboxes
private

Vector of BoundingBoxes s.t. bboxes[idx] equals BBOx associated to the agglomeration with master cell indexed by ìdx`. Othwerwise default BBox is empty

Definition at line 672 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::reinit_master().

◆ box_mapping

template<int dim, int spacedim = dim>
std::unique_ptr<MappingBox<dim> > AgglomerationHandler< dim, spacedim >::box_mapping

◆ cached_tria

template<int dim, int spacedim = dim>
std::unique_ptr<GridTools::Cache<dim, spacedim> > AgglomerationHandler< dim, spacedim >::cached_tria
private

◆ communicator

template<int dim, int spacedim = dim>
const MPI_Comm AgglomerationHandler< dim, spacedim >::communicator
private

Definition at line 769 of file agglomeration_handler.h.

◆ dummy_fe

template<int dim, int spacedim = dim>
FE_Nothing<dim, spacedim> AgglomerationHandler< dim, spacedim >::dummy_fe
private

Dummy FE_Nothing

Definition at line 842 of file agglomeration_handler.h.

◆ euler_vector

template<int dim, int spacedim = dim>
LinearAlgebra::distributed::Vector<double> AgglomerationHandler< dim, spacedim >::euler_vector
private

Eulerian vector describing the new cells obtained by the bounding boxes

Definition at line 780 of file agglomeration_handler.h.

◆ fe

template<int dim, int spacedim = dim>
std::unique_ptr<FiniteElement<dim> > AgglomerationHandler< dim, spacedim >::fe
private

◆ fe_collection

template<int dim, int spacedim = dim>
hp::FECollection<dim, spacedim> AgglomerationHandler< dim, spacedim >::fe_collection
private

Definition at line 775 of file agglomeration_handler.h.

◆ hybrid_mesh

template<int dim, int spacedim = dim>
bool AgglomerationHandler< dim, spacedim >::hybrid_mesh
private

Bool that keeps track whether the mesh is composed also by standard deal.II cells as (trivial) polytopes.

Definition at line 868 of file agglomeration_handler.h.

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

◆ internal_agglomeration_face_flags

template<int dim, int spacedim = dim>
const UpdateFlags AgglomerationHandler< dim, spacedim >::internal_agglomeration_face_flags
private
Initial value:

Definition at line 816 of file agglomeration_handler.h.

◆ internal_agglomeration_flags

template<int dim, int spacedim = dim>
const UpdateFlags AgglomerationHandler< dim, spacedim >::internal_agglomeration_flags
private

◆ local_bdary_info

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::map<unsigned int, bool> > > AgglomerationHandler< dim, spacedim >::local_bdary_info
mutableprivate

◆ local_cell_ids_neigh_cell

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, CellId> > AgglomerationHandler< dim, spacedim >::local_cell_ids_neigh_cell
mutableprivate

Definition at line 687 of file agglomeration_handler.h.

◆ local_ghost_dofs

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::vector<types::global_dof_index> > > AgglomerationHandler< dim, spacedim >::local_ghost_dofs
mutableprivate

Definition at line 724 of file agglomeration_handler.h.

◆ local_ghosted_bbox

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, BoundingBox<dim> > > AgglomerationHandler< dim, spacedim >::local_ghosted_bbox
mutableprivate

Definition at line 716 of file agglomeration_handler.h.

◆ local_ghosted_master_id

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::map<unsigned int, CellId> > > AgglomerationHandler< dim, spacedim >::local_ghosted_master_id
mutableprivate

◆ local_gradients

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<std::vector<Tensor<1, spacedim> > > > > AgglomerationHandler< dim, spacedim >::local_gradients
mutableprivate

Definition at line 757 of file agglomeration_handler.h.

◆ local_jxws

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<double> > > AgglomerationHandler< dim, spacedim >::local_jxws
mutableprivate

Definition at line 740 of file agglomeration_handler.h.

◆ local_n_faces

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, unsigned int> > AgglomerationHandler< dim, spacedim >::local_n_faces
mutableprivate

◆ local_normals

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<Tensor<1, spacedim> > > > AgglomerationHandler< dim, spacedim >::local_normals
mutableprivate

Definition at line 746 of file agglomeration_handler.h.

◆ local_qpoints

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<Point<spacedim> > > > AgglomerationHandler< dim, spacedim >::local_qpoints
mutableprivate

Definition at line 734 of file agglomeration_handler.h.

◆ local_values

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<std::vector<double> > > > AgglomerationHandler< dim, spacedim >::local_values
mutableprivate

Definition at line 752 of file agglomeration_handler.h.

◆ mapping

template<int dim, int spacedim = dim>
ObserverPointer<const Mapping<dim, spacedim> > AgglomerationHandler< dim, spacedim >::mapping
private

Definition at line 765 of file agglomeration_handler.h.

◆ master2polygon

◆ master2slaves

template<int dim, int spacedim = dim>
std::unordered_map< types::global_cell_index, std::vector<typename Triangulation<dim, spacedim>::active_cell_iterator> > AgglomerationHandler< dim, spacedim >::master2slaves
private

Definition at line 828 of file agglomeration_handler.h.

◆ master_cells_container

template<int dim, int spacedim = dim>
std::vector<typename Triangulation<dim, spacedim>::active_cell_iterator> AgglomerationHandler< dim, spacedim >::master_cells_container
private

A contiguous container for all of the master cells.

Definition at line 858 of file agglomeration_handler.h.

◆ master_disconnected

template<int dim, int spacedim = dim>
std::vector<typename Triangulation<dim>::active_cell_iterator> AgglomerationHandler< dim, spacedim >::master_disconnected
private

Definition at line 835 of file agglomeration_handler.h.

◆ master_slave_relationships

template<int dim, int spacedim = dim>
LinearAlgebra::distributed::Vector<float> AgglomerationHandler< dim, spacedim >::master_slave_relationships
private

Vector of indices such that v[cell->active_cell_index()] returns { -1 if cell is a master cell { cell_master->active_cell_index(), i.e. the index of the master cell if cell is a slave cell.

Definition at line 641 of file agglomeration_handler.h.

Referenced by AgglomerationHandler< dim, spacedim >::print_agglomeration(), and dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ master_slave_relationships_iterators

template<int dim, int spacedim = dim>
std::map<types::global_cell_index, typename Triangulation<dim, spacedim>::active_cell_iterator> AgglomerationHandler< dim, spacedim >::master_slave_relationships_iterators
private

Same as the one above, but storing cell iterators rather than indices.

Definition at line 649 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ n_agglomerations

template<int dim, int spacedim = dim>
unsigned int AgglomerationHandler< dim, spacedim >::n_agglomerations
private

Record the number of agglomerations on the grid.

Definition at line 632 of file agglomeration_handler.h.

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

◆ no_face_values

template<int dim, int spacedim = dim>
std::unique_ptr<FEFaceValues<dim, spacedim> > AgglomerationHandler< dim, spacedim >::no_face_values
private

Dummy FEFaceValues, needed for face quadratures.

Definition at line 852 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::reinit_master().

◆ no_values

template<int dim, int spacedim = dim>
std::unique_ptr<FEValues<dim, spacedim> > AgglomerationHandler< dim, spacedim >::no_values
private

Dummy FEValues, needed for cell quadratures.

Definition at line 847 of file agglomeration_handler.h.

◆ number_of_agglomerated_faces

template<int dim, int spacedim = dim>
std::vector<types::global_cell_index> AgglomerationHandler< dim, spacedim >::number_of_agglomerated_faces
mutableprivate

◆ output_dh

template<int dim, int spacedim = dim>
DoFHandler<dim, spacedim> AgglomerationHandler< dim, spacedim >::output_dh

◆ parent_child_info

template<int dim, int spacedim = dim>
std::map<std::pair<types::global_cell_index, types::global_cell_index>, std::vector<types::global_cell_index> > AgglomerationHandler< dim, spacedim >::parent_child_info
private

Definition at line 872 of file agglomeration_handler.h.

◆ polygon_boundary

template<int dim, int spacedim = dim>
std::map< const typename Triangulation<dim, spacedim>::active_cell_iterator, std::vector<typename Triangulation<dim>::active_face_iterator> > AgglomerationHandler< dim, spacedim >::polygon_boundary
mutableprivate

Associate a master cell (hence, a given polytope) to its boundary faces. The boundary is described through a vector of face iterators.

Definition at line 663 of file agglomeration_handler.h.

Referenced by dealii::internal::AgglomerationHandlerImplementation< int, int >::setup_master_neighbor_connectivity().

◆ polytope_cache

template<int dim, int spacedim = dim>
internal::PolytopeCache<dim, spacedim> AgglomerationHandler< dim, spacedim >::polytope_cache
private

◆ present_extraction_level

template<int dim, int spacedim = dim>
unsigned int AgglomerationHandler< dim, spacedim >::present_extraction_level
private

Definition at line 874 of file agglomeration_handler.h.

◆ recv_bdary_info

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::map<unsigned int, bool> > > AgglomerationHandler< dim, spacedim >::recv_bdary_info
mutableprivate

Definition at line 712 of file agglomeration_handler.h.

◆ recv_cell_ids_neigh_cell

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, CellId> > AgglomerationHandler< dim, spacedim >::recv_cell_ids_neigh_cell
mutableprivate

◆ recv_ghost_dofs

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::vector<types::global_dof_index> > > AgglomerationHandler< dim, spacedim >::recv_ghost_dofs
mutableprivate

Definition at line 728 of file agglomeration_handler.h.

◆ recv_ghosted_bbox

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, BoundingBox<dim> > > AgglomerationHandler< dim, spacedim >::recv_ghosted_bbox
mutableprivate

Definition at line 719 of file agglomeration_handler.h.

◆ recv_ghosted_master_id

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, std::map<unsigned int, CellId> > > AgglomerationHandler< dim, spacedim >::recv_ghosted_master_id
mutableprivate

Definition at line 703 of file agglomeration_handler.h.

◆ recv_gradients

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<std::vector<Tensor<1, spacedim> > > > > AgglomerationHandler< dim, spacedim >::recv_gradients
mutable

Definition at line 514 of file agglomeration_handler.h.

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

◆ recv_jxws

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<double> > > AgglomerationHandler< dim, spacedim >::recv_jxws
mutable

Definition at line 499 of file agglomeration_handler.h.

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

◆ recv_n_faces

template<int dim, int spacedim = dim>
std::map<types::subdomain_id, std::map<CellId, unsigned int> > AgglomerationHandler< dim, spacedim >::recv_n_faces
mutableprivate

Definition at line 682 of file agglomeration_handler.h.

◆ recv_normals

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<Tensor<1, spacedim> > > > AgglomerationHandler< dim, spacedim >::recv_normals
mutable

Definition at line 504 of file agglomeration_handler.h.

◆ recv_qpoints

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<Point<spacedim> > > > AgglomerationHandler< dim, spacedim >::recv_qpoints
mutable

Definition at line 494 of file agglomeration_handler.h.

◆ recv_values

template<int dim, int spacedim = dim>
std::map< types::subdomain_id, std::map<std::pair<CellId, unsigned int>, std::vector<std::vector<double> > > > AgglomerationHandler< dim, spacedim >::recv_values
mutable

Definition at line 509 of file agglomeration_handler.h.

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

◆ standard_scratch

template<int dim, int spacedim = dim>
std::unique_ptr<ScratchData> AgglomerationHandler< dim, spacedim >::standard_scratch
mutableprivate

Use this in reinit(cell) for (non-agglomerated, standard) cells, and return the result of scratch.reinit(cell) for cells

Definition at line 787 of file agglomeration_handler.h.

◆ tria

◆ tria_listener

template<int dim, int spacedim = dim>
boost::signals2::connection AgglomerationHandler< dim, spacedim >::tria_listener
private

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