From ab49330bdd1e7c9d4aba8ac10760cf1c6b220631 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Sat, 28 Mar 2015 12:27:56 +0100
Subject: [PATCH] [Output ] Centralise special writing

Write out time step #0, too
---
 src/sand-wedge.cc | 44 +++++++++++++++++++++-----------------------
 1 file changed, 21 insertions(+), 23 deletions(-)

diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc
index d529e770..1cf9d0ba 100644
--- a/src/sand-wedge.cc
+++ b/src/sand-wedge.cc
@@ -313,17 +313,28 @@ int main(int argc, char *argv[]) {
     BoundaryWriter<ScalarVector, Vector> horizontalSurfaceWriter(
         vertexCoordinates, surfaceNodes, "horizontalSurface",
         MyGeometry::horizontalProjection);
+    SpecialWriter<GridView, dims> specialVelocityWriter("specialVelocities",
+                                                        leafView);
+    SpecialWriter<GridView, dims> specialDisplacementWriter(
+        "specialDisplacements", leafView);
 
-    auto const report =
-        [&](Vector const &_u, Vector const &_v, ScalarVector const &_alpha) {
-          horizontalSurfaceWriter.writeKinetics(_u, _v);
-          verticalSurfaceWriter.writeKinetics(_u, _v);
-
-          ScalarVector c;
-          myGlobalFriction->coefficientOfFriction(_v, c);
-          frictionWriter.writeKinetics(_u, _v);
-          frictionWriter.writeOther(c, _alpha);
-        };
+    auto const report = [&](Vector const &_u, Vector const &_v,
+                            ScalarVector const &_alpha) {
+      horizontalSurfaceWriter.writeKinetics(_u, _v);
+      verticalSurfaceWriter.writeKinetics(_u, _v);
+
+      ScalarVector c;
+      myGlobalFriction->coefficientOfFriction(_v, c);
+      frictionWriter.writeKinetics(_u, _v);
+      frictionWriter.writeOther(c, _alpha);
+
+      BasisGridFunction<typename MyAssembler::VertexBasis, Vector> velocity(
+          myAssembler.vertexBasis, _v);
+      BasisGridFunction<typename MyAssembler::VertexBasis, Vector> displacement(
+          myAssembler.vertexBasis, _u);
+      specialVelocityWriter.write(velocity);
+      specialDisplacementWriter.write(displacement);
+    };
     report(u_initial, v_initial, alpha_initial);
 
     MyVTKWriter<typename MyAssembler::VertexBasis,
@@ -337,11 +348,6 @@ int main(int argc, char *argv[]) {
       vtkWriter.write(0, u_initial, v_initial, alpha_initial, stress);
     }
 
-    SpecialWriter<GridView, dims> specialVelocityWriter("specialVelocities",
-                                                        leafView);
-    SpecialWriter<GridView, dims> specialDisplacementWriter(
-        "specialDisplacements", leafView);
-
     // Set up TNNMG solver
     using NonlinearFactory = SolverFactory<
         dims,
@@ -394,14 +400,6 @@ int main(int argc, char *argv[]) {
       current.first->extractAlpha(alpha);
 
       report(u, v, alpha);
-      {
-        BasisGridFunction<typename MyAssembler::VertexBasis, Vector> velocity(
-            myAssembler.vertexBasis, v);
-        BasisGridFunction<typename MyAssembler::VertexBasis, Vector>
-            displacement(myAssembler.vertexBasis, u);
-        specialVelocityWriter.write(velocity);
-        specialDisplacementWriter.write(displacement);
-      }
 
       if (parset.get<bool>("io.writeVTK")) {
         ScalarVector stress;
-- 
GitLab