16 #ifndef dealii_dof_renumbering_h 17 #define dealii_dof_renumbering_h 352 template <
class Iterator,
int dim>
368 return (diff *
dir > 0);
403 return (diff *
dir > 0 || (diff *
dir == 0 && c1.second < c2.second));
441 template <
typename DoFHandlerType>
444 const bool reversed_numbering =
false,
445 const bool use_constraints =
false);
452 template <
typename DoFHandlerType>
455 const DoFHandlerType &,
456 const bool reversed_numbering =
false,
457 const bool use_constraints =
false);
471 template <
typename DoFHandlerType>
474 const bool reversed_numbering =
false,
475 const bool use_constraints =
false);
481 template <
typename DoFHandlerType>
484 const DoFHandlerType &,
485 const bool reversed_numbering =
false,
486 const bool use_constraints =
false);
499 template <
typename DoFHandlerType>
502 const bool reversed_numbering =
false,
503 const bool use_constraints =
false);
509 template <
typename DoFHandlerType>
512 std::vector<types::global_dof_index> &new_dof_indices,
513 const DoFHandlerType &,
514 const bool reversed_numbering =
false,
515 const bool use_constraints =
false);
582 template <
typename DoFHandlerType>
585 const bool reversed_numbering =
false,
586 const bool use_constraints =
false,
587 const std::vector<types::global_dof_index> &starting_indices =
588 std::vector<types::global_dof_index>());
597 template <
typename DoFHandlerType>
600 std::vector<types::global_dof_index> &new_dof_indices,
601 const DoFHandlerType &,
602 const bool reversed_numbering =
false,
603 const bool use_constraints =
false,
604 const std::vector<types::global_dof_index> &starting_indices =
605 std::vector<types::global_dof_index>());
620 template <
typename DoFHandlerType>
623 const unsigned int level,
624 const bool reversed_numbering =
false,
625 const std::vector<types::global_dof_index> &starting_indices =
626 std::vector<types::global_dof_index>());
659 template <
typename DoFHandlerType>
662 const std::vector<unsigned int> &target_component =
663 std::vector<unsigned int>());
672 template <
typename DoFHandlerType>
675 const unsigned int level,
676 const std::vector<unsigned int> &target_component =
677 std::vector<unsigned int>());
684 template <
int dim,
int spacedim,
typename CellIterator>
687 const CellIterator & start,
689 const std::vector<unsigned int> &target_component,
690 const bool is_level_operation);
708 template <
int dim,
int spacedim>
718 template <
int dim,
int spacedim>
738 template <
int dim,
int spacedim>
747 template <
int dim,
int spacedim,
class ITERATOR,
class ENDITERATOR>
750 const ITERATOR & start,
751 const ENDITERATOR & end,
752 bool is_level_operation);
835 template <
typename DoFHandlerType>
863 template <
typename DoFHandlerType>
866 const std::vector<typename DoFHandlerType::active_cell_iterator>
904 template <
typename DoFHandlerType>
907 std::vector<types::global_dof_index> &renumbering,
908 std::vector<types::global_dof_index> &inverse_renumbering,
909 const DoFHandlerType & dof_handler,
910 const std::vector<typename DoFHandlerType::active_cell_iterator>
917 template <
typename DoFHandlerType>
920 const unsigned int level,
921 const std::vector<typename DoFHandlerType::level_cell_iterator>
928 template <
typename DoFHandlerType>
931 std::vector<types::global_dof_index> &renumbering,
932 std::vector<types::global_dof_index> &inverse_renumbering,
933 const DoFHandlerType & dof_handler,
934 const unsigned int level,
935 const std::vector<typename DoFHandlerType::level_cell_iterator>
973 template <
typename DoFHandlerType>
977 const bool dof_wise_renumbering =
false);
985 template <
typename DoFHandlerType>
988 const unsigned int level,
990 const bool dof_wise_renumbering =
false);
997 template <
typename DoFHandlerType>
1000 std::vector<types::global_dof_index> & new_dof_indices,
1001 std::vector<types::global_dof_index> & reverse,
1002 const DoFHandlerType & dof_handler,
1004 const bool dof_wise_renumbering);
1011 template <
typename DoFHandlerType>
1014 std::vector<types::global_dof_index> & new_dof_indices,
1015 std::vector<types::global_dof_index> & reverse,
1016 const DoFHandlerType & dof_handler,
1017 const unsigned int level,
1019 const bool dof_wise_renumbering);
1029 template <
typename DoFHandlerType>
1033 const bool counter =
false);
1039 template <
typename DoFHandlerType>
1042 const unsigned int level,
1044 const bool counter =
false);
1051 template <
typename DoFHandlerType>
1054 const DoFHandlerType & dof_handler,
1056 const bool counter);
1076 template <
typename DoFHandlerType>
1079 const std::vector<bool> &selected_dofs);
1091 template <
typename DoFHandlerType>
1094 const std::vector<bool> &selected_dofs,
1095 const unsigned int level);
1105 template <
typename DoFHandlerType>
1108 std::vector<types::global_dof_index> &new_dof_indices,
1109 const DoFHandlerType & dof_handler,
1110 const std::vector<bool> & selected_dofs);
1121 template <
typename DoFHandlerType>
1124 std::vector<types::global_dof_index> &new_dof_indices,
1125 const DoFHandlerType & dof_handler,
1126 const std::vector<bool> & selected_dofs,
1127 const unsigned int level);
1139 template <
typename DoFHandlerType>
1141 random(DoFHandlerType &dof_handler);
1149 template <
typename DoFHandlerType>
1151 random(DoFHandlerType &dof_handler,
const unsigned int level);
1160 template <
typename DoFHandlerType>
1162 compute_random(std::vector<types::global_dof_index> &new_dof_indices,
1163 const DoFHandlerType & dof_handler);
1170 template <
typename DoFHandlerType>
1172 compute_random(std::vector<types::global_dof_index> &new_dof_indices,
1173 const DoFHandlerType & dof_handler,
1174 const unsigned int level);
1207 template <
typename DoFHandlerType>
1216 template <
typename DoFHandlerType>
1219 const DoFHandlerType & dof_handler);
1233 "The DoFHandler on which this function should work has not " 1234 "been initialized, i.e., it doesn't appear that DoF indices " 1235 "have been distributed on it.");
static ::ExceptionBase & ExcInvalidComponentOrder()
void compute_downstream(std::vector< types::global_dof_index > &new_dof_indices, std::vector< types::global_dof_index > &reverse, const DoFHandlerType &dof_handler, const Tensor< 1, DoFHandlerType::space_dimension > &direction, const bool dof_wise_renumbering)
void downstream(DoFHandlerType &dof_handler, const Tensor< 1, DoFHandlerType::space_dimension > &direction, const bool dof_wise_renumbering=false)
void minimum_degree(DoFHandlerType &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
void compute_cell_wise(std::vector< types::global_dof_index > &renumbering, std::vector< types::global_dof_index > &inverse_renumbering, const DoFHandlerType &dof_handler, const std::vector< typename DoFHandlerType::active_cell_iterator > &cell_order)
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)
void sort_selected_dofs_back(DoFHandlerType &dof_handler, const std::vector< bool > &selected_dofs)
void component_wise(DoFHandlerType &dof_handler, const std::vector< unsigned int > &target_component=std::vector< unsigned int >())
types::global_dof_index compute_component_wise(std::vector< types::global_dof_index > &new_dof_indices, const CellIterator &start, const typename identity< CellIterator >::type &end, const std::vector< unsigned int > &target_component, const bool is_level_operation)
CompareDownstream(const Tensor< 1, dim > &dir)
static ::ExceptionBase & ExcDoFHandlerNotInitialized()
const Tensor< 1, dim > dir
void random(DoFHandlerType &dof_handler)
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)
void compute_subdomain_wise(std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &dof_handler)
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcNotDGFEM()
#define DeclException0(Exception0)
bool operator()(const std::pair< Point< dim >, types::global_dof_index > &c1, const std::pair< Point< dim >, types::global_dof_index > &c2) const
#define DEAL_II_NAMESPACE_CLOSE
VectorType::value_type * end(VectorType &V)
void compute_random(std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &dof_handler)
void compute_sort_selected_dofs_back(std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &dof_handler, const std::vector< bool > &selected_dofs)
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, const std::vector< types::global_dof_index > &starting_indices=std::vector< types::global_dof_index >())
unsigned int global_dof_index
MatrixTableIterators::Iterator< TransposeTable< T >, Constness, MatrixTableIterators::Storage::column_major > Iterator
void compute_clockwise_dg(std::vector< types::global_dof_index > &new_dof_indices, const DoFHandlerType &dof_handler, const Point< DoFHandlerType::space_dimension > ¢er, const bool counter)
void king_ordering(DoFHandlerType &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
void hierarchical(DoFHandlerType &dof_handler)
#define DEAL_II_NAMESPACE_OPEN
void block_wise(DoFHandler< dim, spacedim > &dof_handler)
void Cuthill_McKee(DoFHandlerType &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 >())
const Tensor< 1, dim > dir
ComparePointwiseDownstream(const Tensor< 1, dim > &dir)
void subdomain_wise(DoFHandlerType &dof_handler)
void clockwise_dg(DoFHandlerType &dof_handler, const Point< DoFHandlerType::space_dimension > ¢er, const bool counter=false)
types::global_dof_index compute_block_wise(std::vector< types::global_dof_index > &new_dof_indices, const ITERATOR &start, const ENDITERATOR &end, bool is_level_operation)
void cell_wise(DoFHandlerType &dof_handler, const std::vector< typename DoFHandlerType::active_cell_iterator > &cell_order)
bool operator()(const Iterator &c1, const Iterator &c2) const