GridFormat
0.6.0
I/O-Library for grid-like data structures
Toggle main menu visibility
Loading...
Searching...
No Matches
xml_time_series_writer.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2022-2023 Dennis Gläser <dennis.glaeser@iws.uni-stuttgart.de>
2
// SPDX-License-Identifier: MIT
8
#ifndef GRIDFORMAT_VTK_XML_TIME_SERIES_WRITER_HPP_
9
#define GRIDFORMAT_VTK_XML_TIME_SERIES_WRITER_HPP_
10
11
#include <iomanip>
12
#include <sstream>
13
#include <utility>
14
#include <string>
15
#include <type_traits>
16
17
#include <
gridformat/grid/writer.hpp
>
18
19
namespace
GridFormat {
20
26
template
<
typename
VTKWriter>
27
class
VTKXMLTimeSeriesWriter :
public
TimeSeriesGridWriter<typename VTKWriter::Grid> {
28
using
ParentType = TimeSeriesGridWriter<typename VTKWriter::Grid>;
29
30
public
:
31
explicit
VTKXMLTimeSeriesWriter(VTKWriter&& writer, std::string base_filename)
32
: ParentType(writer.grid(), writer.writer_options())
33
, _vtk_writer{std::move(writer)}
34
, _base_filename{std::move(base_filename)}
35
{}
36
37
private
:
38
std::string _write(
double
_time)
override
{
39
this->copy_fields(_vtk_writer);
40
_vtk_writer.set_meta_data(
"TimeValue"
, _time);
41
const
auto
filename = _vtk_writer.write(_get_filename(this->_step_count));
42
_vtk_writer.clear();
43
return
filename;
44
}
45
46
std::string _get_filename(
const
std::integral
auto
index)
const
{
47
return
_base_filename +
"-"
+ _get_file_number_string(index);
48
}
49
50
std::string _get_file_number_string(
const
std::integral
auto
index)
const
{
51
std::ostringstream file_number;
52
file_number << std::setw(5) << std::setfill(
'0'
) << index;
53
return
file_number.str();
54
}
55
56
VTKWriter _vtk_writer;
57
std::string _base_filename;
58
std::string _pvd_filename;
59
};
60
61
template
<
typename
VTKWriter>
62
VTKXMLTimeSeriesWriter
(VTKWriter&&) ->
VTKXMLTimeSeriesWriter<std::remove_cvref_t<VTKWriter>
>;
63
64
}
// namespace GridFormat
65
66
#endif
// GRIDFORMAT_VTK_XML_TIME_SERIES_WRITER_HPP_
GridFormat::VTKXMLTimeSeriesWriter
Writer for time series of a VTK-XML file format. Populates the "TimeValue" metadata field supported b...
Definition
xml_time_series_writer.hpp:27
writer.hpp
Base classes for grid data writers.
gridformat
vtk
xml_time_series_writer.hpp
Generated by
1.18.0