deal.II version GIT relicensing-2169-gec1b43f35b 2024-11-22 07:10: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
Classes | Namespaces | Macros | Typedefs | Functions
dof_renumbering.cc File Reference
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/types.h>
#include <deal.II/base/utilities.h>
#include <deal.II/distributed/tria.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_renumbering.h>
#include <deal.II/dofs/dof_tools.h>
#include <deal.II/fe/fe.h>
#include <deal.II/fe/fe_q_base.h>
#include <deal.II/fe/mapping_q1.h>
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/hp/fe_collection.h>
#include <deal.II/hp/fe_values.h>
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/sparsity_pattern.h>
#include <deal.II/lac/sparsity_tools.h>
#include <deal.II/matrix_free/matrix_free.h>
#include <deal.II/multigrid/mg_constrained_dofs.h>
#include <deal.II/multigrid/mg_tools.h>
#include <boost/config.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/bandwidth.hpp>
#include <boost/graph/cuthill_mckee_ordering.hpp>
#include <boost/graph/king_ordering.hpp>
#include <boost/graph/minimum_degree_ordering.hpp>
#include <boost/graph/properties.hpp>
#include <boost/random.hpp>
#include <boost/random/uniform_int_distribution.hpp>
#include <algorithm>
#include <cmath>
#include <functional>
#include <map>
#include <vector>
#include "dof_renumbering.inst"

Go to the source code of this file.

Classes

struct  DoFRenumbering::internal::ClockCells< dim >
 

Namespaces

namespace  DoFRenumbering
 
namespace  DoFRenumbering::boost
 
namespace  DoFRenumbering::boost::boosttypes
 
namespace  DoFRenumbering::boost::internal
 
namespace  DoFRenumbering::internal
 

Macros

#define BOOST_BIND_GLOBAL_PLACEHOLDERS
 

Typedefs

using DoFRenumbering::boost::boosttypes::Graph = adjacency_list< vecS, vecS, undirectedS, property< vertex_color_t, default_color_type, property< vertex_degree_t, int > > >
 
using DoFRenumbering::boost::boosttypes::Vertex = graph_traits< Graph >::vertex_descriptor
 
using DoFRenumbering::boost::boosttypes::size_type = graph_traits< Graph >::vertices_size_type
 
using DoFRenumbering::boost::boosttypes::Pair = std::pair< size_type, size_type >
 

Functions

template<int dim, int spacedim>
void DoFRenumbering::boost::internal::create_graph (const DoFHandler< dim, spacedim > &dof_handler, const bool use_constraints, boosttypes::Graph &graph, boosttypes::property_map< boosttypes::Graph, boosttypes::vertex_degree_t >::type &graph_degree)
 
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)
 
template<int dim, int spacedim>
void DoFRenumbering::boost::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 DoFRenumbering::boost::king_ordering (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void DoFRenumbering::boost::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 DoFRenumbering::boost::minimum_degree (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
 
template<int dim, int spacedim>
void DoFRenumbering::boost::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)
 
template<int dim, int spacedim>
void DoFRenumbering::Cuthill_McKee (DoFHandler< dim, spacedim > &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false, const std::vector< types::global_dof_index > &starting_indices=std::vector< types::global_dof_index >())
 
template<int dim, int spacedim>
void DoFRenumbering::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, const std::vector< types::global_dof_index > &starting_indices=std::vector< types::global_dof_index >(), const unsigned int level=numbers::invalid_unsigned_int)
 
template<int dim, int spacedim>
void DoFRenumbering::Cuthill_McKee (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const bool reversed_numbering=false, const std::vector< types::global_dof_index > &starting_indices=std::vector< types::global_dof_index >())
 
template<int dim, int spacedim>
void DoFRenumbering::compute_cell_wise (std::vector< types::global_dof_index > &new_indices, std::vector< types::global_dof_index > &reverse, const DoFHandler< dim, spacedim > &dof, const typename std::vector< typename DoFHandler< dim, spacedim >::active_cell_iterator > &cells)
 
template<int dim, int spacedim>
void DoFRenumbering::cell_wise (DoFHandler< dim, spacedim > &dof, const unsigned int level, const typename std::vector< typename DoFHandler< dim, spacedim >::level_cell_iterator > &cells)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_cell_wise (std::vector< types::global_dof_index > &new_order, std::vector< types::global_dof_index > &reverse, const DoFHandler< dim, spacedim > &dof, const unsigned int level, const typename std::vector< typename DoFHandler< dim, spacedim >::level_cell_iterator > &cells)
 
Component-wise numberings
template<int dim, int spacedim>
void DoFRenumbering::component_wise (DoFHandler< dim, spacedim > &dof_handler, const std::vector< unsigned int > &target_component=std::vector< unsigned int >())
 
template<int dim, int spacedim>
void DoFRenumbering::component_wise (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const std::vector< unsigned int > &target_component=std::vector< unsigned int >())
 
