From 65a27af31fdadea99026a9d3625d0febf91706a2 Mon Sep 17 00:00:00 2001
From: Katharina Heck <katharina.heck@iws.uni-stuttgart.de>
Date: Thu, 8 Mar 2018 15:12:39 +0100
Subject: [PATCH] [tracer] remove typtag in vtkoutput

---
 dumux/porousmediumflow/tracer/model.hh           | 11 +++++++++--
 dumux/porousmediumflow/tracer/vtkoutputfields.hh | 11 +++++------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/dumux/porousmediumflow/tracer/model.hh b/dumux/porousmediumflow/tracer/model.hh
index 38749aa40f..b36fbb8ade 100644
--- a/dumux/porousmediumflow/tracer/model.hh
+++ b/dumux/porousmediumflow/tracer/model.hh
@@ -97,8 +97,15 @@ SET_BOOL_PROP(Tracer, UseMoles, true); //!< Define that mole fractions are used
 //! Use the tracer local residual function for the tracer model
 SET_TYPE_PROP(Tracer, LocalResidual, TracerLocalResidual<TypeTag>);
 
-//! Set the default vtk output fields
-SET_TYPE_PROP(Tracer, VtkOutputFields, TracerVtkOutputFields<TypeTag>);
+//! Set the vtk output fields specific to this model
+SET_PROP(Tracer, VtkOutputFields)
+{
+private:
+   using FluidSystem =  typename GET_PROP_TYPE(TypeTag, FluidSystem);
+public:
+    using type = TracerVtkOutputFields<FluidSystem>;
+};
+
 
 //! define the VolumeVariables
 SET_TYPE_PROP(Tracer, VolumeVariables, TracerVolumeVariables<TypeTag>);
diff --git a/dumux/porousmediumflow/tracer/vtkoutputfields.hh b/dumux/porousmediumflow/tracer/vtkoutputfields.hh
index 77eb44e2e3..d8c4b1d48d 100644
--- a/dumux/porousmediumflow/tracer/vtkoutputfields.hh
+++ b/dumux/porousmediumflow/tracer/vtkoutputfields.hh
@@ -33,11 +33,10 @@ namespace Dumux
  * \ingroup TracerModel
  * \brief Adds vtk output fields specific to the tracer model
  */
-template<class TypeTag>
+template<class FluidSystem>
 class TracerVtkOutputFields
 {
-    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+
 public:
     template <class VtkOutputModule>
     static void init(VtkOutputModule& vtk)
@@ -45,12 +44,12 @@ public:
         // register standardized vtk output fields
         for (int compIdx = 0; compIdx < FluidSystem::numComponents; ++compIdx)
         {
-            vtk.addVolumeVariable( [compIdx](const VolumeVariables& v){  return v.moleFraction(0, compIdx); },
+            vtk.addVolumeVariable( [compIdx](const auto& v){  return v.moleFraction(0, compIdx); },
                                    "x_" + std::string(FluidSystem::componentName(compIdx)));
-            vtk.addVolumeVariable( [compIdx](const VolumeVariables& v){  return v.massFraction(0, compIdx); },
+            vtk.addVolumeVariable( [compIdx](const auto& v){  return v.massFraction(0, compIdx); },
                                    "X_" + std::string(FluidSystem::componentName(compIdx)));
         }
-        vtk.addVolumeVariable( [](const VolumeVariables& v){ return v.density(); }, "rho");
+        vtk.addVolumeVariable( [](const auto& v){ return v.density(); }, "rho");
     }
 };
 
-- 
GitLab