16 #ifndef dealii_dof_renumbering_h
17 #define dealii_dof_renumbering_h
20 #include <deal.II/base/config.h>
22 #include <deal.II/base/exceptions.h>
23 #include <deal.II/base/point.h>
25 #include <deal.II/dofs/dof_handler.h>
27 #include <deal.II/hp/dof_handler.h>
31 DEAL_II_NAMESPACE_OPEN
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,
688 const typename identity<CellIterator>::type &end,
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>
862 template <
typename DoFHandlerType>
865 const std::vector<typename DoFHandlerType::active_cell_iterator>
903 template <
typename DoFHandlerType>
906 std::vector<types::global_dof_index> &renumbering,
907 std::vector<types::global_dof_index> &inverse_renumbering,
908 const DoFHandlerType & dof_handler,
909 const std::vector<typename DoFHandlerType::active_cell_iterator>
916 template <
typename DoFHandlerType>
919 const unsigned int level,
920 const std::vector<typename DoFHandlerType::level_cell_iterator>
927 template <
typename DoFHandlerType>
930 std::vector<types::global_dof_index> &renumbering,
931 std::vector<types::global_dof_index> &inverse_renumbering,
932 const DoFHandlerType & dof_handler,
933 const unsigned int level,
934 const std::vector<typename DoFHandlerType::level_cell_iterator>
972 template <
typename DoFHandlerType>
976 const bool dof_wise_renumbering =
false);
984 template <
typename DoFHandlerType>
987 const unsigned int level,
989 const bool dof_wise_renumbering =
false);
996 template <
typename DoFHandlerType>
999 std::vector<types::global_dof_index> & new_dof_indices,
1000 std::vector<types::global_dof_index> & reverse,
1001 const DoFHandlerType & dof_handler,
1003 const bool dof_wise_renumbering);
1010 template <
typename DoFHandlerType>
1013 std::vector<types::global_dof_index> & new_dof_indices,
1014 std::vector<types::global_dof_index> & reverse,
1015 const DoFHandlerType & dof_handler,
1016 const unsigned int level,
1018 const bool dof_wise_renumbering);
1028 template <
typename DoFHandlerType>
1032 const bool counter =
false);
1038 template <
typename DoFHandlerType>
1041 const unsigned int level,
1043 const bool counter =
false);
1050 template <
typename DoFHandlerType>
1053 const DoFHandlerType & dof_handler,
1055 const bool counter);
1075 template <
typename DoFHandlerType>
1078 const std::vector<bool> &selected_dofs);
1090 template <
typename DoFHandlerType>
1093 const std::vector<bool> &selected_dofs,
1094 const unsigned int level);
1104 template <
typename DoFHandlerType>
1107 std::vector<types::global_dof_index> &new_dof_indices,
1108 const DoFHandlerType & dof_handler,
1109 const std::vector<bool> & selected_dofs);
1120 template <
typename DoFHandlerType>
1123 std::vector<types::global_dof_index> &new_dof_indices,
1124 const DoFHandlerType & dof_handler,
1125 const std::vector<bool> & selected_dofs,
1126 const unsigned int level);
1138 template <
typename DoFHandlerType>
1140 random(DoFHandlerType &dof_handler);
1148 template <
typename DoFHandlerType>
1150 random(DoFHandlerType &dof_handler,
const unsigned int level);
1159 template <
typename DoFHandlerType>
1161 compute_random(std::vector<types::global_dof_index> &new_dof_indices,
1162 const DoFHandlerType & dof_handler);
1169 template <
typename DoFHandlerType>
1171 compute_random(std::vector<types::global_dof_index> &new_dof_indices,
1172 const DoFHandlerType & dof_handler,
1173 const unsigned int level);
1206 template <
typename DoFHandlerType>
1215 template <
typename DoFHandlerType>
1218 const DoFHandlerType & dof_handler);
1232 "The DoFHandler on which this function should work has not "
1233 "been initialized, i.e., it doesn't appear that DoF indices "
1234 "have been distributed on it.");
1253 DEAL_II_NAMESPACE_CLOSE