8#ifndef GRIDFORMAT_VTK_HDF_WRITER_HPP_ 
    9#define GRIDFORMAT_VTK_HDF_WRITER_HPP_ 
   10#if GRIDFORMAT_HAVE_HIGH_FIVE 
   14#include <gridformat/parallel/communication.hpp> 
   24template<Concepts::ImageGr
id Gr
id, Concepts::Communicator C>
 
   25class VTKHDFImageGridWriter;
 
   26template<Concepts::UnstructuredGr
id Gr
id, Concepts::Communicator C>
 
   27class VTKHDFUnstructuredGridWriter;
 
   30namespace VTKHDFDetail {
 
   32    template<
typename Gr
id, 
typename C>
 
   33    struct VTKHDFWriterSelector;
 
   34    template<Concepts::UnstructuredGr
id G, 
typename C> 
requires(!Concepts::ImageGrid<G>)
 
   35    struct VTKHDFWriterSelector<G, C> : 
public std::type_identity<VTKHDFUnstructuredGridWriter<G, C>> {};
 
   36    template<Concepts::ImageGr
id G, 
typename C>
 
   37    struct VTKHDFWriterSelector<G, C> : 
public std::type_identity<VTKHDFImageGridWriter<G, C>> {};
 
   39    template<
typename Gr
id, 
typename C>
 
   40    struct VTKHDFTimeSeriesWriterSelector;
 
   41    template<Concepts::UnstructuredGr
id G, 
typename C> 
requires(!Concepts::ImageGrid<G>)
 
   42    struct VTKHDFTimeSeriesWriterSelector<G, C> : 
public std::type_identity<VTKHDFUnstructuredTimeSeriesWriter<G, C>> {};
 
   43    template<Concepts::ImageGr
id G, 
typename C>
 
   44    struct VTKHDFTimeSeriesWriterSelector<G, C> : 
public std::type_identity<VTKHDFImageGridTimeSeriesWriter<G, C>> {};
 
   54template<Concepts::Gr
id Gr
id, 
typename Communicator = Gr
idFormat::NullCommunicator>
 
   55class VTKHDFWriter : 
public VTKHDFDetail::VTKHDFWriterSelector<Grid, Communicator>::type {
 
   56    using ParentType = 
typename VTKHDFDetail::VTKHDFWriterSelector<Grid, Communicator>::type;
 
   59    using ParentType::ParentType;
 
   62template<
typename Gr
id>
 
   65template<
typename Gr
id, Concepts::Communicator Comm>
 
   74template<Concepts::Gr
id Gr
id, Concepts::Communicator C = Gr
idFormat::NullCommunicator>
 
   76    using ParentType = 
typename VTKHDFDetail::VTKHDFTimeSeriesWriterSelector<Grid, C>::type;
 
   79    using ParentType::ParentType;
 
   82template<Concepts::Gr
id Gr
id>
 
   84template<Concepts::Gr
id Gr
id, Concepts::Communicator C>
 
   85VTKHDFTimeSeriesWriter(
const Grid&, C, std::string, VTK::HDFTransientOptions = {}) -> VTKHDFTimeSeriesWriter<Grid, C>;
 
   89template<Concepts::ImageGrid Grid, 
typename... Args>
 
Common functionality for writing VTK HDF files.
 
Writer for the VTK HDF file format for image grids.
 
Writer for the VTK HDF file format for unstructured grids.