Skip to content
Snippets Groups Projects
Select Git revision
  • d0deb52798fbe23e77019eca54cf83d6fc7d24a3
  • 2016-PippingKornhuberRosenauOncken default
  • 2014-Dissertation-Pipping
  • 2013-PippingSanderKornhuber
4 results

vtk.cc

Blame
  • user avatar
    Elias Pipping authored
    d182f5f1
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    vtk.cc 1.63 KiB
    #ifdef HAVE_CONFIG_H
    #include "config.h"
    #endif
    
    #include <dune/grid/io/file/vtk/vtkwriter.hh>
    
    #include <dune/fufem/functions/vtkbasisgridfunction.hh>
    
    #include "vtk.hh"
    
    template <class VertexBasis, class CellBasis>
    MyVTKWriter<VertexBasis, CellBasis>::MyVTKWriter(
        CellBasis const &_cellBasis, VertexBasis const &_vertexBasis,
        std::string _prefix)
        : cellBasis(_cellBasis), vertexBasis(_vertexBasis), prefix(_prefix) {}
    
    template <class VertexBasis, class CellBasis>
    template <class Vector, class ScalarVector>
    void MyVTKWriter<VertexBasis, CellBasis>::write(
        size_t record, Vector const &u, Vector const &v, ScalarVector const &alpha,
        ScalarVector const &stress) const {
      Dune::VTKWriter<typename VertexBasis::GridView> writer(
          vertexBasis.getGridView());
    
      auto const displacementPointer =
          std::make_shared<VTKBasisGridFunction<VertexBasis, Vector> const>(
              vertexBasis, u, "displacement");
      writer.addVertexData(displacementPointer);
    
      auto const velocityPointer =
          std::make_shared<VTKBasisGridFunction<VertexBasis, Vector> const>(
              vertexBasis, v, "velocity");
      writer.addVertexData(velocityPointer);
    
      auto const logStatePointer =
          std::make_shared<VTKBasisGridFunction<VertexBasis, ScalarVector> const>(
              vertexBasis, alpha, "logState");
      writer.addVertexData(logStatePointer);
    
      auto const stressPointer =
          std::make_shared<VTKBasisGridFunction<CellBasis, ScalarVector> const>(
              cellBasis, stress, "stress");
      writer.addCellData(stressPointer);
    
      std::string const filename = prefix + std::to_string(record);
      writer.write(filename.c_str());
    }
    
    #include "vtk_tmpl.cc"