From 2610fdd21e091a59a37254d6d28a89f7b2fbec1d Mon Sep 17 00:00:00 2001
From: Lisa Julia Nebel <lisa_julia.nebel@tu-dresden.de>
Date: Fri, 3 Apr 2020 09:33:00 +0200
Subject: [PATCH] Print stretch in x-direction at the end

---
 src/finite-strain-elasticity.cc | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/finite-strain-elasticity.cc b/src/finite-strain-elasticity.cc
index 25f697d..e7104a0 100644
--- a/src/finite-strain-elasticity.cc
+++ b/src/finite-strain-elasticity.cc
@@ -263,6 +263,11 @@ int main (int argc, char *argv[]) try
   Dune::Functions::interpolate(powerBasis, identity, [](FieldVector<double,dim> x){ return x; });
 
   SolutionType displacement = x;
+  double max_x = 0;
+  double initial_max_x = 0;
+  for (auto& coord: x) {
+    initial_max_x = std::max(coord[0], initial_max_x);
+  }
   displacement -= identity;
 
   auto displacementFunction = Dune::Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,dim>>(feBasis, displacement);
@@ -415,6 +420,9 @@ int main (int argc, char *argv[]) try
     vtkWriter.addVertexData(displacementFunction, VTK::FieldInfo("displacement", VTK::FieldInfo::Type::vector, dim));
     vtkWriter.write(resultPath + "finite-strain_homotopy_" + std::to_string(i+1));
   }
+  for (auto& coord : x) {
+    max_x = std::max(coord[0], max_x);
+  }
 #if HAVE_DUNE_VTK
   if (grid->leafGridView().comm().size() == 1) {
     displacement = x;
@@ -434,8 +442,10 @@ int main (int argc, char *argv[]) try
     std::cout << "Not writing out the deformation to a file, this currently only works for sequential calculations" << std::endl;
   }
 #endif
-  if (mpiHelper.rank()==0)
+  if (mpiHelper.rank()==0) {
     std::cout << "Complete duration: " << homotopyTimer.elapsed() << " sec." << std::endl;
+    std::cout << "Maximal value in x-direction: " << max_x << ", this is a stretch in of " << 100*(max_x - initial_max_x)/initial_max_x << " %." << std::endl;
+  }
 
 } catch (Exception& e) {
     std::cout << e.what() << std::endl;
-- 
GitLab