Reference documentation for deal.II version Git 2aaa42d1ba 2020-09-23 13:17:36 +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\}}\)
Namespaces | Functions
DoFRenumbering::boost Namespace Reference

Namespaces

 boosttypes
 
 internal
 

Functions

template<int dim, int spacedim>
void Cuthill_McKee (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void compute_Cuthill_McKee (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void king_ordering (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void compute_king_ordering (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void minimum_degree (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void compute_minimum_degree (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &, const bool reversed_numbering=false, const bool use_constraints=false)
 

Detailed Description

A namespace for the implementation of some renumbering algorithms based on algorithms implemented in the Boost Graph Library (BGL) by Jeremy Siek and others.

While often slightly slower to compute, the algorithms using BOOST often lead to matrices with smaller bandwidths and sparse ILUs based on this numbering are therefore more efficient.

For a comparison of these algorithms with the ones defined in DoFRenumbering, see the comparison section in the documentation of the DoFRenumbering namespace.

Function Documentation

◆ Cuthill_McKee()

template<int dim, int spacedim>
void DoFRenumbering::boost::Cuthill_McKee ( DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Renumber the degrees of freedom according to the Cuthill-McKee method, eventually using the reverse numbering scheme.

See the general documentation of the parent class for details on the different methods.

As an example of the results of this algorithm, take a look at the comparison of various algorithms in the documentation of the DoFRenumbering namespace.

Definition at line 128 of file dof_renumbering.cc.

◆ compute_Cuthill_McKee()

template<int dim, int spacedim>
void DoFRenumbering::boost::compute_Cuthill_McKee ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Compute the renumbering vector needed by the Cuthill_McKee() function. Does not perform the renumbering on the DoFHandler dofs but returns the renumbering vector.

Definition at line 148 of file dof_renumbering.cc.

◆ king_ordering()

template<int dim, int spacedim>
void DoFRenumbering::boost::king_ordering ( DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Renumber the degrees of freedom based on the BOOST implementation of the King algorithm. This often results in slightly larger (by a few percent) bandwidths than the Cuthill-McKee algorithm, but sparse ILUs are often slightly (also by a few percent) better preconditioners.

As an example of the results of this algorithm, take a look at the comparison of various algorithms in the documentation of the DoFRenumbering namespace.

This algorithm is used in step-22.

Definition at line 190 of file dof_renumbering.cc.

◆ compute_king_ordering()

template<int dim, int spacedim>
void DoFRenumbering::boost::compute_king_ordering ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Compute the renumbering for the King algorithm but do not actually renumber the degrees of freedom in the DoF handler argument.

Definition at line 210 of file dof_renumbering.cc.

◆ minimum_degree()

template<int dim, int spacedim>
void DoFRenumbering::boost::minimum_degree ( DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Renumber the degrees of freedom based on the BOOST implementation of the minimum degree algorithm. Unlike the Cuthill-McKee algorithm, this algorithm does not attempt to minimize the bandwidth of a matrix but to minimize the amount of fill-in when doing an LU decomposition. It may sometimes yield better ILUs because of this property.

As an example of the results of this algorithm, take a look at the comparison of various algorithms in the documentation of the DoFRenumbering namespace.

Definition at line 246 of file dof_renumbering.cc.

◆ compute_minimum_degree()

template<int dim, int spacedim>
void DoFRenumbering::boost::compute_minimum_degree ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandler< dim, spacedim > &  dof_handler,
const bool  reversed_numbering = false,
const bool  use_constraints = false 
)

Compute the renumbering for the minimum degree algorithm but do not actually renumber the degrees of freedom in the DoF handler argument.

Definition at line 266 of file dof_renumbering.cc.