Reference documentation for deal.II version 9.3.3
\(\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\}}\)
Enumerations | Functions
MGTransferGlobalCoarseningTools Namespace Reference

Enumerations

enum class  PolynomialCoarseningSequenceType { bisect , decrease_by_one , go_to_one }
 

Functions

unsigned int create_next_polynomial_coarsening_degree (const unsigned int degree, const PolynomialCoarseningSequenceType &p_sequence)
 
std::vector< unsigned intcreate_polynomial_coarsening_sequence (const unsigned int max_degree, const PolynomialCoarseningSequenceType &p_sequence)
 
template<int dim, int spacedim>
std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > create_geometric_coarsening_sequence (const Triangulation< dim, spacedim > &tria)
 

Detailed Description

Global coarsening utility functions.

Enumeration Type Documentation

◆ PolynomialCoarseningSequenceType

Common polynomial coarsening sequences.

Note
These polynomial coarsening sequences up to a degree of 9 are precompiled in MGTwoLevelTransfer. See also: MGTwoLevelTransfer::fast_polynomial_transfer_supported()
Enumerator
bisect 

Half polynomial degree by integer division. For example, for degree=7 the following sequence would be obtained:: 7 -> 3 -> 1

decrease_by_one 

Decrease the polynomial degree by one. E.g., for degree=7 following sequence would result: 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1

go_to_one 

Decrease the polynomial degree to one. E.g., for degree=7 following sequence would result: 7 -> 1

Definition at line 52 of file mg_transfer_global_coarsening.h.

Function Documentation

◆ create_next_polynomial_coarsening_degree()

unsigned int MGTransferGlobalCoarseningTools::create_next_polynomial_coarsening_degree ( const unsigned int  degree,
const PolynomialCoarseningSequenceType p_sequence 
)

For a given degree and polynomial coarsening sequence p_sequence, determine the next coarser degree.

Definition at line 23 of file mg_transfer_global_coarsening.cc.

◆ create_polynomial_coarsening_sequence()

std::vector< unsigned int > MGTransferGlobalCoarseningTools::create_polynomial_coarsening_sequence ( const unsigned int  max_degree,
const PolynomialCoarseningSequenceType p_sequence 
)

For a given max_degree and polynomial coarsening sequence p_sequence, determine the full sequence of polynomial degrees, sorted in ascending order.

Definition at line 44 of file mg_transfer_global_coarsening.cc.

◆ create_geometric_coarsening_sequence()

template<int dim, int spacedim>
std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence ( const Triangulation< dim, spacedim > &  tria)

For a given triangulation tria, determine the geometric coarsening sequence by repeated global coarsening of the provided triangulation.

Note
For convenience, a reference to the input triangulation is stored in the last entry of the return vector.
Currently, only implemented for parallel::distributed::Triangulation.