From d182f5f1da02a7cde4cface810abeb7163cebbd1 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Tue, 11 Feb 2014 12:53:39 +0100
Subject: [PATCH] [Cleanup] Allow vtk writer to be const

---
 src/one-body-sample.cc |  4 ++--
 src/vtk.cc             | 14 +++++---------
 src/vtk.hh             |  6 ++----
 src/vtk_tmpl.cc        |  4 ++--
 4 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 7e494304..3dd8bf6a 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -287,7 +287,7 @@ int main(int argc, char *argv[]) {
     writer.writeInfo(alpha_initial, u_initial, v_initial);
 
     MyVTKWriter<typename MyAssembler::VertexBasis,
-                typename MyAssembler::CellBasis>
+                typename MyAssembler::CellBasis> const
     vtkWriter(myAssembler.cellBasis, myAssembler.vertexBasis, "obs");
 
     // Set up TNNMG solver
@@ -442,7 +442,7 @@ int main(int argc, char *argv[]) {
         ScalarVector stress;
         myAssembler.assembleVonMisesStress(body.getYoungModulus(),
                                            body.getPoissonRatio(), u, stress);
-        vtkWriter.write(u, v, alpha, stress);
+        vtkWriter.write(timeStep - 1, u, v, alpha, stress);
       }
     }
     iterationWriter.close();
diff --git a/src/vtk.cc b/src/vtk.cc
index f1a1e6df..0155384e 100644
--- a/src/vtk.cc
+++ b/src/vtk.cc
@@ -12,17 +12,13 @@ template <class VertexBasis, class CellBasis>
 MyVTKWriter<VertexBasis, CellBasis>::MyVTKWriter(
     CellBasis const &_cellBasis, VertexBasis const &_vertexBasis,
     std::string _prefix)
-    : cellBasis(_cellBasis),
-      vertexBasis(_vertexBasis),
-      prefix(_prefix),
-      counter(0) {}
+    : cellBasis(_cellBasis), vertexBasis(_vertexBasis), prefix(_prefix) {}
 
 template <class VertexBasis, class CellBasis>
 template <class Vector, class ScalarVector>
-void MyVTKWriter<VertexBasis, CellBasis>::write(Vector const &u,
-                                                Vector const &v,
-                                                ScalarVector const &alpha,
-                                                ScalarVector const &stress) {
+void MyVTKWriter<VertexBasis, CellBasis>::write(
+    size_t record, Vector const &u, Vector const &v, ScalarVector const &alpha,
+    ScalarVector const &stress) const {
   Dune::VTKWriter<typename VertexBasis::GridView> writer(
       vertexBasis.getGridView());
 
@@ -46,7 +42,7 @@ void MyVTKWriter<VertexBasis, CellBasis>::write(Vector const &u,
           cellBasis, stress, "stress");
   writer.addCellData(stressPointer);
 
-  std::string const filename = prefix + std::to_string(counter++);
+  std::string const filename = prefix + std::to_string(record);
   writer.write(filename.c_str());
 }
 
diff --git a/src/vtk.hh b/src/vtk.hh
index a5b62db3..ffa89983 100644
--- a/src/vtk.hh
+++ b/src/vtk.hh
@@ -8,15 +8,13 @@ template <class VertexBasis, class CellBasis> class MyVTKWriter {
   VertexBasis const &vertexBasis;
   std::string const prefix;
 
-  size_t counter;
-
 public:
   MyVTKWriter(CellBasis const &cellBasis, VertexBasis const &vertexBasis,
               std::string prefix);
 
   template <class Vector, class ScalarVector>
-  void write(Vector const &u, Vector const &v, ScalarVector const &alpha,
-             ScalarVector const &stress);
+  void write(size_t record, Vector const &u, Vector const &v,
+             ScalarVector const &alpha, ScalarVector const &stress) const;
 };
 
 #endif
diff --git a/src/vtk_tmpl.cc b/src/vtk_tmpl.cc
index 027d42f9..2b193004 100644
--- a/src/vtk_tmpl.cc
+++ b/src/vtk_tmpl.cc
@@ -14,5 +14,5 @@ using P1Basis = P1NodalBasis<GridView, double>;
 template class MyVTKWriter<P1Basis, MyP0Basis>;
 
 template void MyVTKWriter<P1Basis, MyP0Basis>::write<Vector, ScalarVector>(
-    Vector const &u, Vector const &v, ScalarVector const &alpha,
-    ScalarVector const &stress);
+    size_t record, Vector const &u, Vector const &v, ScalarVector const &alpha,
+    ScalarVector const &stress) const;
-- 
GitLab