Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Functions
DoFRenumbering::boost Namespace Reference

Functions

template<typename DoFHandlerType >
void Cuthill_McKee (DoFHandlerType &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<typename DoFHandlerType >
void compute_Cuthill_McKee (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<typename DoFHandlerType >
void king_ordering (DoFHandlerType &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<typename DoFHandlerType >
void compute_king_ordering (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<typename DoFHandlerType >
void minimum_degree (DoFHandlerType &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<typename DoFHandlerType >
void compute_minimum_degree (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &, 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<typename DoFHandlerType >
void DoFRenumbering::boost::Cuthill_McKee ( DoFHandlerType &  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 125 of file dof_renumbering.cc.

◆ compute_Cuthill_McKee()

template<typename DoFHandlerType >
void DoFRenumbering::boost::compute_Cuthill_McKee ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandlerType &  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 145 of file dof_renumbering.cc.

◆ king_ordering()

template<typename DoFHandlerType >
void DoFRenumbering::boost::king_ordering ( DoFHandlerType &  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 187 of file dof_renumbering.cc.

◆ compute_king_ordering()

template<typename DoFHandlerType >
void DoFRenumbering::boost::compute_king_ordering ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandlerType &  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 207 of file dof_renumbering.cc.

◆ minimum_degree()

template<typename DoFHandlerType >
void DoFRenumbering::boost::minimum_degree ( DoFHandlerType &  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 243 of file dof_renumbering.cc.

◆ compute_minimum_degree()

template<typename DoFHandlerType >
void DoFRenumbering::boost::compute_minimum_degree ( std::vector< types::global_dof_index > &  new_dof_indices,
const DoFHandlerType &  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 263 of file dof_renumbering.cc.