16 #ifndef dealii_dof_tools_h
17 #define dealii_dof_tools_h
44 template <
int dim,
typename RangeNumberType>
46 template <
int dim,
int spacedim>
50 template <
int dim,
int spacedim>
51 class MappingCollection;
52 template <
int dim,
int spacedim>
55 template <
typename MeshType>
58 template <
int dim,
int spacedim>
60 template <
int dim,
class T>
62 template <
typename Number>
67 template <
typename CellIterator>
68 struct PeriodicFacePair;
81 template <
int dim,
int spacedim>
83 always_couple_on_faces(
270 template <
int dim,
int spacedim>
281 template <
int dim,
int spacedim>
294 template <
int dim,
int spacedim>
295 std::vector<Table<2, Coupling>>
422 template <
int dim,
int spacedim,
typename number =
double>
428 const bool keep_constrained_dofs =
true,
496 template <
int dim,
int spacedim,
typename number =
double>
503 const bool keep_constrained_dofs =
true,
526 template <
int dim,
int spacedim>
577 template <
int dim,
int spacedim>
590 template <
int dim,
int spacedim,
typename number>
596 const bool keep_constrained_dofs =
true,
619 template <
int dim,
int spacedim>
655 template <
int dim,
int spacedim,
typename number>
661 const bool keep_constrained_dofs,
667 const unsigned int)> &face_has_flux_coupling =
668 &internal::always_couple_on_faces<dim, spacedim>);
679 template <
int dim,
int spacedim>
683 const std::vector<types::global_dof_index> &dof_to_boundary_mapping,
703 template <
int dim,
int spacedim,
typename number>
709 const std::vector<types::global_dof_index> &dof_to_boundary_mapping,
759 template <
int dim,
int spacedim,
typename number>
831 template <
int dim,
int spacedim>
835 const unsigned int coarse_component,
837 const unsigned int fine_component,
858 template <
int dim,
int spacedim>
862 const unsigned int coarse_component,
864 const unsigned int fine_component,
866 std::vector<std::map<types::global_dof_index, float>>
867 &transfer_representation);
1043 template <
typename FaceIterator,
typename number>
1046 const FaceIterator &face_1,
1050 const bool face_orientation =
true,
1051 const bool face_flip =
false,
1052 const bool face_rotation =
false,
1054 const std::vector<unsigned int> &first_vector_components =
1055 std::vector<unsigned int>(),
1056 const number periodicity_factor = 1.);
1078 template <
int dim,
int spacedim,
typename number>
1085 const std::vector<unsigned int> &first_vector_components =
1086 std::vector<unsigned int>(),
1087 const number periodicity_factor = 1.);
1120 template <
int dim,
int spacedim,
typename number>
1125 const unsigned int direction,
1128 const number periodicity_factor = 1.);
1157 template <
int dim,
int spacedim,
typename number>
1161 const unsigned int direction,
1164 const number periodicity_factor = 1.);
1183 template <
int dim,
int spacedim>
1219 template <
int dim,
int spacedim>
1247 template <
int dim,
int spacedim>
1256 template <
int dim,
int spacedim>
1261 std::vector<bool> &selected_dofs);
1267 template <
int dim,
int spacedim>
1272 std::vector<bool> &selected_dofs);
1316 template <
int dim,
int spacedim>
1320 const std::set<types::boundary_id> &boundary_ids = {});
1338 template <
int dim,
int spacedim>
1343 std::vector<bool> &selected_dofs,
1344 const std::set<types::boundary_id> &boundary_ids =
1345 std::set<types::boundary_id>());
1374 template <
int dim,
int spacedim,
typename number =
double>
1378 const std::function<
1418 template <
int dim,
int spacedim>
1422 std::vector<std::vector<bool>> &constant_modes);
1509 template <
int dim,
int spacedim>
1510 std::map<
typename DoFHandler<dim - 1, spacedim>::active_cell_iterator,
1511 std::pair<typename DoFHandler<dim, spacedim>::active_cell_iterator,
1537 template <
int dim,
int spacedim>
1541 std::vector<bool> &selected_dofs);
1557 template <
int dim,
int spacedim>
1577 template <
int dim,
int spacedim>
1578 DEAL_II_DEPRECATED_EARLY
void
1588 template <
int dim,
int spacedim>
1592 const unsigned int level);
1602 template <
int dim,
int spacedim>
1603 DEAL_II_DEPRECATED_EARLY
void
1607 const unsigned int level);
1618 template <
int dim,
int spacedim>
1632 template <
int dim,
int spacedim>
1633 DEAL_II_DEPRECATED_EARLY
void
1646 template <
int dim,
int spacedim>
1647 std::vector<IndexSet>
1664 template <
int dim,
int spacedim>
1665 std::vector<IndexSet>
1683 template <
int dim,
int spacedim>
1684 std::vector<IndexSet>
1692 template <
int dim,
int spacedim>
1696 const unsigned int level);
1704 template <
int dim,
int spacedim>
1705 DEAL_II_DEPRECATED_EARLY
void
1708 const unsigned int level,
1742 template <
int dim,
int spacedim>
1745 std::vector<types::subdomain_id> &subdomain);
1772 template <
int dim,
int spacedim>
1797 template <
int dim,
int spacedim>
1802 std::vector<unsigned int> &n_dofs_on_subdomain);
1825 template <
int dim,
int spacedim>
1886 template <
int dim,
int spacedim>
1887 std::vector<types::global_dof_index>
1912 template <
int dim,
int spacedim>
1916 const unsigned int level,
1917 const std::vector<bool> &selected_dofs = {},
1971 template <
int dim,
int spacedim>
1972 std::vector<unsigned int>
1975 const unsigned int level,
1976 const bool interior_dofs_only,
1977 const bool boundary_patches =
false,
1978 const bool level_boundary_patches =
false,
1979 const bool single_cell_patches =
false,
1980 const bool invert_vertex_mapping =
false);
1996 template <
int dim,
int spacedim>
1997 std::vector<unsigned int>
2000 const unsigned int level,
2002 const bool boundary_patches =
false,
2003 const bool level_boundary_patches =
false,
2004 const bool single_cell_patches =
false,
2005 const bool invert_vertex_mapping =
false);
2044 template <
int dim,
int spacedim>
2048 const unsigned int level,
2049 const bool interior_dofs_only,
2050 const bool boundary_dofs =
false);
2071 template <
int dim,
int spacedim>
2075 const unsigned int level,
2076 const bool interior_dofs_only =
false);
2120 template <
int dim,
int spacedim>
2121 std::vector<types::global_dof_index>
2124 const bool vector_valued_once =
false,
2125 const std::vector<unsigned int> &target_component = {});
2143 template <
int dim,
int spacedim>
2144 std::vector<types::global_dof_index>
2146 const std::vector<unsigned int> &target_block =
2147 std::vector<unsigned int>());
2164 template <
int dim,
int spacedim>
2167 std::vector<unsigned int> &active_fe_indices);
2196 template <
int dim,
int spacedim>
2224 template <
int dim,
int spacedim>
2227 std::vector<types::global_dof_index> &mapping);
2239 template <
int dim,
int spacedim>
2242 const std::set<types::boundary_id> &boundary_ids,
2243 std::vector<types::global_dof_index> &mapping);
2273 template <
int dim,
int spacedim>
2283 template <
int dim,
int spacedim>
2320 template <
int dim,
int spacedim>
2321 std::map<types::global_dof_index, Point<spacedim>>
2329 template <
int dim,
int spacedim>
2330 std::map<types::global_dof_index, Point<spacedim>>
2341 template <
int dim,
int spacedim>
2354 template <
int dim,
int spacedim>
2383 template <
int dim,
int spacedim,
class Comp>
2389 &point_to_index_map);
2427 template <
int dim,
int spacedim,
typename Number>
2432 const unsigned int component = 0);
2512 template <
int spacedim>
2559 template <
int dim,
int spacedim,
typename number>
2577 template <
int dim,
int spacedim,
typename number>
2672 template <
int dim,
int spacedim,
class Comp>
2678 &point_to_index_map)
2683 std::vector<Point<spacedim>> support_points(dof_handler.
n_dofs());
2688 point_to_index_map.clear();
2690 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 & ExcGridsDontMatch()
static ::ExceptionBase & ExcGridNotCoarser()
static ::ExceptionBase & ExcNoFESelected()
static ::ExceptionBase & ExcInvalidBoundaryIndicator()
static ::ExceptionBase & ExcFiniteElementsDontMatch()
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 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 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_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)
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)
UpdateFlags & operator|=(UpdateFlags &f1, const UpdateFlags f2)
@ matrix
Contents is actually a matrix.
const types::subdomain_id invalid_subdomain_id
typename type_identity< T >::type type_identity_t
unsigned int global_dof_index
unsigned int subdomain_id
ParameterHandler::OutputStyle operator|(const ParameterHandler::OutputStyle f1, const ParameterHandler::OutputStyle f2)