dune-vtk 2.12
Loading...
Searching...
No Matches
Dune::Vtk::VtkWriterBase< GV, DC > Class Template Referenceabstract

Base class for file writers for the Vtk XML file formats. More...

#include <dune/vtk/vtkwriterbase.hh>

Inheritance diagram for Dune::Vtk::VtkWriterBase< GV, DC >:
Inheritance graph

Public Types

using GridView = GV
 
using DataCollector = DC
 

Public Member Functions

 VtkWriterBase (GridView const &gridView, Vtk::FormatTypes format=Vtk::FormatTypes::BINARY, Vtk::DataTypes datatype=Vtk::DataTypes::FLOAT32, Vtk::DataTypes headertype=Vtk::DataTypes::UINT32)
 Constructor, passes the gridView to the DataCollector.
 
 VtkWriterBase (DataCollector &dataCollector, Vtk::FormatTypes format=Vtk::FormatTypes::BINARY, Vtk::DataTypes datatype=Vtk::DataTypes::FLOAT32, Vtk::DataTypes headertype=Vtk::DataTypes::UINT32)
 Constructor, wraps the passed DataCollector in a non-destroying shared_ptr.
 
 VtkWriterBase (DataCollector &&dataCollector, Vtk::FormatTypes format=Vtk::FormatTypes::BINARY, Vtk::DataTypes datatype=Vtk::DataTypes::FLOAT32, Vtk::DataTypes headertype=Vtk::DataTypes::UINT32)
 Constructor, stores the passed DataCollector.
 
 VtkWriterBase (std::shared_ptr< DataCollector > dataCollector, Vtk::FormatTypes format=Vtk::FormatTypes::BINARY, Vtk::DataTypes datatype=Vtk::DataTypes::FLOAT32, Vtk::DataTypes headertype=Vtk::DataTypes::UINT32)
 Constructor, stores the passed DataCollector.
 
virtual std::string write (std::string const &fn, std::optional< std::string > dir={}) const override
 Write the attached data to the file.
 
template<class Function >
VtkWriterBase & addPointData (Function &&fct, const Vtk::FieldInfo &info)
 Attach point data to the writer.
 
template<class Function , class R = RangeType<ResolveRef_t<Function>,Domain>>
VtkWriterBase & addPointData (Function &&fct, std::string name, int size=dimRange< R >())
 
VtkWriterBase & addPointData (const std::shared_ptr< VTKFunction< GridView > const > &fct)
 
VtkWriterBase & addPointData (const Vtk::GridFunction< GridView > &fct)
 
template<class Function >
VtkWriterBase & addCellData (Function &&fct, const Vtk::FieldInfo &info)
 Attach cell data to the writer.
 
template<class Function , class R = RangeType<ResolveRef_t<Function>,Domain>>
VtkWriterBase & addCellData (Function &&fct, std::string name, int size=dimRange< R >())
 
VtkWriterBase & addCellData (const std::shared_ptr< VTKFunction< GridView > const > &fct)
 
VtkWriterBase & addCellData (const Vtk::GridFunction< GridView > &fct)
 
void setFormat (Vtk::FormatTypes format)
 
void setDatatype (Vtk::DataTypes datatype)
 Sets the global datatype used for coordinates and other global float values.
 
void setHeadertype (Vtk::DataTypes datatype)
 Sets the integer type used in binary data headers.
 
void setCompressor (Vtk::CompressorTypes compressor, int level=-1)
 

Protected Types

enum  PositionTypes { POINT_DATA , CELL_DATA }
 
using VtkFunction = Dune::Vtk::GridFunction< GridView >
 
using Domain = typename GridView::template Codim< 0 >::Entity::Geometry::GlobalCoordinate
 
using pos_type = typename std::ostream::pos_type
 

Protected Member Functions

void writeData (std::ofstream &out, std::vector< pos_type > &offsets, VtkFunction const &fct, PositionTypes type, std::optional< std::size_t > timestep={}) const
 
void writeDataAppended (std::ofstream &out, std::vector< std::uint64_t > &blocks) const
 
void writePoints (std::ofstream &out, std::vector< pos_type > &offsets, std::optional< std::size_t > timestep={}) const
 
void writeAppended (std::ofstream &out, std::vector< pos_type > const &offsets) const
 
