DUNE-FEM (unstable)
Writer for the output of grid functions in the vtk format. More...
#include <dune/grid/io/file/vtk/vtkwriter.hh>
Classes | |
class | CellIterator |
Iterator over the grids elements. More... | |
class | CornerIterator |
Iterate over the elements' corners. More... | |
class | VertexIterator |
Iterate over the grid's vertices. More... | |
class | VTKLocalFunction |
Type erasure wrapper for VTK data sets. More... | |
Public Member Functions | |
VTKWriter (const GridView &gridView, VTK::DataMode dm=VTK::conforming, VTK::Precision coordPrecision=VTK::Precision::float32) | |
Construct a VTKWriter working on a specific GridView. More... | |
void | addCellData (const std::shared_ptr< const VTKFunction > &p) |
Add a grid function that lives on the cells of the grid to the visualization. More... | |
template<typename F > | |
void | addCellData (F &&f, VTK::FieldInfo vtkFieldInfo) |
Add a function by sampling it on the element centers. More... | |
template<class Container > | |
void | addCellData (const Container &v, const std::string &name, int ncomps=1, VTK::Precision prec=VTK::Precision::float32) |
Add a grid function (represented by container) that lives on the cells of the grid to the visualization. More... | |
void | addVertexData (const std::shared_ptr< const VTKFunction > &p) |
Add a grid function that lives on the vertices of the grid to the visualization. More... | |
template<typename F > | |
void | addVertexData (F &&f, VTK::FieldInfo vtkFieldInfo) |
Add a function by sampling it on the grid vertices. More... | |
template<class Container > | |
void | addVertexData (const Container &v, const std::string &name, int ncomps=1, VTK::Precision prec=VTK::Precision::float32) |
Add a grid function (represented by container) that lives on the vertices of the grid to the visualization output. More... | |
void | clear () |
clear list of registered functions | |
VTK::Precision | coordPrecision () const |
get the precision with which coordinates are written out | |
virtual | ~VTKWriter () |
destructor | |
std::string | write (const std::string &name, VTK::OutputType type=VTK::ascii) |
write output (interface might change later) More... | |
std::string | pwrite (const std::string &name, const std::string &path, const std::string &extendpath, VTK::OutputType type=VTK::ascii) |
write output (interface might change later) More... | |
Protected Member Functions | |
std::string | getParallelPieceName (const std::string &name, const std::string &path, int commRank, int commSize) const |
return name of a parallel piece file (or header name) More... | |
std::string | getParallelHeaderName (const std::string &name, const std::string &path, int commSize) const |
return name of a parallel header file More... | |
std::string | getSerialPieceName (const std::string &name, const std::string &path) const |
return name of a serial piece file More... | |
std::string | write (const std::string &name, VTK::OutputType type, const int commRank, const int commSize) |
write output (interface might change later) More... | |
std::string | pwrite (const std::string &name, const std::string &path, const std::string &extendpath, VTK::OutputType ot, const int commRank, const int commSize) |
write output; interface might change later More... | |
virtual void | countEntities (int &nvertices_, int &ncells_, int &ncorners_) |
count the vertices, cells and corners | |
virtual void | writeCellData (VTK::VTUWriter &writer) |
write cell data | |
virtual void | writeVertexData (VTK::VTUWriter &writer) |
write vertex data | |
virtual void | writeGridPoints (VTK::VTUWriter &writer) |
write the positions of vertices | |
virtual void | writeGridCells (VTK::VTUWriter &writer) |
write the connectivity array | |
virtual void | writeCellFaces (VTK::VTUWriter &writer) |
write the connectivity array | |
Detailed Description
class Dune::VTKWriter< GridView >
Writer for the output of grid functions in the vtk format.
Writes arbitrary grid functions (living on cells or vertices of a grid) to a file suitable for easy visualization with The Visualization Toolkit (VTK).
Constructor & Destructor Documentation
◆ VTKWriter()
|
inlineexplicit |
Member Function Documentation
◆ addCellData() [1/3]
|
inline |
Add a grid function (represented by container) that lives on the cells of the grid to the visualization.
The container has to have random access via operator[] (e.g. std::vector). The value of the grid function for an arbitrary element will be accessed by calling operator[] with the index (corresponding to the index from the MGMC mapper on the grid view) of the element. For vector valued data all components for an element are assumed to be consecutive.
- Parameters
-
v The container with the values of the grid function for each cell. name A name to identify the grid function. ncomps Number of components (default is 1).
◆ addCellData() [2/3]
|
inline |
Add a grid function that lives on the cells of the grid to the visualization.
- Parameters
-
p std::shared_ptr to the function to visualize
◆ addCellData() [3/3]
|
inline |
Add a function by sampling it on the element centers.
- Parameters
-
f The function to be written to the file
The object f can be one of several things. Depending on what it is exactly, its object life-time is influenced in different ways:
- If f has the method bind(), then a copy of f is stored, regardless of whether f is an l- or r-value.
- If f can be localized by calling localFunction(f), then a copy of localFunction(f) is stored, but f is never stored, regardless of whether f is an l- or r-value.
- If f supports neither bind() or localFunction(), then a copy of f is stored, regardless if f is an l- or r-value.
The previous paragraph actually refers to parts of the dune-functions interface, and you may want to read up on that if you want to write functions to VTK.
- Deprecated:
- f may also be a VTKFunction object, but you are strongly discouraged from using VTKFunctions.
◆ addVertexData() [1/3]
|
inline |
Add a grid function (represented by container) that lives on the vertices of the grid to the visualization output.
The container has to have random access via operator[] (e.g. std::vector). The value of the grid function for an arbitrary element will be accessed by calling operator[] with the index (corresponding to the index from the MGMC mapper on the grid view) of the vertex. For vector valued data all components for a vertex are assumed to be consecutive.
- Parameters
-
v The container with the values of the grid function for each vertex. name A name to identify the grid function. ncomps Number of components (default is 1).
◆ addVertexData() [2/3]
|
inline |
Add a grid function that lives on the vertices of the grid to the visualization.
- Parameters
-
p std::shared_ptr to the function to visualize
◆ addVertexData() [3/3]
|
inline |
Add a function by sampling it on the grid vertices.
- Parameters
-
f The function to be written to the file
The object f can be one of several things. Depending on what it is exactly, its object life-time is influenced in different ways:
- If f has the method bind(), then a copy of f is stored, regardless of whether f is an l- or r-value.
- If f can be localized by calling localFunction(f), then a copy of localFunction(f) is stored, but f is never stored, regardless of whether f is an l- or r-value.
- If f supports neither bind() or localFunction(), then a copy of f is stored, regardless if f is an l- or r-value.
The previous paragraph actually refers to parts of the dune-functions interface, and you may want to read up on that if you want to write functions to VTK.
- Deprecated:
- f may also be a VTKFunction object, but you are strongly discouraged from using VTKFunctions.
◆ getParallelHeaderName()
|
inlineprotected |
return name of a parallel header file
- Parameters
-
name Base name of the VTK output. This should be without any directory parts and without a filename extension. path Directory part of the resulting header name. May be empty, in which case the resulting name will not have a directory part. If non-empty, may or may not have a trailing '/'. If a trailing slash is missing, one is appended implicitly. commSize Number of processes writing a parallel vtk output.
References Dune::VTKWriter< GridView >::getParallelPieceName().
Referenced by Dune::VTKWriter< GridView >::pwrite().
◆ getParallelPieceName()
|
inlineprotected |
return name of a parallel piece file (or header name)
- Parameters
-
name Base name of the VTK output. This should be without any directory parts and without a filename extension. path Directory part of the resulting piece name. May be empty, in which case the resulting name will not have a directory part. If non-empty, may or may not have a trailing '/'. If a trailing slash is missing, one is appended implicitly. commRank Rank of the process to generate a piece name for. if (-1) then the header is created. commSize Number of processes writing a parallel vtk output.
References Dune::GridView< ViewTraits >::dimension.
Referenced by Dune::VTKWriter< GridView >::getParallelHeaderName(), and Dune::VTKWriter< GridView >::pwrite().
◆ getSerialPieceName()
|
inlineprotected |
return name of a serial piece file
This is similar to getParallelPieceName, but skips the prefixes for commSize ("s####-") and commRank ("p####-").
- Parameters
-
name Base name of the VTK output. This should be without any directory parts and without a filename extension. path Directory part of the resulting piece name. May be empty, in which case the resulting name will not have a directory part. If non-empty, may or may not have a trailing '/'. If a trailing slash is missing, one is appended implicitly.
References Dune::concatPaths(), and Dune::GridView< ViewTraits >::dimension.
Referenced by Dune::VTKWriter< GridView >::write().
◆ pwrite() [1/2]
|
inlineprotected |
write output; interface might change later
- Parameters
-
name Base name of the output files. This should not contain any directory part and not filename extensions. It will be used both for each processes piece as well as the parallel collection file. path Directory where to put the parallel collection (.pvtu/.pvtp) file. If it is relative, it is taken relative to the current directory. extendpath Directory where to put the piece file (.vtu/.vtp) of this process. If it is relative, it is taken relative to the directory denoted by path. ot How to encode the data in the file. commRank Rank of the current process. commSize Number of processes taking part in this write operation.
- Note
- Currently, extendpath may not be absolute unless path is absolute, because that would require the value of the current directory.
- Exceptions
-
NotImplemented Extendpath is absolute but path is relative. IOError Failed to open a file.
References Dune::GridView< ViewTraits >::comm(), Dune::concatPaths(), DUNE_THROW, Dune::VTKWriter< GridView >::getParallelHeaderName(), Dune::VTKWriter< GridView >::getParallelPieceName(), and Dune::relativePath().
◆ pwrite() [2/2]
|
inline |
write output (interface might change later)
"pwrite" means "path write" (i.e. write somewhere else than the current directory). The "p" does not mean this method has a monopoly on parallel writing, the regular write(const std::string &, VTK::OutputType) method can do that just fine.
- Parameters
-
name Base name of the output files. This should not contain any directory part and not filename extensions. It will be used both for each processes piece as well as the parallel collection file. path Directory where to put the parallel collection (.pvtu/.pvtp) file. If it is relative, it is taken relative to the current directory. extendpath Directory where to put the piece file (.vtu/.vtp) of this process. If it is relative, it is taken relative to the directory denoted by path. type How to encode the data in the file.
- Note
- Currently, extendpath may not be absolute unless path is absolute, because that would require the value of the current directory.
- Exceptions
-
NotImplemented Extendpath is absolute but path is relative. IOError Failed to open a file.
References Dune::GridView< ViewTraits >::comm(), and Dune::VTKWriter< GridView >::pwrite().
Referenced by Dune::VTKWriter< GridView >::pwrite(), and Dune::VTKWriter< GridView >::write().
◆ write() [1/2]
|
inlineprotected |
write output (interface might change later)
This method can be used in parallel as well as in serial programs. For serial runs (commSize=1) it chooses other names without the "s####-p####-" prefix for the .vtu/.vtp files and omits writing of the .pvtu/pvtp file however. For parallel runs (commSize > 1) it is the same as a call to pwrite() with name and path constructed from a given filename possibly containing a path, and extendpath="".
- Parameters
-
name Base name of the output files. This should not contain any directory part and no filename extensions. type How to encode the data in the file. commRank Rank of the current process. commSize Number of processes taking part in this write operation.
References DUNE_THROW, Dune::VTKWriter< GridView >::getSerialPieceName(), and Dune::VTKWriter< GridView >::pwrite().
◆ write() [2/2]
|
inline |
write output (interface might change later)
This method can be used in parallel as well as in serial programs. For serial runs (commSize=1) it chooses other names without the "s####-p####-" prefix for the .vtu/.vtp files and omits writing of the .pvtu/pvtp file however. For parallel runs (commSize > 1) it is the same as a call to pwrite() with name and path constructed from a given filename possibly containing a path, and extendpath="".
- Parameters
-
[in] name basic name to write (may not contain a path) [in] type type of output (e.g,, ASCII) (optional)
References Dune::GridView< ViewTraits >::comm(), and Dune::VTKWriter< GridView >::write().
Referenced by Dune::VTKWriter< GridView >::write().
The documentation for this class was generated from the following file:
- dune/grid/io/file/vtk/vtkwriter.hh