From 1407c44a16a48cd43b54ec107b1cd70ddd8200aa Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Mon, 5 Apr 2021 07:58:49 +0200 Subject: [PATCH] Make tests work again --- .../mg_transfer_global_coarsening.templates.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h b/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h index af7b5e691c..5e1cc25cca 100644 --- a/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h +++ b/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h @@ -2184,7 +2184,7 @@ MGTwoLevelTransfer>::prolongate( weights[i]; else for (unsigned int i = 0; i < scheme.dofs_per_cell_fine; ++i) - dst.local_element(indices_fine[i]) = + this->vec_fine.local_element(indices_fine[i]) = this->vec_coarse.local_element(indices_coarse[i]); indices_fine += scheme.dofs_per_cell_fine; @@ -2264,7 +2264,8 @@ MGTwoLevelTransfer>::prolongate( evaluation_data_fine[i][v] * weights[i]; else for (unsigned int i = 0; i < scheme.dofs_per_cell_fine; ++i) - dst.local_element(indices[i]) = evaluation_data_fine[i][v]; + this->vec_fine.local_element(indices[i]) = + evaluation_data_fine[i][v]; indices += scheme.dofs_per_cell_fine; @@ -2279,10 +2280,10 @@ MGTwoLevelTransfer>::prolongate( // in do_restrict_add does not work if (schemes.size() > 0 && schemes.front().fine_element_is_continuous) - { - this->vec_fine.compress(VectorOperation::add); - dst.copy_locally_owned_data_from(this->vec_fine); - } + this->vec_fine.compress(VectorOperation::add); + + if (true || schemes.size() > 0 && schemes.front().fine_element_is_continuous) + dst.copy_locally_owned_data_from(this->vec_fine); } @@ -2352,7 +2353,8 @@ MGTwoLevelTransfer>:: else for (unsigned int i = 0; i < scheme.dofs_per_cell_fine; ++i) distribute_local_to_global(indices_coarse[i], - src.local_element(indices_fine[i]), + this->vec_fine.local_element( + indices_fine[i]), this->vec_coarse); indices_fine += scheme.dofs_per_cell_fine; @@ -2401,7 +2403,8 @@ MGTwoLevelTransfer>:: this->vec_fine.local_element(indices[i]) * weights[i]; else for (unsigned int i = 0; i < scheme.dofs_per_cell_fine; ++i) - evaluation_data_fine[i][v] = src.local_element(indices[i]); + evaluation_data_fine[i][v] = + this->vec_fine.local_element(indices[i]); indices += scheme.dofs_per_cell_fine; -- 2.39.5