deal.II version GIT relicensing-2169-gec1b43f35b 2024-11-22 07:10:00+00:00
|
#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 > ¢er, 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 > ¢er, const bool counter) |
template<int dim, int spacedim> | |
void | DoFRenumbering::clockwise_dg (DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const Point< spacedim > ¢er, 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_index > | DoFRenumbering::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_index > | DoFRenumbering::compute_matrix_free_data_locality (const DoFHandler< dim, spacedim > &dof_handler, const MatrixFree< dim, Number, VectorizedArrayType > &matrix_free) |
#define BOOST_BIND_GLOBAL_PLACEHOLDERS |
Definition at line 47 of file dof_renumbering.cc.