From: Martin Kronbichler Date: Wed, 26 Jun 2024 20:14:57 +0000 (+0200) Subject: Use new transfer type in benchmark X-Git-Tag: v9.6.0-rc1~52^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87b78e4aa765221f2381d2fd4b057a41e258a176;p=dealii.git Use new transfer type in benchmark --- diff --git a/tests/performance/timing_mg_glob_coarsen.cc b/tests/performance/timing_mg_glob_coarsen.cc index 5134f49f95..5e900aada6 100644 --- a/tests/performance/timing_mg_glob_coarsen.cc +++ b/tests/performance/timing_mg_glob_coarsen.cc @@ -402,7 +402,8 @@ private: PreconditionChebyshev, VectorTypeMG>; mg::SmootherRelaxation mg_smoother; - MGLevelObject> mg_transfers; + MGLevelObject>> + mg_transfers; std::unique_ptr> mg_transfer; }; @@ -621,10 +622,19 @@ LaplaceProblem::setup_transfer() mg_transfers.resize(0, dof_handlers.max_level()); for (unsigned int level = 1; level <= dof_handlers.max_level(); ++level) { - mg_transfers[level].reinit(dof_handlers[level], - dof_handlers[level - 1], - level_constraints[level], - level_constraints[level - 1]); + auto transfer = std::make_unique>(); + if (level < triangulation.n_global_levels()) + transfer->reinit(dof_handlers[level], + dof_handlers[level - 1], + level_constraints[level], + level_constraints[level - 1]); + else + transfer->reinit(level_matrices[level].get_matrix_free(), + 0, + level_matrices[level - 1].get_matrix_free(), + 0); + + mg_transfers[level] = std::move(transfer); } mg_transfer = std::make_unique>(