From ef2cc4afe0e5f9ab54f4fa2682979e726fc1e7f1 Mon Sep 17 00:00:00 2001
From: Benjamin Faigle <benjamin.faigle@posteo.de>
Date: Tue, 14 Aug 2012 09:03:59 +0000
Subject: [PATCH] Fixed Impet iteration for compositional models using more
 than one transported quantity: iterative transport vectors are now
 initialized with model-specific transport vectors for correct size. reviewed
 by markus

git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@8854 2fb0f335-1f38-0410-981e-8018bf24f1b0
---
 dumux/decoupled/common/impet.hh | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/dumux/decoupled/common/impet.hh b/dumux/decoupled/common/impet.hh
index f8510ab46c..8135734d7b 100644
--- a/dumux/decoupled/common/impet.hh
+++ b/dumux/decoupled/common/impet.hh
@@ -111,12 +111,11 @@ public:
             // the method is valid for any transported quantity.
             TransportSolutionType transValueOldIter;
             problem_.transportModel().getTransportedQuantity(transValueOldIter);
-            int transSize = transValueOldIter.size();
-            TransportSolutionType updateOldIter(transSize);
+            TransportSolutionType updateOldIter(transValueOldIter);
             updateOldIter = 0;
-            TransportSolutionType transportedQuantity(transSize);
-            TransportSolutionType updateHelp(transSize);
-            TransportSolutionType updateDiff(transSize);
+            TransportSolutionType transportedQuantity(transValueOldIter);
+            TransportSolutionType updateHelp(transValueOldIter);
+            TransportSolutionType updateDiff(transValueOldIter);
 
             while (!converg)
             {
@@ -138,7 +137,7 @@ public:
                 updateDiff -= updateOldIter;
                 transValueOldIter = transportedQuantity;
                 updateOldIter = updateVec;
-
+                Dune::dinfo << " defect = " << dt * updateDiff.two_norm() / transportedQuantity.two_norm();
                 // break criteria for iteration loop
                 if (iterFlag_ == 2 && dt * updateDiff.two_norm() / transportedQuantity.two_norm() <= maxDefect_)
                 {
-- 
GitLab