- PreconditionBlock::size.
- MGTools::count_dofs_per_component.
- MGTools::apply_boundary_values.
+ - MGTools::extract_inner_interface_dofs.
<br>
This release also removes the deprecated class MGDoFHandler. The
functionality of this class had previously been incorporated into
extract_inner_interface_dofs (const DoFHandler<dim,spacedim> &mg_dof_handler,
std::vector<IndexSet> &interface_dofs);
- /**
- * As above but with a deprecated data structure. This makes one additional
- * copy.
- */
- template <int dim, int spacedim>
- void
- extract_inner_interface_dofs (const DoFHandler<dim,spacedim> &mg_dof_handler,
- std::vector<std::vector<bool> > &interface_dofs) DEAL_II_DEPRECATED;
-
template <int dim, int spacedim>
void
unsigned int mg_selected_component;
/**
- * The degrees of freedom on the the refinement edges. For each level (outer
- * vector) and each dof index (inner vector), this bool is true if the level
- * degree of freedom is on the refinement edge towards the lower level
+ * The degrees of freedom on the refinement edges. For each level the index
+ * set denotes which level
+ * degrees of freedom are on the refinement edge towards the lower level,
* excluding boundary dofs.
*/
- std::vector<std::vector<bool> > interface_dofs;
+ std::vector<IndexSet> interface_dofs;
/**
* The constraints of the global system.
}
- template <int dim, int spacedim>
- void
- extract_inner_interface_dofs (const DoFHandler<dim,spacedim> &mg_dof_handler,
- std::vector<std::vector<bool> > &interface_dofs)
- {
- std::vector<IndexSet> temp;
- temp.resize(interface_dofs.size());
- for (unsigned int l=0; l<interface_dofs.size(); ++l)
- temp[l] = IndexSet(interface_dofs[l].size());
-
- extract_inner_interface_dofs(mg_dof_handler, temp);
-
- for (unsigned int l=0; l<interface_dofs.size(); ++l)
- {
- Assert (interface_dofs[l].size() == mg_dof_handler.n_dofs(l),
- ExcDimensionMismatch (interface_dofs[l].size(),
- mg_dof_handler.n_dofs(l)));
-
- temp[l].fill_binary_vector(interface_dofs[l]);
- }
- }
-
-
template <int dim, int spacedim>
void
extract_non_interface_dofs (const DoFHandler<dim,spacedim> &mg_dof_handler,
void
extract_inner_interface_dofs (const DoFHandler<deal_II_dimension> &mg_dof_handler,
std::vector<IndexSet> &interface_dofs);
- template
- void
- extract_inner_interface_dofs (const DoFHandler<deal_II_dimension> &mg_dof_handler,
- std::vector<std::vector<bool> > &interface_dofs);
template
void
interface_dofs.resize(mg_dof.get_tria().n_levels());
for (unsigned int l=0; l<mg_dof.get_tria().n_levels(); ++l)
- interface_dofs[l].resize(mg_dof.n_dofs(l));
+ {
+ interface_dofs[l].clear();
+ interface_dofs[l].set_size(mg_dof.n_dofs(l));
+ }
MGTools::extract_inner_interface_dofs(mg_dof, interface_dofs);
// use a temporary vector to create the
const unsigned int component
= fe.system_to_component_index(i).first;
if (component_mask[component] &&
- !interface_dofs[level][level_dof_indices[i]])
+ !interface_dofs[level].is_element(level_dof_indices[i]))
{
const types::global_dof_index level_start
= mg_component_start[level][mg_target_component[component]];