From 42938b2b71e9d537aefc95c270fe7bf849f41f8d Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Fri, 6 Nov 2020 10:29:27 +0100 Subject: [PATCH] Fix SolverCG for sm-mode L:d:V --- .../lac/la_parallel_vector.templates.h | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/include/deal.II/lac/la_parallel_vector.templates.h b/include/deal.II/lac/la_parallel_vector.templates.h index 24a1864fa7..235e2d9821 100644 --- a/include/deal.II/lac/la_parallel_vector.templates.h +++ b/include/deal.II/lac/la_parallel_vector.templates.h @@ -134,27 +134,15 @@ namespace LinearAlgebra { if (comm_shared == MPI_COMM_SELF) { - if (new_alloc_size > allocated_size) - { - Assert(((allocated_size > 0 && data.values != nullptr) || - data.values == nullptr), - ExcInternalError()); + Number *new_val; + Utilities::System::posix_memalign( + reinterpret_cast(&new_val), + 64, + sizeof(Number) * new_alloc_size); + data.values = {new_val, [](Number *data) { std::free(data); }}; - Number *new_val; - Utilities::System::posix_memalign( - reinterpret_cast(&new_val), - 64, - sizeof(Number) * new_alloc_size); - data.values = {new_val, - [](Number *data) { std::free(data); }}; + allocated_size = new_alloc_size; - allocated_size = new_alloc_size; - } - else if (new_alloc_size == 0) - { - data.values.reset(); - allocated_size = 0; - } data.values_sm = { ArrayView(data.values.get(), new_alloc_size)}; } -- 2.39.5