diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc index 9ba0c2cdd494b7a950b72b7ede394c4cfd3f5caa..00479169a3d0f26ac02e1d265e6d6c0222053401 100644 --- a/src/harmonicmaps.cc +++ b/src/harmonicmaps.cc @@ -105,15 +105,19 @@ void fillVTKWriter(Writer& vtkWriter, const Basis& feBasis, const SolutionType& vtkWriter.addVertexData(dFunction0, VTK::FieldInfo("director0", VTK::FieldInfo::Type::vector, 3)); vtkWriter.addVertexData(dFunction1, VTK::FieldInfo("director1", VTK::FieldInfo::Type::vector, 3)); vtkWriter.addVertexData(dFunction2, VTK::FieldInfo("director2", VTK::FieldInfo::Type::vector, 3)); + + // Needs to be in this scope; otherwise the stack-allocated dFunction?-objects will get + // destructed before 'write' is called. + vtkWriter.write(filename); } else { auto xFunction = Dune::Functions::makeDiscreteGlobalBasisFunction<TargetSpace::CoordinateType>(feBasis,TypeTree::hybridTreePath(),xEmbedded); vtkWriter.addVertexData(xFunction, VTK::FieldInfo("orientation", VTK::FieldInfo::Type::vector, xEmbedded[0].size())); - } - vtkWriter.write(filename); + vtkWriter.write(filename); + } }