From: Timo Heister Date: Sun, 26 May 2013 13:02:06 +0000 (+0000) Subject: multigrid in parallel: only track own dofs X-Git-Tag: v8.0.0~433 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2be18796a272d7688ccb6fc1d82a68d9729564de;p=dealii.git multigrid in parallel: only track own dofs git-svn-id: https://svn.dealii.org/trunk@29604 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/source/multigrid/mg_transfer_prebuilt.cc b/deal.II/source/multigrid/mg_transfer_prebuilt.cc index 85c5c74031..fcfd6e1dd5 100644 --- a/deal.II/source/multigrid/mg_transfer_prebuilt.cc +++ b/deal.II/source/multigrid/mg_transfer_prebuilt.cc @@ -272,9 +272,16 @@ void MGTransferPrebuilt::build_matrices ( level_cell->get_dof_indices(global_dof_indices); level_cell->get_mg_dof_indices (level_dof_indices); + // ignore dofs that + // 1. are not locally owned + // 2. are constrained at a refinement edge for (unsigned int i=0; iat_refinement_edge(level,level_dof_indices[i])) + if (mg_dof.locally_owned_dofs().is_element(global_dof_indices[i]) + && + ( + mg_constrained_dofs == 0 + || !mg_constrained_dofs->at_refinement_edge(level,level_dof_indices[i]) + )) temp_copy_indices[level_dof_indices[i]] = global_dof_indices[i]; }