From b2306a9d92f63cad0ab4e32ff708c7167894a6b0 Mon Sep 17 00:00:00 2001 From: heister Date: Sun, 26 May 2013 13:02:06 +0000 Subject: [PATCH] multigrid in parallel: only track own dofs git-svn-id: https://svn.dealii.org/trunk@29604 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/source/multigrid/mg_transfer_prebuilt.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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]; } -- 2.39.5