From b4b126dce5f9fe2ecf9a016a15e335170e8adf09 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Tue, 13 Aug 2024 05:46:49 +0200
Subject: [PATCH] Change template arg of CosseratVTKWriter to be the grid view

Rather than the grid itself.  Because the grid view is all that
a writer needs to know about.
---
 dune/gfe/cosseratvtkwriter.hh       |  8 ++++----
 src/cosserat-continuum.cc           | 12 ++++++------
 src/rod3d.cc                        |  2 +-
 test/nonplanarcosseratenergytest.cc |  2 +-
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/dune/gfe/cosseratvtkwriter.hh b/dune/gfe/cosseratvtkwriter.hh
index b126e1f3..d814d73b 100644
--- a/dune/gfe/cosseratvtkwriter.hh
+++ b/dune/gfe/cosseratvtkwriter.hh
@@ -17,11 +17,11 @@
 
 
 /** \brief Write the configuration of a Cosserat material in VTK format */
-template <class GridType>
+template <class GridView>
 class CosseratVTKWriter
 {
 
-  static const int dim = GridType::dimension;
+  static const int dim = GridView::dimension;
 
   template <typename Basis1, typename Basis2>
   static void downsample(const Basis1& basis1, const std::vector<Dune::GFE::ProductManifold<RealTuple<double,3>,Rotation<double,3> > >& v1,
@@ -80,7 +80,7 @@ class CosseratVTKWriter
     s << 's' << std::setw(4) << std::setfill('0') << commSize << '-';
     s << 'p' << std::setw(4) << std::setfill('0') << commRank << '-';
     s << name;
-    if(GridType::dimension > 1)
+    if(GridView::dimension > 1)
       s << ".vtu";
     else
       s << ".vtp";
@@ -103,7 +103,7 @@ class CosseratVTKWriter
     }
     s << 's' << std::setw(4) << std::setfill('0') << commSize << '-';
     s << name;
-    if(GridType::dimension > 1)
+    if(GridView::dimension > 1)
       s << ".pvtu";
     else
       s << ".pvtp";
diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index ad1d6bbe..6f561541 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -413,14 +413,14 @@ int main (int argc, char *argv[]) try
 
   // Output initial iterate (of homotopy loop)
   if (dim == 2 && dimworld == 2) {
-    CosseratVTKWriter<GridType>::writeMixed<DeformationFEBasis,OrientationFEBasis>(deformationFEBasis,x[_0],
+    CosseratVTKWriter<GridView>::writeMixed<DeformationFEBasis,OrientationFEBasis>(deformationFEBasis,x[_0],
                                                                                    orientationFEBasis,x[_1],
                                                                                    resultPath + "cosserat_homotopy_0_l" + std::to_string(numLevels));
   } else if (dim == 2 && dimworld == 3) {
 #if MIXED_SPACE
-    CosseratVTKWriter<GridType>::write<DeformationFEBasis>(deformationFEBasis, x[_0], resultPath + "cosserat_homotopy_0_l" + std::to_string(numLevels));
+    CosseratVTKWriter<GridView>::write<DeformationFEBasis>(deformationFEBasis, x[_0], resultPath + "cosserat_homotopy_0_l" + std::to_string(numLevels));
 #else
-    CosseratVTKWriter<GridType>::write<DeformationFEBasis>(deformationFEBasis, x, resultPath + "cosserat_homotopy_0_l" + std::to_string(numLevels));
+    CosseratVTKWriter<GridView>::write<DeformationFEBasis>(deformationFEBasis, x, resultPath + "cosserat_homotopy_0_l" + std::to_string(numLevels));
 #endif
   } else if (dim == 3 && dimworld == 3) {
 
@@ -735,14 +735,14 @@ int main (int argc, char *argv[]) try
     iAsAscii << i+1;
 
     if (dim == 2 && dimworld == 2) {
-      CosseratVTKWriter<GridType>::writeMixed<DeformationFEBasis,OrientationFEBasis>(deformationFEBasis,x[_0],
+      CosseratVTKWriter<GridView>::writeMixed<DeformationFEBasis,OrientationFEBasis>(deformationFEBasis,x[_0],
                                                                                      orientationFEBasis,x[_1],
                                                                                      resultPath + "cosserat_homotopy_" + iAsAscii.str());
     } else if (dim == 2 && dimworld == 3) {
 #if MIXED_SPACE
-      CosseratVTKWriter<GridType>::write<DeformationFEBasis>(deformationFEBasis, x[_0], resultPath + "cosserat_homotopy_" + std::to_string(i+1) + "_l" + std::to_string(numLevels));
+      CosseratVTKWriter<GridView>::write<DeformationFEBasis>(deformationFEBasis, x[_0], resultPath + "cosserat_homotopy_" + std::to_string(i+1) + "_l" + std::to_string(numLevels));
 #else
-      CosseratVTKWriter<GridType>::write<DeformationFEBasis>(deformationFEBasis, x, resultPath + "cosserat_homotopy_" + std::to_string(i+1) + "_l" + std::to_string(numLevels));
+      CosseratVTKWriter<GridView>::write<DeformationFEBasis>(deformationFEBasis, x, resultPath + "cosserat_homotopy_" + std::to_string(i+1) + "_l" + std::to_string(numLevels));
 #endif
     } else if (dim == 3 && dimworld == 3) {
 
diff --git a/src/rod3d.cc b/src/rod3d.cc
index 68cb905f..9e199f71 100644
--- a/src/rod3d.cc
+++ b/src/rod3d.cc
@@ -294,7 +294,7 @@ int main (int argc, char *argv[]) try
 #else
   std::cout << "Falling back to legacy file writing.  Get dune-vtk for better results" << std::endl;
   // Fall-back solution for users without dune-vtk
-  CosseratVTKWriter<GridType>::write<ScalarBasis>(scalarBasis,x, resultPath + "rod3d-result");
+  CosseratVTKWriter<GridView>::write<ScalarBasis>(scalarBasis,x, resultPath + "rod3d-result");
 #endif
 
 }
diff --git a/test/nonplanarcosseratenergytest.cc b/test/nonplanarcosseratenergytest.cc
index 16733a46..9a55a5fc 100644
--- a/test/nonplanarcosseratenergytest.cc
+++ b/test/nonplanarcosseratenergytest.cc
@@ -114,7 +114,7 @@ double calculateEnergy(const int numLevels, const F1 referenceConfigurationFunct
     solTuple[_0][i] = sol[i][_0];
     solTuple[_1][i] = sol[i][_1];
   }
-  CosseratVTKWriter<GridType>::write<FEBasis>(feBasis, solTuple, "configuration_l" + std::to_string(numLevels));
+  CosseratVTKWriter<decltype(gridView)>::write<FEBasis>(feBasis, solTuple, "configuration_l" + std::to_string(numLevels));
 
   double energy = 0;
   // A view on the FE basis on a single element
-- 
GitLab