From 38cfad0af36d7fd10720dbab3aa7e86c389b68aa Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Fri, 12 Jul 2013 13:25:53 +0000
Subject: [PATCH] Use real_type of field_type for variables storing convergence
 rates

[[Imported from SVN: r11782]]
---
 dune/solvers/solvers/iterativesolver.hh | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/dune/solvers/solvers/iterativesolver.hh b/dune/solvers/solvers/iterativesolver.hh
index 5b0452f0..90d7089a 100644
--- a/dune/solvers/solvers/iterativesolver.hh
+++ b/dune/solvers/solvers/iterativesolver.hh
@@ -1,6 +1,8 @@
 #ifndef DUNE_SOLVERS_ITERATIVE_SOLVER_HH
 #define DUNE_SOLVERS_ITERATIVE_SOLVER_HH
 
+#include <dune/common/ftraits.hh>
+
 #include <dune/solvers/solvers/solver.hh>
 #include <dune/solvers/iterationsteps/iterationstep.hh>
 #include <dune/solvers/norms/norm.hh>
@@ -9,6 +11,11 @@
     template <class VectorType, class BitVectorType = Dune::BitSetVector<VectorType::block_type::dimension> >
     class IterativeSolver : public Solver
     {
+        typedef typename VectorType::field_type field_type;
+
+        // For complex-valued data
+        typedef typename Dune::FieldTraits<field_type>::real_type real_type;
+
     public:
 
         /** \brief Constructor taking all relevant data */
@@ -60,7 +67,7 @@
             directory name.  All intermediate iterates are then written there. */
         std::string historyBuffer_;
 
-        double maxTotalConvRate_;
+        real_type maxTotalConvRate_;
 
         bool useRelativeError_;
 
-- 
GitLab