const IndexSet &
locally_owned_mg_dofs(const unsigned int level) const;
- /**
- * Return a vector that stores the locally owned DoFs of each processor.
- *
- * @deprecated As of deal.II version 9.2, we do not populate a vector with
- * the index sets of all processors by default any more due to a possibly
- * large memory footprint on many processors. As a consequence, this
- * function needs to call `Utilities::MPI::all_gather(comm,
- * locally_owned_dofs())` upon the first invocation, including global
- * communication. Use `Utilities::MPI::all_gather(comm,
- * dof_handler.locally_owned_dofs())` instead if using up to a few thousands
- * of MPI ranks or some variant involving local communication with more
- * processors.
- */
- DEAL_II_DEPRECATED const std::vector<IndexSet> &
- locally_owned_dofs_per_processor() const;
-
- /**
- * Return a vector that stores the number of degrees of freedom each
- * processor that participates in this triangulation owns locally. The sum
- * of all these numbers equals the number of degrees of freedom that exist
- * globally, i.e. what n_dofs() returns.
- *
- * @deprecated As of deal.II version 9.2, we do not populate a vector with
- * the numbers of dofs of all processors by default any more due to a
- * possibly large memory footprint on many processors. As a consequence,
- * this function needs to call `Utilities::MPI::all_gather(comm,
- * n_locally_owned_dofs()` upon the first invocation, including global
- * communication. Use `Utilities::MPI::all_gather(comm,
- * dof_handler.n_locally_owned_dofs()` instead if using up to a few thousands
- * of MPI ranks or some variant involving local communication with more
- * processors.
- */
- DEAL_II_DEPRECATED const std::vector<types::global_dof_index> &
- n_locally_owned_dofs_per_processor() const;
-
- /**
- * Return a vector that stores the locally owned DoFs of each processor on
- * the given level @p level.
- *
- * @deprecated As of deal.II version 9.2, we do not populate a vector with
- * the index sets of all processors by default any more due to a possibly
- * large memory footprint on many processors. As a consequence, this
- * function needs to call `Utilities::MPI::all_gather(comm,
- * locally_owned_dofs_mg())` upon the first invocation, including global
- * communication. Use `Utilities::MPI::all_gather(comm,
- * dof_handler.locally_owned_dofs_mg())` instead if using up to a few
- * thousands of MPI ranks or some variant involving local communication with
- * more processors.
- */
- DEAL_II_DEPRECATED const std::vector<IndexSet> &
- locally_owned_mg_dofs_per_processor(const unsigned int level) const;
-
/**
* Return a constant reference to the indexth finite element object that is
* used by this object.
-template <int dim, int spacedim>
-const std::vector<types::global_dof_index> &
-DoFHandler<dim, spacedim>::n_locally_owned_dofs_per_processor() const
-{
- if (number_cache.n_locally_owned_dofs_per_processor.empty() &&
- number_cache.n_global_dofs > 0)
- {
- const_cast<dealii::internal::DoFHandlerImplementation::NumberCache &>(
- number_cache)
- .n_locally_owned_dofs_per_processor =
- number_cache.get_n_locally_owned_dofs_per_processor(get_communicator());
- }
- return number_cache.n_locally_owned_dofs_per_processor;
-}
-
-
-
-template <int dim, int spacedim>
-const std::vector<IndexSet> &
-DoFHandler<dim, spacedim>::locally_owned_dofs_per_processor() const
-{
- if (number_cache.locally_owned_dofs_per_processor.empty() &&
- number_cache.n_global_dofs > 0)
- {
- const_cast<dealii::internal::DoFHandlerImplementation::NumberCache &>(
- number_cache)
- .locally_owned_dofs_per_processor =
- number_cache.get_locally_owned_dofs_per_processor(get_communicator());
- }
- return number_cache.locally_owned_dofs_per_processor;
-}
-
-
-
-template <int dim, int spacedim>
-const std::vector<IndexSet> &
-DoFHandler<dim, spacedim>::locally_owned_mg_dofs_per_processor(
- const unsigned int level) const
-{
- Assert(level < this->get_triangulation().n_global_levels(),
- ExcMessage("The given level index exceeds the number of levels "
- "present in the triangulation"));
- Assert(
- mg_number_cache.size() == this->get_triangulation().n_global_levels(),
- ExcMessage(
- "The level dofs are not set up properly! Did you call distribute_mg_dofs()?"));
- if (mg_number_cache[level].locally_owned_dofs_per_processor.empty() &&
- mg_number_cache[level].n_global_dofs > 0)
- {
- const_cast<dealii::internal::DoFHandlerImplementation::NumberCache &>(
- mg_number_cache[level])
- .locally_owned_dofs_per_processor =
- mg_number_cache[level].get_locally_owned_dofs_per_processor(
- get_communicator());
- }
- return mg_number_cache[level].locally_owned_dofs_per_processor;
-}
-
-
-
template <int dim, int spacedim>
inline const FiniteElement<dim, spacedim> &
DoFHandler<dim, spacedim>::get_fe(const unsigned int number) const