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.