Reference documentation for deal.II version 9.4.0
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)

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.

## ◆ PolynomialCoarseningSequenceType

 strong

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 63 of file mg_transfer_global_coarsening.h.

## ◆ 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. As a consequence, it can not be used for coarsening directly, so a temporary copy will be created internally.