case 2:
{
for (; cell != dof_handler.end (); ++cell)
- if (cell->at_boundary ())
+ if (cell->at_boundary () && cell->is_locally_owned ())
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face (face)->boundary_indicator () == boundary_component)
{
const double tol = 1e-13;
for (unsigned int dof = 0; dof < dofs_per_face; ++dof)
- if (!(constraints.is_constrained (face_dof_indices[dof])))
+ if (constraints.can_store_line (face_dof_indices[dof])
+ && !(constraints.is_constrained (face_dof_indices[dof])))
{
constraints.add_line (face_dof_indices[dof]);
}
for (; cell != dof_handler.end (); ++cell)
- if (cell->at_boundary ())
+ if (cell->at_boundary () && cell->is_locally_owned ())
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face (face)->boundary_indicator () == boundary_component)
{
// the degree of freedom is not
// already constrained.
for (unsigned int dof = 0; dof < n_dofs; ++dof)
- if ((projected_dofs[dof] != -1) && !(constraints.is_constrained (dof)))
+ if ((projected_dofs[dof] != -1) && constraints.can_store_line (dof)
+ && !(constraints.is_constrained (dof)))
{
constraints.add_line (dof);
constraints.set_inhomogeneity (dof, computed_constraints[dof]);
case 2:
{
for (; cell != dof_handler.end (); ++cell)
- if (cell->at_boundary ())
+ if (cell->at_boundary () && cell->is_locally_owned ())
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face (face)->boundary_indicator () == boundary_component)
{
const double tol = 0.5 * cell->get_fe ().degree * 1e-13 / cell->face (face)->diameter ();
for (unsigned int dof = 0; dof < dofs_per_face; ++dof)
- if (!(constraints.is_constrained (face_dof_indices[dof])))
+ if (constraints.can_store_line (face_dof_indices[dof])
+ && !(constraints.is_constrained (face_dof_indices[dof])))
{
constraints.add_line (face_dof_indices[dof]);
}
for (; cell != dof_handler.end (); ++cell)
- if (cell->at_boundary ())
+ if (cell->at_boundary () && cell->is_locally_owned ())
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face (face)->boundary_indicator () == boundary_component)
{
}
for (unsigned int dof = 0; dof < n_dofs; ++dof)
- if ((projected_dofs[dof] != -1) && !(constraints.is_constrained (dof)))
+ if ((projected_dofs[dof] != -1) && constraints.can_store_line (dof)
+ && !(constraints.is_constrained (dof)))
{
constraints.add_line (dof);
constraints.set_inhomogeneity (dof, computed_constraints[dof]);