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