diff --git a/src/finite-strain-elasticity.cc b/src/finite-strain-elasticity.cc index 25f697dd574ea9b70707f8dabc2e95f6379dec22..e7104a0cd8b1387cba36f93a3df232cfa90f90a7 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;