From 7f6afd8ab1318f1096c955e5548d5fd6213c01d8 Mon Sep 17 00:00:00 2001
From: Bernd Flemisch <bernd@iws.uni-stuttgart.de>
Date: Fri, 31 Aug 2018 12:43:54 +0200
Subject: [PATCH] [io][1p] add IOFields

Adapt and rename OnePVtkOutputFields. Adapt model.hh.
---
 .../1p/{vtkoutputfields.hh => iofields.hh}    | 34 +++++++++++++++----
 dumux/porousmediumflow/1p/model.hh            |  6 ++--
 2 files changed, 30 insertions(+), 10 deletions(-)
 rename dumux/porousmediumflow/1p/{vtkoutputfields.hh => iofields.hh} (66%)

diff --git a/dumux/porousmediumflow/1p/vtkoutputfields.hh b/dumux/porousmediumflow/1p/iofields.hh
similarity index 66%
rename from dumux/porousmediumflow/1p/vtkoutputfields.hh
rename to dumux/porousmediumflow/1p/iofields.hh
index fc5642d524..ad66508d6b 100644
--- a/dumux/porousmediumflow/1p/vtkoutputfields.hh
+++ b/dumux/porousmediumflow/1p/iofields.hh
@@ -21,22 +21,42 @@
  * \ingroup OnePModel
  * \brief Adds vtk output fields specific to the one phase model
  */
-#ifndef DUMUX_ONEP_VTK_OUTPUT_FIELDS_HH
-#define DUMUX_ONEP_VTK_OUTPUT_FIELDS_HH
+#ifndef DUMUX_ONEP_IO_FIELDS_HH
+#define DUMUX_ONEP_IO_FIELDS_HH
+
+#include <dune/common/deprecated.hh>
+
+#include <dumux/io/fieldnames.hh>
 
 namespace Dumux {
 
+using namespace IOFieldNames;
+
 /*!
  * \ingroup OnePModel
- * \brief Adds vtk output fields specific to the one phase model
+ * \brief Adds I/O fields specific to the one phase model
  */
-class OnePVtkOutputFields
+class OnePIOFields
 {
 public:
-    template <class VtkOutputModule>
-    static void init(VtkOutputModule& vtk)
+    template <class OutputModule>
+    static void initOutputModule(OutputModule& out)
+    {
+        out.addVolumeVariable([](const auto& volVars){ return volVars.pressure(); },
+                              pressure());
+    }
+
+    template <class OutputModule>
+    DUNE_DEPRECATED_MSG("use initOutputModule instead")
+    static void init(OutputModule& out)
+    {
+        initOutputModule(out);
+    }
+
+    template <class FluidSystem = void, class SolidSystem = void>
+    static std::string primaryVariableName(int pvIdx = 0, int state = 0)
     {
-        vtk.addVolumeVariable([](const auto& volVars){ return volVars.pressure(); }, "p");
+        return pressure();
     }
 };
 
diff --git a/dumux/porousmediumflow/1p/model.hh b/dumux/porousmediumflow/1p/model.hh
index 51b0bc168a..1de0921a96 100644
--- a/dumux/porousmediumflow/1p/model.hh
+++ b/dumux/porousmediumflow/1p/model.hh
@@ -54,7 +54,7 @@
 
 #include "indices.hh"
 #include "volumevariables.hh"
-#include "vtkoutputfields.hh"
+#include "iofields.hh"
 
 namespace Dumux {
 
@@ -119,7 +119,7 @@ NEW_TYPE_TAG(OnePNI, INHERITS_FROM(OneP));
 ///////////////////////////////////////////////////////////////////////////
 // properties for the isothermal single phase model
 ///////////////////////////////////////////////////////////////////////////
-SET_TYPE_PROP(OneP, VtkOutputFields, OnePVtkOutputFields);            //!< default vtk output fields specific to this model
+SET_TYPE_PROP(OneP, IOFields, OnePIOFields);                          //!< default I/O fields specific to this model
 SET_TYPE_PROP(OneP, LocalResidual, ImmiscibleLocalResidual<TypeTag>); //!< the local residual function
 SET_TYPE_PROP(OneP, ModelTraits, OnePModelTraits);                    //!< states some specifics of the one-phase model
 
@@ -160,7 +160,7 @@ public:
 ///////////////////////////////////////////////////////////////////////////
 
 //! Add temperature to the output
-SET_TYPE_PROP(OnePNI, VtkOutputFields, EnergyVtkOutputFields<OnePVtkOutputFields>);
+SET_TYPE_PROP(OnePNI, VtkOutputFields, EnergyVtkOutputFields<OnePIOFields>);
 
 //! The model traits of the non-isothermal model
 SET_TYPE_PROP(OnePNI, ModelTraits, PorousMediumFlowNIModelTraits<OnePModelTraits>);
-- 
GitLab