From 04181c88e0bf862de03893e88ee1d9e154fd6783 Mon Sep 17 00:00:00 2001
From: podlesny <podlesny@zedat.fu-berlin.de>
Date: Mon, 26 Mar 2018 18:35:52 +0200
Subject: [PATCH] .

---
 src/hdf5-writer.hh        |  4 ++--
 src/multi-body-problem.cc | 18 ++++++++++--------
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/hdf5-writer.hh b/src/hdf5-writer.hh
index 0ee16c14..211cb8ef 100644
--- a/src/hdf5-writer.hh
+++ b/src/hdf5-writer.hh
@@ -58,7 +58,7 @@ class HDF5Writer {
   template <class Friction>
   void reportSolution(ProgramState const &programState,
                       // for the friction coefficient
-                      Friction &friction) {
+                      std::vector<std::shared_ptr<Friction>>& friction) {
     timeWriter_.write(programState);
 
     for (size_t i=0; i<bodyCount_; i++) {
@@ -66,7 +66,7 @@ class HDF5Writer {
       patchInfoWriters_[i]->write(programState);
 #endif
       surfaceWriters_[i]->write(programState);
-      frictionalBoundaryWriters_[i]->write(programState, friction);
+      frictionalBoundaryWriters_[i]->write(programState, *friction[i]);
     }
   }
 
diff --git a/src/multi-body-problem.cc b/src/multi-body-problem.cc
index a6d496ec..e1183e14 100644
--- a/src/multi-body-problem.cc
+++ b/src/multi-body-problem.cc
@@ -462,10 +462,10 @@ int main(int argc, char *argv[]) {
     const MyVTKWriter<MyVertexBasis, MyCellBasis> vtkWriter(cellBases, vertexBases, "body");
 
     IterationRegister iterationCount;
-    /*
+
     auto const report = [&](bool initial = false) {
       if (writeData) {
-        dataWriter->reportSolution(programState, *myGlobalFriction);
+        dataWriter->reportSolution(programState, globalFriction);
         if (!initial)
           dataWriter->reportIterations(programState, iterationCount);
         dataFile->flush();
@@ -484,17 +484,19 @@ int main(int argc, char *argv[]) {
                   << std::endl;
 
       if (parset.get<bool>("io.vtk.write")) {
-        ScalarVector stress;
-        myAssembler.assembleVonMisesStress(body.getYoungModulus(),
+        std::vector<ScalarVector> stress(assemblers.size());
+
+        for (size_t i=0; i<stress.size(); i++) {
+          assemblers[i]->assembleVonMisesStress(body.getYoungModulus(),
                                            body.getPoissonRatio(),
-                                           programState.u, stress);
+                                           programState.u[i], stress[i]);
+        }
+
         vtkWriter.write(programState.timeStep, programState.u, programState.v,
                         programState.alpha, stress);
       }
     };
     report(true);
-    */
-
 
     // Set up TNNMG solver
     using NonlinearFactory = SolverFactory<DeformedGrid, GlobalFriction<Matrix, Vector>, Matrix, Vector>;
@@ -560,7 +562,7 @@ int main(int argc, char *argv[]) {
       nBodyAssembler.assembleTransferOperator();
       nBodyAssembler.assembleObstacle();
 
-    //  report();
+      report();
 
       if (terminationRequested) {
         std::cerr << "Terminating prematurely" << std::endl;
-- 
GitLab