diff --git a/src/vtk.cc b/src/vtk.cc index fa673533f00296a2ec40ac041ede4980ca2346de..00c4a2fd5b3d1fb8462bf5ba7b19f23d3587c563 100644 --- a/src/vtk.cc +++ b/src/vtk.cc @@ -10,19 +10,21 @@ void writeVtk(VertexBasis vertexBasis, VectorType displacement, SingletonVectorType state, CellBasis cellBasis, SingletonVectorType stress, GridView gridView, std::string filename) { + Dune::VTKWriter<GridView> writer(gridView); + auto const displacement_ptr = Dune::make_shared<VTKBasisGridFunction<VertexBasis, VectorType> const>( vertexBasis, displacement, "displacement"); + writer.addVertexData(displacement_ptr); + auto const state_ptr = Dune::make_shared< VTKBasisGridFunction<VertexBasis, SingletonVectorType> const>( vertexBasis, state, "state"); + writer.addVertexData(state_ptr); + auto const vonmises_ptr = Dune::make_shared< VTKBasisGridFunction<CellBasis, SingletonVectorType> const>( cellBasis, stress, "stress"); - - Dune::VTKWriter<GridView> writer(gridView); - writer.addVertexData(state_ptr); - writer.addVertexData(displacement_ptr); writer.addCellData(vonmises_ptr); writer.write(filename.c_str());