diff --git a/src/one-body-sample.org b/src/one-body-sample.org index e70e069612f7b4be3b7a5e3ab9a9d32cd89961bb..1d6ba40aaace65db4f07c062d6a7b67fce1c8e71 100644 --- a/src/one-body-sample.org +++ b/src/one-body-sample.org @@ -137,6 +137,31 @@ coefficient_writer.close(); #+end_src +#+name: assembleAndWriteStress +#+begin_src c++ + if (parset.get<bool>("writeVTK")) { + VonMisesStressAssembler<GridType> localStressAssembler + (E, nu, + Dune::make_shared<BasisGridFunction<P1Basis, VectorType> const> + (p1Basis, u)); + FunctionalAssembler<P0Basis>(p0Basis) + .assemble(localStressAssembler, vonMisesStress, true); + + writeVtk<P1Basis, P0Basis, VectorType, SingletonVectorType, GridView> + (p1Basis, u, alpha, p0Basis, vonMisesStress, leafView, + (boost::format("obs%d") % run).str()); + } +#+end_src +* Misc. helpers +#+name: printBenchmarkData +#+begin_src c++ + if (parset.get<bool>("enableTimer")) + std::cerr << std::endl + << "Making " << timesteps + << " time steps took " << timer.elapsed() + << "s" << std::endl; +#+end_src + * Main #+begin_src c++ :tangle one-body-sample.cc :noweb yes #ifdef HAVE_CONFIG_H @@ -488,27 +513,9 @@ } <<writeData>> - - // Compute von Mises stress and write everything to a file - if (parset.get<bool>("writeVTK")) { - VonMisesStressAssembler<GridType> localStressAssembler - (E, nu, - Dune::make_shared<BasisGridFunction<P1Basis, VectorType> const> - (p1Basis, u)); - FunctionalAssembler<P0Basis>(p0Basis) - .assemble(localStressAssembler, vonMisesStress, true); - - writeVtk<P1Basis, P0Basis, VectorType, SingletonVectorType, GridView> - (p1Basis, u, alpha, p0Basis, vonMisesStress, leafView, - (boost::format("obs%d") % run).str()); - } + <<assembleAndWriteStress>>; } - if (parset.get<bool>("enableTimer")) - std::cerr << std::endl - << "Making " << timesteps - << " time steps took " << timer.elapsed() - << "s" << std::endl; - + <<printBenchmarkData>>; <<closeWriters>>; Python::stop();