Reference documentation for deal.II version 9.2.0
|
Static Public Member Functions | |
template<int dim, int spacedim> | |
static std::map< types::global_dof_index, types::global_dof_index > | compute_vertex_dof_identities (const hp::DoFHandler< dim, spacedim > &dof_handler) |
template<int spacedim> | |
static std::map< types::global_dof_index, types::global_dof_index > | compute_line_dof_identities (const hp::DoFHandler< 1, spacedim > &) |
template<int dim, int spacedim> | |
static std::map< types::global_dof_index, types::global_dof_index > | compute_line_dof_identities (const hp::DoFHandler< dim, spacedim > &dof_handler) |
template<int dim, int spacedim> | |
static std::map< types::global_dof_index, types::global_dof_index > | compute_quad_dof_identities (const hp::DoFHandler< dim, spacedim > &) |
template<int spacedim> | |
static std::map< types::global_dof_index, types::global_dof_index > | compute_quad_dof_identities (const hp::DoFHandler< 3, spacedim > &dof_handler) |
template<int dim, int spacedim> | |
static void | compute_dof_identities (const std::vector< std::map< types::global_dof_index, types::global_dof_index >> &, const DoFHandler< dim, spacedim > &) |
template<int dim, int spacedim> | |
static void | compute_dof_identities (std::vector< std::map< types::global_dof_index, types::global_dof_index >> &all_constrained_indices, const hp::DoFHandler< dim, spacedim > &dof_handler) |
template<class DoFHandlerType > | |
static types::global_dof_index | enumerate_dof_indices_for_renumbering (std::vector< types::global_dof_index > &new_dof_indices, const std::vector< std::map< types::global_dof_index, types::global_dof_index >> &all_constrained_indices, const DoFHandlerType &) |
template<int dim, int spacedim> | |
static types::global_dof_index | unify_dof_indices (const DoFHandler< dim, spacedim > &, const unsigned int n_dofs_before_identification, const bool) |
template<int dim, int spacedim> | |
static types::global_dof_index | unify_dof_indices (hp::DoFHandler< dim, spacedim > &dof_handler, const unsigned int n_dofs_before_identification, const bool check_validity) |
template<int dim, int spacedim> | |
static void | merge_invalid_vertex_dofs_on_ghost_interfaces (hp::DoFHandler< dim, spacedim > &dof_handler) |
template<int spacedim> | |
static void | merge_invalid_line_dofs_on_ghost_interfaces (hp::DoFHandler< 1, spacedim > &) |
template<int dim, int spacedim> | |
static void | merge_invalid_line_dofs_on_ghost_interfaces (hp::DoFHandler< dim, spacedim > &dof_handler) |
template<int dim, int spacedim> | |
static void | merge_invalid_quad_dofs_on_ghost_interfaces (hp::DoFHandler< dim, spacedim > &) |
template<int spacedim> | |
static void | merge_invalid_quad_dofs_on_ghost_interfaces (hp::DoFHandler< 3, spacedim > &dof_handler) |
template<int dim, int spacedim> | |
static void | merge_invalid_dof_indices_on_ghost_interfaces (const DoFHandler< dim, spacedim > &) |
template<int dim, int spacedim> | |
static void | merge_invalid_dof_indices_on_ghost_interfaces (hp::DoFHandler< dim, spacedim > &dof_handler) |
template<class DoFHandlerType > | |
static types::global_dof_index | distribute_dofs (const types::subdomain_id subdomain_id, DoFHandlerType &dof_handler) |
template<class DoFHandlerType > | |
static void | invalidate_dof_indices_on_weaker_ghost_cells_for_renumbering (std::vector< types::global_dof_index > &renumbering, const types::subdomain_id subdomain_id, const DoFHandlerType &dof_handler) |
template<int dim, int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const typename DoFHandler< dim, spacedim >::level_cell_iterator &cell, types::global_dof_index next_free_dof, const std::integral_constant< int, 1 > &) |
template<int dim, int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const typename DoFHandler< dim, spacedim >::level_cell_iterator &cell, types::global_dof_index next_free_dof, const std::integral_constant< int, 2 > &) |
template<int dim, int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const typename DoFHandler< dim, spacedim >::level_cell_iterator &cell, types::global_dof_index next_free_dof, const std::integral_constant< int, 3 > &) |
template<int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const hp::DoFHandler< 1, spacedim > &dof_handler, const typename hp::DoFHandler< 1, spacedim >::active_cell_iterator &cell, types::global_dof_index next_free_dof) |
template<int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const hp::DoFHandler< 2, spacedim > &dof_handler, const typename hp::DoFHandler< 2, spacedim >::active_cell_iterator &cell, types::global_dof_index next_free_dof) |
template<int spacedim> | |
static types::global_dof_index | distribute_mg_dofs_on_cell (const hp::DoFHandler< 3, spacedim > &dof_handler, const typename hp::DoFHandler< 3, spacedim >::active_cell_iterator &cell, types::global_dof_index next_free_dof) |
template<class DoFHandlerType > | |
static types::global_dof_index | distribute_dofs_on_level (const types::subdomain_id level_subdomain_id, DoFHandlerType &dof_handler, const unsigned int level) |
template<int dim, int spacedim> | |
static void | renumber_vertex_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< dim, spacedim > &dof_handler, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_cell_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< dim, spacedim > &dof_handler) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &, const IndexSet &, DoFHandler< 1, spacedim > &) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< 2, spacedim > &dof_handler) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< 3, spacedim > &dof_handler) |
template<int dim, int spacedim> | |
static void | renumber_vertex_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, hp::DoFHandler< dim, spacedim > &dof_handler, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_cell_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, hp::DoFHandler< dim, spacedim > &dof_handler) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &, const IndexSet &, hp::DoFHandler< 1, spacedim > &) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, hp::DoFHandler< 2, spacedim > &dof_handler) |
template<int spacedim> | |
static void | renumber_face_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, hp::DoFHandler< 3, spacedim > &dof_handler) |
template<class DoFHandlerType > | |
static void | renumber_dofs (const std::vector< types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandlerType &dof_handler, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_vertex_mg_dofs (const std::vector<::types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_cell_mg_dofs (const std::vector<::types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< dim, spacedim > &dof_handler, const unsigned int level) |
template<int spacedim> | |
static void | renumber_face_mg_dofs (const std::vector< types::global_dof_index > &, const IndexSet &, DoFHandler< 1, spacedim > &, const unsigned int, const bool) |
template<int spacedim> | |
static void | renumber_face_mg_dofs (const std::vector<::types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< 2, spacedim > &dof_handler, const unsigned int level, const bool check_validity) |
template<int spacedim> | |
static void | renumber_face_mg_dofs (const std::vector<::types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< 3, spacedim > &dof_handler, const unsigned int level, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_mg_dofs (const std::vector<::types::global_dof_index > &new_numbers, const IndexSet &indices_we_care_about, DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, const bool check_validity) |
template<int dim, int spacedim> | |
static void | renumber_mg_dofs (const std::vector<::types::global_dof_index > &, const IndexSet &, hp::DoFHandler< dim, spacedim > &, const unsigned int, const bool) |
Definition at line 218 of file dof_handler_policy.cc.
|
inlinestatic |
Compute identities between DoFs located on vertices. Called from distribute_dofs().
Definition at line 228 of file dof_handler_policy.cc.
|
inlinestatic |
Compute identities between DoFs located on lines. Called from distribute_dofs().
Definition at line 370 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 378 of file dof_handler_policy.cc.
|
inlinestatic |
Compute identities between DoFs located on quads. Called from distribute_dofs().
Definition at line 730 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 743 of file dof_handler_policy.cc.
|
inlinestatic |
Compute the constraints that correspond to unifying DoF indices on vertices, lines, and quads. Do so in parallel.
Definition at line 876 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 885 of file dof_handler_policy.cc.
|
inlinestatic |
Once degrees of freedom have been distributed on all cells, we may want to eliminate duplicates, and enumerate the remaining ones consecutively. This particular function is responsible for the latter part.
This function stores the new indices of all DoFs in ascending order in new_dof_indices
, which can be used to renumber all DoFs with the renumber_dofs() function later.
This vector will contain enumerated indices, skipping invalid indices previously stored in it. Additionally, if a all_constrained_indices
parameter is provided, DoF identity relations will be considered as well during the enumeration process by identifying similar DoFs on vertices, lines and quads.
Returns the final number of degrees of freedom, which is the number of all valid DoF indices in new_dof_indices
.
Definition at line 944 of file dof_handler_policy.cc.
|
inlinestatic |
Once degrees of freedom have been distributed on all cells, see if we can identify DoFs on neighboring cells. This function does nothing on regular DoFHandlers, but goes through vertices, lines, and quads for hp::DoFHandler objects.
Return the final number of degrees of freedom, which is the old one minus however many were identified.
Definition at line 1010 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1020 of file dof_handler_policy.cc.
|
inlinestatic |
Merge invalid DoF indices on vertices located on ghost interfaces by a dominating valid one.
Definition at line 1051 of file dof_handler_policy.cc.
|
inlinestatic |
Merge invalid DoF indices on lines located on ghost interfaces by a dominating valid one.
Definition at line 1193 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1200 of file dof_handler_policy.cc.
|
inlinestatic |
Merge invalid DoF indices on quads located on ghost interfaces by a dominating valid one.
Definition at line 1462 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1473 of file dof_handler_policy.cc.
|
inlinestatic |
After DoF unification in Phase 2, we may still have invalid DoF indices left on ghost interfaces that are dominated by a FiniteElement object of an adjacent cell, which could be either a ghost cell or locally owned, whose DoF indices we did not know at the moment of unification. After the first ghost exchange in Phase 5, we know the indices of all dominating DoFs, and we have to assign those invalid entries to their corresponding global value.
This function does nothing on regular DoFHandlers, but goes through vertices, lines, and quads for hp::DoFHandler objects.
Definition at line 1606 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1613 of file dof_handler_policy.cc.
|
inlinestatic |
Distribute degrees of freedom on all cells, or on cells with the correct subdomain_id if the corresponding argument is not equal to numbers::invalid_subdomain_id. Return the total number of dofs distributed.
Definition at line 1653 of file dof_handler_policy.cc.
|
inlinestatic |
During DoF distribution, DoFs on ghost interfaces get different indices assigned by each adjacent subdomain. We need to clarify ownership of those DoFs by imposing a criterion, which is that the adjacent subdomain belonging to the processor of lowest rank prescribes its index.
Thus, we have to invalidate all those DoFs on ghost cells that belong to processors of lower rank than the current one, which is the subdomain_id
parameter. Later during ghost exchange in Phase 5, these values will be overwritten by the correct one. The invalidated indices will be stored in the renumbering
parameter.
Definition at line 1706 of file dof_handler_policy.cc.
|
inlinestatic |
Distribute multilevel dofs on the given cell, with new dofs starting with index next_free_dof
. Return the next unused index number.
Note that unlike for the usual dofs, here all cells and not only active ones are allowed.
Definition at line 1744 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1816 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1870 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1943 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1959 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1975 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 1991 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_dofs() functionality that is dimension independent because it renumbers the DoF indices on vertices (which exist for all dimensions).
See renumber_dofs() for the meaning of the arguments.
Definition at line 2046 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_dofs() functionality that is dimension independent because it renumbers the DoF indices on cell interiors (which exist for all dimensions).
See renumber_dofs() for the meaning of the arguments.
Definition at line 2086 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_dofs() functionality that operates on faces. This part is dimension dependent and so needs to be implemented in three separate specializations of the function.
See renumber_dofs() for the meaning of the arguments.
Definition at line 2115 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2127 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2147 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2177 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2291 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2350 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2363 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2462 of file dof_handler_policy.cc.
|
inlinestatic |
Implementation of DoFHandler::renumber_dofs()
If the second argument has any elements set, elements of the then the vector of new numbers do not relate to the old DoF number but instead to the index of the old DoF number within the set of locally owned DoFs.
(The IndexSet argument is not used in 1d because we only need it for parallel meshes and 1d doesn't support that right now.)
Definition at line 2651 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_mg_dofs() functionality that is dimension independent because it renumbers the DoF indices on vertex interiors (which exist for all dimensions).
See renumber_mg_dofs() for the meaning of the arguments.
Definition at line 2695 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_dofs() functionality that is dimension independent because it renumbers the DoF indices on cell interiors (which exist for all dimensions).
See renumber_mg_dofs() for the meaning of the arguments.
Definition at line 2751 of file dof_handler_policy.cc.
|
inlinestatic |
The part of the renumber_mg_dofs() functionality that operates on faces. This part is dimension dependent and so needs to be implemented in three separate specializations of the function.
See renumber_mg_dofs() for the meaning of the arguments.
Definition at line 2787 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2801 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2870 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 2982 of file dof_handler_policy.cc.
|
inlinestatic |
Definition at line 3023 of file dof_handler_policy.cc.