template<class HeaderType , class FloatType >
std::uint64_t writeValuesAppended (std::ofstream &out, std::vector< FloatType > const &values) const
 
template<class T >
void writeValuesAscii (std::ofstream &out, std::vector< T > const &values) const
 
void writeHeader (std::ofstream &out, std::string const &type) const
 
std::string getNames (std::vector< VtkFunction > const &data) const
 Return PointData/CellData attributes for the name of the first scalar/vector/tensor DataArray.
 
std::string getEndian () const
 
std::string getFileExtension () const
 
Vtk::FormatTypes getFormat () const
 
Vtk::DataTypes getDatatype () const
 
auto comm () const
 

Protected Attributes

std::shared_ptr< DataCollector > dataCollector_
 
Vtk::FormatTypes format_
 
Vtk::DataTypes datatype_
 
Vtk::DataTypes headertype_
 
Vtk::CompressorTypes compressor_ = Vtk::CompressorTypes::NONE
 
std::vector< VtkFunction > pointData_
 
std::vector< VtkFunction > cellData_
 
std::size_t const block_size = 1024*32
 
int compression_level = -1
 

Friends

template<class >
class TimeseriesWriter
 
template<class >
class PvdWriter
 

Detailed Description

template<class GV, class DC>
class Dune::Vtk::VtkWriterBase< GV, DC >

Base class for file writers for the Vtk XML file formats.

Template Parameters
GVModel of Dune::GridView
DCModel of DataCollectorInterface

Member Typedef Documentation

◆ DataCollector

template<class GV , class DC >
using Dune::Vtk::VtkWriterBase< GV, DC >::DataCollector = DC

◆ Domain

template<class GV , class DC >
using Dune::Vtk::VtkWriterBase< GV, DC >::Domain = typename GridView::template Codim<0>::Entity::Geometry::GlobalCoordinate
protected

◆ GridView

template<class GV , class DC >
using Dune::Vtk::VtkWriterBase< GV, DC >::GridView = GV

◆ pos_type

template<class GV , class DC >
using Dune::Vtk::VtkWriterBase< GV, DC >::pos_type = typename std::ostream::pos_type
protected

◆ VtkFunction

template<class GV , class DC >
using Dune::Vtk::VtkWriterBase< GV, DC >::VtkFunction = Dune::Vtk::GridFunction<GridView>
protected

Member Enumeration Documentation

◆ PositionTypes

template<class GV , class DC >
enum Dune::Vtk::VtkWriterBase::PositionTypes
protected
Enumerator
POINT_DATA 
CELL_DATA 

Constructor & Destructor Documentation

◆ VtkWriterBase() [1/4]

template<class GV , class DC >
Dune::Vtk::VtkWriterBase< GV, DC >::VtkWriterBase ( GridView const &  gridView,
Vtk::FormatTypes  format = Vtk::FormatTypes::BINARY,
Vtk::DataTypes  datatype = Vtk::DataTypes::FLOAT32,
Vtk::DataTypes  headertype = Vtk::DataTypes::UINT32 
)
inline

Constructor, passes the gridView to the DataCollector.

Creates a new VtkWriterBase for the provided GridView. Initializes a DataCollector that is used to collect point coordinates, cell connectivity and data values.

This constructor assumes, that the DataCollector can be constructed from a single argument, the passed gridView.

Parameters
gridViewImplementation of Dune::GridView
formatFormat of the VTK file, either Vtk::FormatTypes::BINARY, Vtk::FormatTypes::ASCII, or Vtk::COMPRESSED
datatypeData type of a single component of the point coordinates [Vtk::DataTypes::FLOAT32]
headertypeInteger type used in binary data headers [Vtk::DataTypes::UINT32]

◆ VtkWriterBase() [2/4]

template<class GV , class DC >
Dune::Vtk::VtkWriterBase< GV, DC >::VtkWriterBase ( DataCollector &  dataCollector,
Vtk::FormatTypes  format = Vtk::FormatTypes::BINARY,
Vtk::DataTypes  datatype = Vtk::DataTypes::FLOAT32,
Vtk::DataTypes  headertype = Vtk::DataTypes::UINT32 
)
inline

Constructor, wraps the passed DataCollector in a non-destroying shared_ptr.

◆ VtkWriterBase() [3/4]

