From cbe61984299c7df4224f4dd83b0d371865d611b7 Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Thu, 1 Oct 2020 14:24:48 +0200
Subject: [PATCH] [NL] NLS; Release non-equilibrium rhs if used.

This avoids a warning at the end for unused vectors.
---
 NumLib/ODESolver/NonlinearSolver.cpp | 17 +++++++++++++++++
 NumLib/ODESolver/NonlinearSolver.h   |  4 ++++
 2 files changed, 21 insertions(+)

diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp
index 360d2cde086..6e0971a54aa 100644
--- a/NumLib/ODESolver/NonlinearSolver.cpp
+++ b/NumLib/ODESolver/NonlinearSolver.cpp
@@ -448,4 +448,21 @@ createNonlinearSolver(GlobalLinearSolver& linear_solver,
 #endif
     OGS_FATAL("Unsupported nonlinear solver type '{:s}'.", type.c_str());
 }
+
+NonlinearSolver<NonlinearSolverTag::Picard>::~NonlinearSolver()
+{
+    if (_r_neq != nullptr)
+    {
+        NumLib::GlobalVectorProvider::provider.releaseVector(*_r_neq);
+    }
+}
+
+NonlinearSolver<NonlinearSolverTag::Newton>::~NonlinearSolver()
+{
+    if (_r_neq != nullptr)
+    {
+        NumLib::GlobalVectorProvider::provider.releaseVector(*_r_neq);
+    }
+}
+
 }  // namespace NumLib
diff --git a/NumLib/ODESolver/NonlinearSolver.h b/NumLib/ODESolver/NonlinearSolver.h
index 26f2c94d228..deac528509c 100644
--- a/NumLib/ODESolver/NonlinearSolver.h
+++ b/NumLib/ODESolver/NonlinearSolver.h
@@ -94,6 +94,8 @@ public:
     {
     }
 
+    ~NonlinearSolver();
+
     //! Set the nonlinear equation system that will be solved.
     //! TODO doc
     void setEquationSystem(System& eq, ConvergenceCriterion& conv_crit)
@@ -172,6 +174,8 @@ public:
     {
     }
 
+    ~NonlinearSolver();
+
     //! Set the nonlinear equation system that will be solved.
     //! TODO doc
     void setEquationSystem(System& eq, ConvergenceCriterion& conv_crit)
-- 
GitLab