Reference documentation for deal.II version Git e87e13460a 2021-10-28 06:28:57 +0200
\(\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  PolynomialCoarseningSequenceType { PolynomialCoarseningSequenceType::bisect, PolynomialCoarseningSequenceType::decrease_by_one, PolynomialCoarseningSequenceType::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)
 
template<int dim, int spacedim>
std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > create_geometric_coarsening_sequence (Triangulation< dim, spacedim > &tria, const RepartitioningPolicyTools::Base< dim, spacedim > &policy, const bool preserve_fine_triangulation, const bool repartition_fine_triangulation)
 
template<int dim, int spacedim>
std::vector< std::shared_ptr< const Triangulation< dim, spacedim > > > create_geometric_coarsening_sequence (const Triangulation< dim, spacedim > &tria, const RepartitioningPolicyTools::Base< dim, spacedim > &policy, const bool repartition_fine_triangulation=false)
 

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 59 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() [1/3]

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, not implemented for parallel::fullydistributed::Triangulation.
The type of the returned triangulations is the same as of the input triangulation.

◆ create_geometric_coarsening_sequence() [2/3]

template<int dim, int spacedim>
std::vector<std::shared_ptr<const Triangulation<dim, spacedim> > > MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence ( Triangulation< dim, spacedim > &  tria,
const RepartitioningPolicyTools::Base< dim, spacedim > &  policy,
const bool  preserve_fine_triangulation,
const bool  repartition_fine_triangulation 
)

Similar to the above function but also taking a policy for repartitioning the triangulations on the coarser levels. If preserve_fine_triangulation is set, the input triangulation is not altered, else the triangulation is coarsened. If repartition_fine_triangulation is set, the triangulation on the finest level is repartitioned as well. If the flags are set to true/false, the input triangulation is simply used as the finest triangulation.

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

◆ create_geometric_coarsening_sequence() [3/3]

template<int dim, int spacedim>
std::vector<std::shared_ptr<const Triangulation<dim, spacedim> > > MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence ( const Triangulation< dim, spacedim > &  tria,
const RepartitioningPolicyTools::Base< dim, spacedim > &  policy,
const bool  repartition_fine_triangulation = false 
)

Similar to the above function but taking in a constant version of tria and as a consequence not allowing to directly use it for coarsening, requiring that internally a temporal copy is created.