17 #ifndef __deal2__dof_renumbering_h 18 #define __deal2__dof_renumbering_h 21 #include <deal.II/base/config.h> 23 #include <deal.II/base/point.h> 24 #include <deal.II/dofs/dof_handler.h> 25 #include <deal.II/hp/dof_handler.h> 26 #include <deal.II/multigrid/mg_dof_handler.h> 403 template <
class Iterator,
int dim>
418 const Point<dim> diff = c2->center() - c1->center();
419 return (diff*
dir > 0);
454 return (diff*
dir > 0 || (diff*
dir==0 && c1.second<c2.second));
493 const bool reversed_numbering =
false,
494 const bool use_constraints =
false);
505 const bool reversed_numbering =
false,
506 const bool use_constraints =
false);
523 const bool reversed_numbering =
false,
524 const bool use_constraints =
false);
534 const bool reversed_numbering =
false,
535 const bool use_constraints =
false);
551 const bool reversed_numbering =
false,
552 const bool use_constraints =
false);
562 const bool reversed_numbering =
false,
563 const bool use_constraints =
false);
580 const bool reversed_numbering =
false,
581 const bool use_constraints =
false,
582 const std::vector<types::global_dof_index> &starting_indices = std::vector<types::global_dof_index>());
593 const bool reversed_numbering =
false,
594 const bool use_constraints =
false,
595 const std::vector<types::global_dof_index> &starting_indices = std::vector<types::global_dof_index>());
613 const unsigned int level,
614 const bool reversed_numbering =
false,
615 const std::vector<types::global_dof_index> &starting_indices = std::vector<types::global_dof_index> ());
652 template <
int dim,
int spacedim>
655 const std::vector<unsigned int> &target_component
656 = std::vector<unsigned int>());
666 const std::vector<unsigned int> &target_component = std::vector<unsigned int> ());
677 const unsigned int level,
678 const std::vector<unsigned int> &target_component = std::vector<unsigned int>());
689 const std::vector<unsigned int> &target_component = std::vector<unsigned int>());
696 template <
int dim,
int spacedim,
class ITERATOR,
class ENDITERATOR>
699 const ITERATOR &start,
700 const ENDITERATOR &end,
701 const std::vector<unsigned int> &target_component,
702 bool is_level_operation);
720 template <
int dim,
int spacedim>
753 const unsigned int level);
770 template <
int dim,
int spacedim,
class ITERATOR,
class ENDITERATOR>
773 const ITERATOR &start,
774 const ENDITERATOR &end);
805 const std::vector<typename DH::active_cell_iterator> &cell_order);
815 std::vector<types::global_dof_index> &inverse_renumbering,
816 const DH &dof_handler,
817 const std::vector<typename DH::active_cell_iterator> &cell_order);
826 const unsigned int level,
827 const std::vector<typename DH::level_cell_iterator> &cell_order);
837 std::vector<types::global_dof_index> &inverse_renumbering,
838 const DH &dof_handler,
839 const unsigned int level,
840 const std::vector<typename DH::level_cell_iterator> &cell_order);
880 const bool dof_wise_renumbering =
false);
890 const unsigned int level,
892 const bool dof_wise_renumbering =
false);
937 std::vector<types::global_dof_index> &reverse,
938 const DH &dof_handler,
940 const bool dof_wise_renumbering);
950 std::vector<types::global_dof_index> &reverse,
951 const DH &dof_handler,
952 const unsigned int level,
954 const bool dof_wise_renumbering);
968 const bool counter =
false);
977 const unsigned int level,
979 const bool counter =
false);
989 const DH &dof_handler,
1014 const std::vector<bool> &selected_dofs);
1029 const std::vector<bool> &selected_dofs,
1030 const unsigned int level);
1043 const DH &dof_handler,
1044 const std::vector<bool> &selected_dofs);
1057 const DH &dof_handler,
1058 const std::vector<bool> &selected_dofs,
1059 const unsigned int level);
1066 random (DH &dof_handler);
1075 compute_random (std::vector<types::global_dof_index> &new_dof_indices,
1076 const DH &dof_handler);
1117 const DH &dof_handler);
1155 const bool dof_wise_renumbering)
1157 std::vector<types::global_dof_index> renumbering(dof.n_dofs());
1158 std::vector<types::global_dof_index> reverse(dof.n_dofs());
1160 dof_wise_renumbering);
1162 dof.renumber_dofs(renumbering);
1168 DEAL_II_NAMESPACE_CLOSE
types::global_dof_index compute_block_wise(std::vector< types::global_dof_index > &new_dof_indices, const ITERATOR &start, const ENDITERATOR &end)
void sort_selected_dofs_back(DH &dof_handler, const std::vector< bool > &selected_dofs)
void random(DH &dof_handler)
void compute_subdomain_wise(std::vector< types::global_dof_index > &new_dof_indices, const DH &dof_handler)
void compute_random(std::vector< types::global_dof_index > &new_dof_indices, const DH &dof_handler)
void Cuthill_McKee(DH &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 >())
void hierarchical(DoFHandler< dim > &dof_handler)
void component_wise(DoFHandler< dim, spacedim > &dof_handler, const std::vector< unsigned int > &target_component=std::vector< unsigned int >())
void compute_clockwise_dg(std::vector< types::global_dof_index > &new_dof_indices, const DH &dof_handler, const Point< DH::space_dimension > ¢er, const bool counter)
void compute_sort_selected_dofs_back(std::vector< types::global_dof_index > &new_dof_indices, const DH &dof_handler, const std::vector< bool > &selected_dofs)
void compute_cell_wise(std::vector< types::global_dof_index > &renumbering, std::vector< types::global_dof_index > &inverse_renumbering, const DH &dof_handler, const std::vector< typename DH::active_cell_iterator > &cell_order)
void downstream(DH &dof_handler, const Point< DH::space_dimension > &direction, const bool dof_wise_renumbering=false)
void compute_minimum_degree(std::vector< types::global_dof_index > &new_dof_indices, const DH &, const bool reversed_numbering=false, const bool use_constraints=false)
void compute_downstream(std::vector< types::global_dof_index > &new_dof_indices, std::vector< types::global_dof_index > &reverse, const DH &dof_handler, const Point< DH::space_dimension > &direction, const bool dof_wise_renumbering)
void minimum_degree(DH &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
DeclException0(ExcRenumberingIncomplete)
unsigned int global_dof_index
void clockwise_dg(DH &dof_handler, const Point< DH::space_dimension > ¢er, const bool counter=false)
void compute_king_ordering(std::vector< types::global_dof_index > &new_dof_indices, const DH &, const bool reversed_numbering=false, const bool use_constraints=false)
void downstream_dg(DH &dof, const Point< DH::space_dimension > &direction) DEAL_II_DEPRECATED
ComparePointwiseDownstream(const Point< dim > &dir)
BlockCompressedSparsityPattern CompressedBlockSparsityPattern DEAL_II_DEPRECATED
void compute_Cuthill_McKee(std::vector< types::global_dof_index > &new_dof_indices, const DH &, 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 >())
void king_ordering(DH &dof_handler, const bool reversed_numbering=false, const bool use_constraints=false)
bool operator()(const Iterator &c1, const Iterator &c2) const
void block_wise(DoFHandler< dim, spacedim > &dof_handler)
types::global_dof_index compute_component_wise(std::vector< types::global_dof_index > &new_dof_indices, const ITERATOR &start, const ENDITERATOR &end, const std::vector< unsigned int > &target_component, bool is_level_operation)
CompareDownstream(const Point< dim > &dir)
void cell_wise(DH &dof_handler, const std::vector< typename DH::active_cell_iterator > &cell_order)
void subdomain_wise(DH &dof_handler)