Skip to content
Snippets Groups Projects
vtk.cc 1.14 KiB
Newer Older
Elias Pipping's avatar
Elias Pipping committed
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "vtk.hh"

template <class VertexBasis, class CellBasis, class VectorType,
          class SingletonVectorType>
Elias Pipping's avatar
Elias Pipping committed
void writeVtk(VertexBasis const &vertexBasis, VectorType const &displacement,
              SingletonVectorType const &logState, CellBasis const &cellBasis,
              SingletonVectorType const &stress, std::string const &filename) {
  Dune::VTKWriter<typename VertexBasis::GridView> writer(
      vertexBasis.getGridView());
Elias Pipping's avatar
Elias Pipping committed

  auto const displacementPointer =
Elias Pipping's avatar
Elias Pipping committed
      Dune::make_shared<VTKBasisGridFunction<VertexBasis, VectorType> const>(
          vertexBasis, displacement, "displacement");
  writer.addVertexData(displacementPointer);
Elias Pipping's avatar
Elias Pipping committed

  auto const logStatePointer = Dune::make_shared<
Elias Pipping's avatar
Elias Pipping committed
      VTKBasisGridFunction<VertexBasis, SingletonVectorType> const>(
      vertexBasis, logState, "logState");
  writer.addVertexData(logStatePointer);
Elias Pipping's avatar
Elias Pipping committed

  auto const vonmisesPointer = Dune::make_shared<
Elias Pipping's avatar
Elias Pipping committed
      VTKBasisGridFunction<CellBasis, SingletonVectorType> const>(
      cellBasis, stress, "stress");
  writer.addCellData(vonmisesPointer);
Elias Pipping's avatar
Elias Pipping committed

  writer.write(filename.c_str());
}

#include "vtk_tmpl.cc"