template<class GV , class DC >
Dune::Vtk::VtkWriterBase< GV, DC >::VtkWriterBase ( DataCollector &&  dataCollector,
Vtk::FormatTypes  format = Vtk::FormatTypes::BINARY,
Vtk::DataTypes  datatype = Vtk::DataTypes::FLOAT32,
Vtk::DataTypes  headertype = Vtk::DataTypes::UINT32 
)
inline

Constructor, stores the passed DataCollector.

◆ VtkWriterBase() [4/4]

template<class GV , class DC >
Dune::Vtk::VtkWriterBase< GV, DC >::VtkWriterBase ( std::shared_ptr< DataCollector >  dataCollector,
Vtk::FormatTypes  format = Vtk::FormatTypes::BINARY,
Vtk::DataTypes  datatype = Vtk::DataTypes::FLOAT32,
Vtk::DataTypes  headertype = Vtk::DataTypes::UINT32 
)
inline

Constructor, stores the passed DataCollector.

Member Function Documentation

◆ addCellData() [1/4]

template<class GV , class DC >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addCellData ( const std::shared_ptr< VTKFunction< GridView > const > &  fct)
inline

◆ addCellData() [2/4]

template<class GV , class DC >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addCellData ( const Vtk::GridFunction< GridView > &  fct)
inline

◆ addCellData() [3/4]

template<class GV , class DC >
template<class Function >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addCellData ( Function &&  fct,
const Vtk::FieldInfo &  info 
)
inline

Attach cell data to the writer.

Attach a global function to the writer that will be evaluated at cell centers. The global function must be assignable to the function wrapper Vtk::GridFunction. Additional argument for output datatype and number of components can be passed. See Vtk::GridFunction Constructor for possible arguments.

Parameters
fctA GridFunction or Dune::VTKFunction
infoAdditional arguments, like name, numComponents, dataType or rangeType

◆ addCellData() [4/4]

template<class GV , class DC >
template<class Function , class R = RangeType<ResolveRef_t<Function>,Domain>>
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addCellData ( Function &&  fct,
std::string  name,
int  size = dimRange<R>() 
)
inline

◆ addPointData() [1/4]

template<class GV , class DC >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addPointData ( const std::shared_ptr< VTKFunction< GridView > const > &  fct)
inline

◆ addPointData() [2/4]

template<class GV , class DC >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addPointData ( const Vtk::GridFunction< GridView > &  fct)
inline

◆ addPointData() [3/4]

template<class GV , class DC >
template<class Function >
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addPointData ( Function &&  fct,
const Vtk::FieldInfo &  info 
)
inline

Attach point data to the writer.

Attach a global function to the writer that will be evaluated at grid points (vertices and higher order points). The global function must be assignable to the function wrapper Vtk::GridFunction. Additional argument for output datatype and number of components can be passed. See Vtk::GridFunction Constructor for possible arguments.

Parameters
fctA GridFunction or Dune::VTKFunction
infAdditional arguments, like name, numComponents, dataType or rangeType

◆ addPointData() [4/4]

template<class GV , class DC >
template<class Function , class R = RangeType<ResolveRef_t<Function>,Domain>>
VtkWriterBase & Dune::Vtk::VtkWriterBase< GV, DC >::addPointData ( Function &&  fct,
std::string  name,
int  size = dimRange<R>() 
)
inline

◆ comm()

template<class GV , class DC >
auto Dune::Vtk::VtkWriterBase< GV, DC >::comm ( ) const
inlineprotected

◆ getDatatype()

template<class GV , class DC >
Vtk::DataTypes Dune::Vtk::VtkWriterBase< GV, DC >::getDatatype ( ) const
inlineprotected

◆ getEndian()

template<class GV , class DC >
std::string Dune::Vtk::VtkWriterBase< GV, DC >::getEndian ( ) const
inlineprotected

◆ getFileExtension()

template<class GV , class DC >
std::string Dune::Vtk::VtkWriterBase< GV, DC >::getFileExtension ( ) const
inlineprotected

◆ getFormat()

template<class GV , class DC >
Vtk::FormatTypes Dune::Vtk::VtkWriterBase< GV, DC >::getFormat ( ) const
inlineprotected

◆ getNames()

template<class GV , class DC >
std::string Dune::Vtk::VtkWriterBase< GV, DC >::getNames ( std::vector< VtkFunction > const &  data) const
protected

Return PointData/CellData attributes for the name of the first scalar/vector/tensor DataArray.

