From 0b80b0b8d244295f6c625a4b5a481aaf3593884a Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Fri, 31 Mar 2023 16:21:28 +0000 Subject: [PATCH] Work around nvcc compiler bug --- .../mg_transfer_global_coarsening.templates.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 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 2f9fc9ec04..5cec4ffa6a 100644 --- a/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h +++ b/include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h @@ -76,11 +76,17 @@ namespace else if ((degree_fine == (2 * deg + 1)) && (degree_coarse == deg)) fu.template run<2 * deg + 1, deg>(); // h-MG else if ((degree_fine == deg) && (degree_coarse == std::max(deg / 2, 1u))) - fu.template run(); // p-MG: bisection + { + constexpr unsigned int degree_coarse_used = std::max(deg / 2u, 1u); + fu.template run(); // p-MG: bisection + } else if ((degree_fine == deg) && (degree_coarse == deg)) fu.template run(); // identity (nothing to do) else if ((degree_fine == deg) && (degree_coarse == std::max(deg - 1, 1u))) - fu.template run(); // p-MG: -- + { + constexpr unsigned int degree_coarse_used = std::max(deg - 1u, 1u); + fu.template run(); // p-MG: -- + } else if ((degree_fine == deg) && (degree_coarse == 1)) fu.template run(); // p-MG: jump to 1 else if (deg < max_degree) -- 2.39.5