deal.II version GIT relicensing-2287-g6548a49e0a 2024-12-20 18:30:00+00:00
\(\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\}}\)
Loading...
Searching...
No Matches
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)
 
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 126 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 22 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 43 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.