template<int dim, int spacedim, typename CellIterator >
types::global_dof_index DoFRenumbering::compute_component_wise (std::vector< types::global_dof_index > &new_dof_indices, const CellIterator &start, const std_cxx20::type_identity_t< CellIterator > &end, const std::vector< unsigned int > &target_component, const bool is_level_operation)
 
Block-wise numberings
template<int dim, int spacedim>
void DoFRenumbering::block_wise (DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::block_wise (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level)
 
template<int dim, int spacedim, class IteratorType , class EndIteratorType >
types::global_dof_index DoFRenumbering::compute_block_wise (std::vector< types::global_dof_index > &new_dof_indices, const IteratorType &start, const EndIteratorType &end, const bool is_level_operation)
 
Various cell-wise numberings
template<int dim, int spacedim>
void DoFRenumbering::hierarchical (DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::cell_wise (DoFHandler< dim, spacedim > &dof_handler, const std::vector< typename DoFHandler< dim, spacedim >::active_cell_iterator > &cell_order)
 
Selective and random numberings
template<int dim, int spacedim>
void DoFRenumbering::sort_selected_dofs_back (DoFHandler< dim, spacedim > &dof_handler, const std::vector< bool > &selected_dofs)
 
template<int dim, int spacedim>
void DoFRenumbering::sort_selected_dofs_back (DoFHandler< dim, spacedim > &dof_handler, const std::vector< bool > &selected_dofs, const unsigned int level)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_sort_selected_dofs_back (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler, const std::vector< bool > &selected_dofs)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_sort_selected_dofs_back (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler, const std::vector< bool > &selected_dofs, const unsigned int level)
 
template<int dim, int spacedim>
void DoFRenumbering::random (DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::random (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_random (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_random (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler, const unsigned int level)
 
Directional numberings
template<int dim, int spacedim>
void DoFRenumbering::downstream (DoFHandler< dim, spacedim > &dof_handler, const Tensor< 1, spacedim > &direction, const bool dof_wise_renumbering=false)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_downstream (std::vector< types::global_dof_index > &new_dof_indices, std::vector< types::global_dof_index > &reverse, const DoFHandler< dim, spacedim > &dof_handler, const Tensor< 1, spacedim > &direction, const bool dof_wise_renumbering)
 
template<int dim, int spacedim>
void DoFRenumbering::downstream (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const Tensor< 1, spacedim > &direction, const bool dof_wise_renumbering=false)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_downstream (std::vector< types::global_dof_index > &new_dof_indices, std::vector< types::global_dof_index > &reverse, const DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const Tensor< 1, spacedim > &direction, const bool dof_wise_renumbering)
 
template<int dim, int spacedim>
void DoFRenumbering::clockwise_dg (DoFHandler< dim, spacedim > &dof_handler, const Point< spacedim > &center, const bool counter=false)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_clockwise_dg (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler, const Point< spacedim > &center, const bool counter)
 
template<int dim, int spacedim>
void DoFRenumbering::clockwise_dg (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const Point< spacedim > &center, const bool counter=false)
 
Numberings based on cell attributes
template<int dim, int spacedim>
void DoFRenumbering::subdomain_wise (DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_subdomain_wise (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler)
 
Numberings based on properties of the finite element space
template<int dim, int spacedim>
void DoFRenumbering::support_point_wise (DoFHandler< dim, spacedim > &dof_handler)
 
template<int dim, int spacedim>
void DoFRenumbering::compute_support_point_wise (std::vector< types::global_dof_index > &new_dof_indices, const DoFHandler< dim, spacedim > &dof_handler)
 
Numberings for better performance with the MatrixFree infrastructure
template<int dim, int spacedim, typename Number , typename VectorizedArrayType >
void DoFRenumbering::matrix_free_data_locality (DoFHandler< dim, spacedim > &dof_handler, const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free)
 
template<int dim, int spacedim, typename Number , typename AdditionalDataType >
void DoFRenumbering::matrix_free_data_locality (DoFHandler< dim, spacedim > &dof_handler, const AffineConstraints< Number > &constraints, const AdditionalDataType &matrix_free_additional_data)
 
template<int dim, int spacedim, typename Number , typename AdditionalDataType >
std::vector< types::global_dof_indexDoFRenumbering::compute_matrix_free_data_locality (const DoFHandler< dim, spacedim > &dof_handler, const AffineConstraints< Number > &constraints, const AdditionalDataType &matrix_free_additional_data)
 
template<int dim, int spacedim, typename Number , typename VectorizedArrayType >
std::vector< types::global_dof_indexDoFRenumbering::compute_matrix_free_data_locality (const DoFHandler< dim, spacedim > &dof_handler, const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free)
 

Macro Definition Documentation

◆ BOOST_BIND_GLOBAL_PLACEHOLDERS

#define BOOST_BIND_GLOBAL_PLACEHOLDERS

Definition at line 47 of file dof_renumbering.cc.