15#ifndef dealii_dof_tools_h
16#define dealii_dof_tools_h
43template <
int dim,
typename RangeNumberType>
45template <
int dim,
int spacedim>
49 template <
int dim,
int spacedim>
50 class MappingCollection;
51 template <
int dim,
int spacedim>
54template <
typename MeshType>
57template <
int dim,
int spacedim>
59template <
int dim,
class T>
61template <
typename Number>
66 template <
typename CellIterator>
67 struct PeriodicFacePair;
80 template <
int dim,
int spacedim>
82 always_couple_on_faces(
269 template <
int dim,
int spacedim>
280 template <
int dim,
int spacedim>
293 template <
int dim,
int spacedim>
294 std::vector<Table<2, Coupling>>
421 template <
int dim,
int spacedim,
typename number =
double>
427 const bool keep_constrained_dofs =
true,
495 template <
int dim,
int spacedim,
typename number =
double>
502 const bool keep_constrained_dofs =
true,
525 template <
int dim,
int spacedim>
576 template <
int dim,
int spacedim>
589 template <
int dim,
int spacedim,
typename number>
595 const bool keep_constrained_dofs =
true,
618 template <
int dim,
int spacedim>
654 template <
int dim,
int spacedim,
typename number>
660 const bool keep_constrained_dofs,
666 const unsigned int)> &face_has_flux_coupling =
667 &internal::always_couple_on_faces<dim, spacedim>);
678 template <
int dim,
int spacedim>
682 const std::vector<types::global_dof_index> &dof_to_boundary_mapping,
702 template <
int dim,
int spacedim,
typename number>
708 const std::vector<types::global_dof_index> &dof_to_boundary_mapping,
758 template <
int dim,
int spacedim,
typename number>
830 template <
int dim,
int spacedim>
834 const unsigned int coarse_component,
836 const unsigned int fine_component,
857 template <
int dim,
int spacedim>
861 const unsigned int coarse_component,
863 const unsigned int fine_component,
865 std::vector<std::map<types::global_dof_index, float>>
866 &transfer_representation);
1042 template <
typename FaceIterator,
typename number>
1045 const FaceIterator &face_1,
1049 const bool face_orientation =
true,
1050 const bool face_flip =
false,
1051 const bool face_rotation =
false,
1053 const std::vector<unsigned int> &first_vector_components =
1054 std::vector<unsigned int>(),
1055 const number periodicity_factor = 1.);
1077 template <
int dim,
int spacedim,
typename number>
1084 const std::vector<unsigned int> &first_vector_components =
1085 std::vector<unsigned int>(),
1086 const number periodicity_factor = 1.);
1119 template <
int dim,
int spacedim,
typename number>
1124 const unsigned int direction,
1127 const number periodicity_factor = 1.);
1156 template <
int dim,
int spacedim,
typename number>
1160 const unsigned int direction,
1163 const number periodicity_factor = 1.);
1193 template <
typename FaceIterator,
typename number>
1196 const FaceIterator &face_1,
1201 const bool face_orientation,
1202 const bool face_flip,
1203 const bool face_rotation,
1204 const number periodicity_factor,
1225 template <
int dim,
int spacedim>
1261 template <
int dim,
int spacedim>
1289 template <
int dim,
int spacedim>
1298 template <
int dim,
int spacedim>
1303 std::vector<bool> &selected_dofs);
1309 template <
int dim,
int spacedim>
1314 std::vector<bool> &selected_dofs);
1358 template <
int dim,
int spacedim>
1362 const std::set<types::boundary_id> &boundary_ids = {});
1380 template <
int dim,
int spacedim>
1385 std::vector<bool> &selected_dofs,
1386 const std::set<types::boundary_id> &boundary_ids =
1387 std::set<types::boundary_id>());
1416 template <
int dim,
int spacedim,
typename number =
double>
1420 const std::function<
1460 template <
int dim,
int spacedim>
1464 std::vector<std::vector<bool>> &constant_modes);
1551 template <
int dim,
int spacedim>
1552 std::map<
typename DoFHandler<dim - 1, spacedim>::active_cell_iterator,
1553 std::pair<typename DoFHandler<dim, spacedim>::active_cell_iterator,
1579 template <
int dim,
int spacedim>
1583 std::vector<bool> &selected_dofs);
1599 template <
int dim,
int spacedim>
1619 template <
int dim,
int spacedim>
1620 DEAL_II_DEPRECATED_EARLY
void
1630 template <
int dim,
int spacedim>
1634 const unsigned int level);
1644 template <
int dim,
int spacedim>
1645 DEAL_II_DEPRECATED_EARLY
void
1649 const unsigned int level);
1660 template <
int dim,
int spacedim>
1674 template <
int dim,
int spacedim>
1675 DEAL_II_DEPRECATED_EARLY
void
1688 template <
int dim,
int spacedim>
1689 std::vector<IndexSet>
1706 template <
int dim,
int spacedim>
1707 std::vector<IndexSet>
1725 template <
int dim,
int spacedim>
1726 std::vector<IndexSet>
1734 template <
int dim,
int spacedim>
1738 const unsigned int level);
1746 template <
int dim,
int spacedim>
1747 DEAL_II_DEPRECATED_EARLY
void
1750 const unsigned int level,
1784 template <
int dim,
int spacedim>
1787 std::vector<types::subdomain_id> &subdomain);
1814 template <
int dim,
int spacedim>
1839 template <
int dim,
int spacedim>
1844 std::vector<unsigned int> &n_dofs_on_subdomain);
1867 template <
int dim,
int spacedim>
1928 template <
int dim,
int spacedim>
1929 std::vector<types::global_dof_index>
1954 template <
int dim,
int spacedim>
1958 const unsigned int level,
1959 const std::vector<bool> &selected_dofs = {},
2013 template <
int dim,
int spacedim>
2014 std::vector<unsigned int>
2017 const unsigned int level,
2018 const bool interior_dofs_only,
2019 const bool boundary_patches =
false,
2020 const bool level_boundary_patches =
false,
2021 const bool single_cell_patches =
false,
2022 const bool invert_vertex_mapping =
false);
2038 template <
int dim,
int spacedim>
2039 std::vector<unsigned int>
2042 const unsigned int level,
2044 const bool boundary_patches =
false,
2045 const bool level_boundary_patches =
false,
2046 const bool single_cell_patches =
false,
2047 const bool invert_vertex_mapping =
false);
2086 template <
int dim,
int spacedim>
2090 const unsigned int level,
2091 const bool interior_dofs_only,
2092 const bool boundary_dofs =
false);
2113 template <
int dim,
int spacedim>
2117 const unsigned int level,
2118 const bool interior_dofs_only =
false);
2162 template <
int dim,
int spacedim>
2163 std::vector<types::global_dof_index>
2166 const bool vector_valued_once =
false,
2167 const std::vector<unsigned int> &target_component = {});
2185 template <
int dim,
int spacedim>
2186 std::vector<types::global_dof_index>
2188 const std::vector<unsigned int> &target_block =
2189 std::vector<unsigned int>());
2206 template <
int dim,
int spacedim>
2209 std::vector<unsigned int> &active_fe_indices);
2238 template <
int dim,
int spacedim>
2266 template <
int dim,
int spacedim>
2269 std::vector<types::global_dof_index> &mapping);
2281 template <
int dim,
int spacedim>
2284 const std::set<types::boundary_id> &boundary_ids,
2285 std::vector<types::global_dof_index> &mapping);
2315 template <
int dim,
int spacedim>
2325 template <
int dim,
int spacedim>
2362 template <
int dim,
int spacedim>
2363 std::map<types::global_dof_index, Point<spacedim>>
2371 template <
int dim,
int spacedim>
2372 std::map<types::global_dof_index, Point<spacedim>>
2383 template <
int dim,
int spacedim>
2396 template <
int dim,
int spacedim>
2425 template <
int dim,
int spacedim,
class Comp>
2431 &point_to_index_map);
2469 template <
int dim,
int spacedim,
typename Number>
2474 const unsigned int component = 0);
2554 template <
int spacedim>
2601 template <
int dim,
int spacedim,
typename number>
2619 template <
int dim,
int spacedim,
typename number>
2714 template <
int dim,
int spacedim,
class Comp>
2720 &point_to_index_map)
2725 std::vector<Point<spacedim>> support_points(dof_handler.
n_dofs());
2730 point_to_index_map.clear();
2732 point_to_index_map[support_points[i]] = i;
types::global_dof_index n_dofs() const
Abstract base class for mapping classes.
#define DEAL_II_DEPRECATED
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CXX20_REQUIRES(condition)
#define DEAL_II_NAMESPACE_CLOSE
#define DeclException0(Exception0)
static ::ExceptionBase & ExcGridNotCoarser()
static ::ExceptionBase & ExcInvalidBoundaryIndicator()
static ::ExceptionBase & ExcFiniteElementsDontMatch()
static ::ExceptionBase & ExcNoFESelected()
static ::ExceptionBase & ExcGridsDontMatch()
typename ActiveSelector::cell_iterator cell_iterator
typename ActiveSelector::active_cell_iterator active_cell_iterator
void compute_intergrid_transfer_representation(const DoFHandler< dim, spacedim > &coarse_grid, const unsigned int coarse_component, const DoFHandler< dim, spacedim > &fine_grid, const unsigned int fine_component, const InterGridMap< DoFHandler< dim, spacedim > > &coarse_to_fine_grid_map, std::vector< std::map< types::global_dof_index, float > > &transfer_representation)
void make_hanging_node_constraints(const DoFHandler< dim, spacedim > &dof_handler, AffineConstraints< number > &constraints)
void make_sparsity_pattern(const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity_pattern, const AffineConstraints< number > &constraints={}, const bool keep_constrained_dofs=true, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id)
void compute_intergrid_constraints(const DoFHandler< dim, spacedim > &coarse_grid, const unsigned int coarse_component, const DoFHandler< dim, spacedim > &fine_grid, const unsigned int fine_component, const InterGridMap< DoFHandler< dim, spacedim > > &coarse_to_fine_grid_map, AffineConstraints< double > &constraints)
void make_zero_boundary_constraints(const DoFHandler< dim, spacedim > &dof, const types::boundary_id boundary_id, AffineConstraints< number > &zero_boundary_constraints, const ComponentMask &component_mask={})
void make_flux_sparsity_pattern(const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity_pattern)
void make_boundary_sparsity_pattern(const DoFHandler< dim, spacedim > &dof, const std::vector< types::global_dof_index > &dof_to_boundary_mapping, SparsityPatternBase &sparsity_pattern)
UpdateFlags & operator|=(UpdateFlags &f1, const UpdateFlags f2)
@ matrix
Contents is actually a matrix.
const types::subdomain_id invalid_subdomain_id
static const unsigned int invalid_unsigned_int
typename type_identity< T >::type type_identity_t
unsigned int subdomain_id
ParameterHandler::OutputStyle operator|(const ParameterHandler::OutputStyle f1, const ParameterHandler::OutputStyle f2)