dune-grid  2.6-git
volumewriter.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 
4 #ifndef DUNE_GRID_IO_FILE_VTK_VOLUMEWRITER_HH
5 #define DUNE_GRID_IO_FILE_VTK_VOLUMEWRITER_HH
6 
7 #include <memory>
8 
13 
14 namespace Dune {
17 
18  namespace VTK {
19 
20  template<typename GV>
23  public BasicWriter<ConformingVolumeIteratorFactory<GV> >
24  {
26  typedef BasicWriter<Factory> Base;
27 
28  const GV& gv;
29 
30  public:
32  typedef std::shared_ptr<VTKFunction> VTKFunctionPtr;
33 
34  ConformingVolumeWriter(const GV& gv_)
35  : Factory(gv_), Base(static_cast<const Factory&>(*this)), gv(gv_)
36  { }
37 
38  using Base::addPointData;
39 
40  void addCellData(const VTKFunctionPtr& p) {
41  Base::addCellData(std::shared_ptr<typename Base::FunctionWriter>
43  }
44 
45  void addCellData(VTKFunction* p) {
47  }
48 
49  template<typename V>
50  void addCellData(const V &v, const std::string &name, int ncomps=1) {
51  addCellData(new P0VTKFunction<GV, V>(gv, v, name, ncomps));
52  }
53 
54  void addVertexData(const VTKFunctionPtr& p) {
55  addPointData(std::shared_ptr<typename Base::FunctionWriter>
57  }
58 
59  void addVertexData(VTKFunction* p) {
61  }
62 
63  template<typename V>
64  void addVertexData(const V &v, const std::string &name, int ncomps=1) {
65  addVertexData(new P1VTKFunction<GV, V>(gv, v, name, ncomps));
66  }
67 
68  };
69 
70  } // namespace VTK
71 
73 
74 } // namespace Dune
75 
76 #endif // DUNE_GRID_IO_FILE_VTK_VOLUMEWRITER_HH
std::shared_ptr< VTKFunction > VTKFunctionPtr
Definition: volumewriter.hh:32
Take a vector and interpret it as point data for the VTKWriter.
Definition: function.hh:186
Definition: basicwriter.hh:33
Base class for function writers.
Definition: functionwriter.hh:86
Take a vector and interpret it as cell data for the VTKWriter.
Definition: function.hh:88
ConformingVolumeWriter(const GV &gv_)
Definition: volumewriter.hh:34
void addCellData(const V &v, const std::string &name, int ncomps=1)
Definition: volumewriter.hh:50
Definition: volumeiterators.hh:21
Functions for VTK output.
void addVertexData(const VTKFunctionPtr &p)
Definition: volumewriter.hh:54
Definition: volumewriter.hh:21
void addCellData(const std::shared_ptr< FunctionWriter > &writer)
Definition: basicwriter.hh:74
void addVertexData(const V &v, const std::string &name, int ncomps=1)
Definition: volumewriter.hh:64
void addCellData(const VTKFunctionPtr &p)
Definition: volumewriter.hh:40
void addVertexData(VTKFunction *p)
Definition: volumewriter.hh:59
void addPointData(const std::shared_ptr< FunctionWriter > &writer)
Definition: basicwriter.hh:78
void addCellData(VTKFunction *p)
Definition: volumewriter.hh:45
Dune::VTKFunction< GV > VTKFunction
Definition: volumewriter.hh:31
Include standard header files.
Definition: agrid.hh:58