From f067ffd7e3922110e1c03aa22a0c160f300d2662 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Thu, 24 Aug 2017 16:02:36 -0600 Subject: [PATCH] Convert more hand-allocations to VectorMemory::Pointer. --- .../deal.II/lac/constrained_linear_operator.h | 4 +--- include/deal.II/lac/eigen.h | 7 ++----- include/deal.II/lac/packaged_operation.h | 16 ++++------------ 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/include/deal.II/lac/constrained_linear_operator.h b/include/deal.II/lac/constrained_linear_operator.h index 509d35bb7c..5d4c70ba12 100644 --- a/include/deal.II/lac/constrained_linear_operator.h +++ b/include/deal.II/lac/constrained_linear_operator.h @@ -318,13 +318,11 @@ constrained_right_hand_side(const ConstraintMatrix &constraint_matrix, const auto Ct = transpose_operator(C); static GrowingVectorMemory vector_memory; - Domain *k = vector_memory.alloc(); + typename VectorMemory::Pointer k (vector_memory); linop.reinit_domain_vector(*k, /*bool fast=*/ false); constraint_matrix.distribute(*k); v += Ct * (right_hand_side - linop **k); - - vector_memory.free(k); }; // lambda capture expressions are a C++14 feature... diff --git a/include/deal.II/lac/eigen.h b/include/deal.II/lac/eigen.h index 26e0d8ec91..ddd9e9a2dd 100644 --- a/include/deal.II/lac/eigen.h +++ b/include/deal.II/lac/eigen.h @@ -239,10 +239,10 @@ EigenPower::solve (double &value, deallog.push("Power method"); - VectorType *Vy = this->memory.alloc (); + typename VectorMemory::Pointer Vy (this->memory); VectorType &y = *Vy; y.reinit (x); - VectorType *Vr = this->memory.alloc (); + typename VectorMemory::Pointer Vr (this->memory); VectorType &r = *Vr; r.reinit (x); @@ -291,9 +291,6 @@ EigenPower::solve (double &value, conv = this->iteration_status (iter, std::fabs(1./length-1./old_length), x); } - this->memory.free(Vy); - this->memory.free(Vr); - deallog.pop(); // in case of failure: throw exception diff --git a/include/deal.II/lac/packaged_operation.h b/include/deal.II/lac/packaged_operation.h index f34d1ca484..e801def071 100644 --- a/include/deal.II/lac/packaged_operation.h +++ b/include/deal.II/lac/packaged_operation.h @@ -750,26 +750,22 @@ operator*(const LinearOperator &op, { static GrowingVectorMemory vector_memory; - Range *i = vector_memory.alloc(); + typename VectorMemory::Pointer i (vector_memory); op.reinit_domain_vector(*i, /*bool omit_zeroing_entries =*/ true); comp.apply(*i); op.vmult(v, *i); - - vector_memory.free(i); }; return_comp.apply_add = [op, comp](Domain &v) { static GrowingVectorMemory vector_memory; - Range *i = vector_memory.alloc(); + typename VectorMemory::Pointer i (vector_memory); op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true); comp.apply(*i); op.vmult_add(v, *i); - - vector_memory.free(i); }; return return_comp; @@ -800,26 +796,22 @@ operator*(const PackagedOperation &comp, { static GrowingVectorMemory vector_memory; - Range *i = vector_memory.alloc(); + typename VectorMemory::Pointer i (vector_memory); op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true); comp.apply(*i); op.Tvmult(v, *i); - - vector_memory.free(i); }; return_comp.apply_add = [op, comp](Domain &v) { static GrowingVectorMemory vector_memory; - Range *i = vector_memory.alloc(); + typename VectorMemory::Pointer i (vector_memory); op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true); comp.apply(*i); op.Tvmult_add(v, *i); - - vector_memory.free(i); }; return return_comp; -- 2.39.5