◆ setCompressor()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::setCompressor ( Vtk::CompressorTypes  compressor,
int  level = -1 
)
inline

Sets the compressor type used in binary data headers, Additionally a compression level can be passed with level = -1 means: default compression level. Level must be in [0-9]

◆ setDatatype()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::setDatatype ( Vtk::DataTypes  datatype)
inline

Sets the global datatype used for coordinates and other global float values.

◆ setFormat()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::setFormat ( Vtk::FormatTypes  format)
inline

◆ setHeadertype()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::setHeadertype ( Vtk::DataTypes  datatype)
inline

Sets the integer type used in binary data headers.

◆ write()

template<class GV , class DC >
std::string Dune::Vtk::VtkWriterBase< GV, DC >::write ( std::string const &  fn,
std::optional< std::string >  dir = {} 
) const
overridevirtual

Write the attached data to the file.

Parameters
fnFilename of the VTK file. May contain a directory and any file extension.
dirThe optional parameter specifies the directory of the partition files for parallel writes.
Returns
File name that is actually written.

Implements Dune::Vtk::FileWriter.

◆ writeAppended()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::writeAppended ( std::ofstream &  out,
std::vector< pos_type > const &  offsets 
) const
protected

◆ writeData()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::writeData ( std::ofstream &  out,
std::vector< pos_type > &  offsets,
VtkFunction const &  fct,
PositionTypes  type,
std::optional< std::size_t >  timestep = {} 
) const
protected

◆ writeDataAppended()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::writeDataAppended ( std::ofstream &  out,
std::vector< std::uint64_t > &  blocks 
) const
protected

◆ writeHeader()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::writeHeader ( std::ofstream &  out,
std::string const &  type 
) const
protected

◆ writePoints()

template<class GV , class DC >
void Dune::Vtk::VtkWriterBase< GV, DC >::writePoints ( std::ofstream &  out,
std::vector< pos_type > &  offsets,
std::optional< std::size_t >  timestep = {} 
) const
protected

◆ writeValuesAppended()

template<class GV , class DC >
template<class HeaderType , class FloatType >
std::uint64_t Dune::Vtk::VtkWriterBase< GV, DC >::writeValuesAppended ( std::ofstream &  out,
std::vector< FloatType > const &  values 
) const
protected

◆ writeValuesAscii()

template<class GV , class DC >
template<class T >
void Dune::Vtk::VtkWriterBase< GV, DC >::writeValuesAscii ( std::ofstream &  out,
std::vector< T > const &  values 
) const
protected

Friends And Related Symbol Documentation

◆ PvdWriter

template<class GV , class DC >
template<class >
friend class PvdWriter
friend

◆ TimeseriesWriter

template<class GV , class DC >
template<class >
friend class TimeseriesWriter
friend

Member Data Documentation

◆ block_size

template<class GV , class DC >
std::size_t const Dune::Vtk::VtkWriterBase< GV, DC >::block_size = 1024*32
protected

◆ cellData_

template<class GV , class DC >
std::vector<VtkFunction> Dune::Vtk::VtkWriterBase< GV, DC >::cellData_
protected

◆ compression_level

template<class GV , class DC >
int Dune::Vtk::VtkWriterBase< GV, DC >::compression_level = -1
protected

◆ compressor_

template<class GV , class DC >
Vtk::CompressorTypes Dune::Vtk::VtkWriterBase< GV, DC >::compressor_ = Vtk::CompressorTypes::NONE
protected

◆ dataCollector_

template<class GV , class DC >
std::shared_ptr<DataCollector> Dune::Vtk::VtkWriterBase< GV, DC >::dataCollector_
protected

◆ datatype_

template<class GV , class DC >
Vtk::DataTypes Dune::Vtk::VtkWriterBase< GV, DC >::datatype_
protected

◆ format_

template<class GV , class DC >
Vtk::FormatTypes Dune::Vtk::VtkWriterBase< GV, DC >::format_
protected

◆ headertype_

template<class GV , class DC >
Vtk::DataTypes Dune::Vtk::VtkWriterBase< GV, DC >::headertype_
protected

◆ pointData_

template<class GV , class DC >
std::vector<VtkFunction> Dune::Vtk::VtkWriterBase< GV, DC >::pointData_
protected

The documentation for this class was generated from the following files: