Peano
Loading...
Searching...
No Matches
PeanoHDF5PatchFileWriter.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include "PatchWriter.h"
6#include "config.h"
7
8#include "tarch/logging/Log.h"
9
10#include <vector>
11
12#ifdef UseHDF5
13#include "hdf5.h"
14#endif
15
16namespace tarch {
17 namespace plotter {
18 namespace griddata {
19 namespace blockstructured {
20 class PeanoHDF5PatchFileWriter;
21 }
22 }
23 }
24}
25
32 protected:
34 static const std::string HEADER;
35
36 const int _dimensions;
37 const bool _compress;
38
41
42 #ifdef UseHDF5
43 hid_t _file;
44
45 hid_t createDataTableProperties(int lineWidth, int rowCount) const;
46 #endif
47
48 bool _isOpen;
49
50 std::vector<double> _geometryData;
51
59
63 std::string getNameOfCurrentDataset() const;
64
65 public:
67 protected:
69
70 const std::string _identifier;
72 std::vector<double> _data;
73
74 public:
76 const std::string& identifier,
77 int unknownsPerAxis,
78 int numberOfUnknowns, const std::string& description,
79 const std::string& metaData,
80 double* mapping,
82 );
83
84 virtual ~CellDataWriter();
85
94 virtual void plotCell( int index, double value ) override;
95 virtual void plotCell( int index, double* values ) override;
96
97 virtual void close() override;
98
99 virtual void assignRemainingCellsDefaultValues() override;
100
101 virtual int getFirstCellWithinPatch(int index) const override;
102 };
103
105 protected:
107
108 const std::string _identifier;
110 std::vector<double> _data;
111
112 public:
114 const std::string& identifier,
115 int unknownsPerAxis,
116 int numberOfUnknowns, const std::string& description,
117 const std::string& metaData,
118 double* mapping,
120 );
121
123
132 virtual void plotVertex( int index, double value ) override;
133 virtual void plotVertex( int index, double* values ) override;
134
135 virtual void close() override;
136
140 virtual void assignRemainingVerticesDefaultValues() override;
141
142 virtual int getFirstVertexWithinPatch(int index) const override;
143 };
144
146 int dimension,
147 const std::string& filename,
148 bool append,
149 bool compress
150 );
151
153
157 virtual CellDataWriter* createCellDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerCell, const std::string& description ) override;
158 virtual CellDataWriter* createCellDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerCell, const std::string& description, const std::string& metaData ) override;
159
165 virtual CellDataWriter* createCellDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerCell, const std::string& description, const std::string& metaData, double* mapping ) override;
166
170 virtual VertexDataWriter* createVertexDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerVertex, const std::string& description ) override;
171 virtual VertexDataWriter* createVertexDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerVertex, const std::string& description, const std::string& metaData ) override;
172 virtual VertexDataWriter* createVertexDataWriter( const std::string& identifier, int unknownsPerAxis, int recordsPerVertex, const std::string& description, const std::string& metaData, double* mapping ) override;
173
174 virtual int plotPatch(
175 const tarch::la::Vector<2,double>& offset,
177 ) override;
178
179 virtual int plotPatch(
180 const tarch::la::Vector<3,double>& offset,
182 ) override;
183
187 virtual bool writeToFile() override;
188
192 virtual bool isOpen() override;
193
199 virtual void clear() override;
200
201 void addMetaData(const std::string& metaData);
202};
Log Device.
Definition Log.h:516
Abstract base class for a patch plotter.
Definition PatchWriter.h:26
virtual void close() override
If you close your writer, each cell/vertex has to be assigned a value, i.e.
tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter & _writer
CellDataWriter(const std::string &identifier, int unknownsPerAxis, int numberOfUnknowns, const std::string &description, const std::string &metaData, double *mapping, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter &writer)
tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter & _writer
VertexDataWriter(const std::string &identifier, int unknownsPerAxis, int numberOfUnknowns, const std::string &description, const std::string &metaData, double *mapping, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter &writer)
virtual int plotPatch(const tarch::la::Vector< 2, double > &offset, const tarch::la::Vector< 2, double > &size) override
virtual CellDataWriter * createCellDataWriter(const std::string &identifier, int unknownsPerAxis, int recordsPerCell, const std::string &description) override
Caller has to destroy this instance manually.
virtual VertexDataWriter * createVertexDataWriter(const std::string &identifier, int unknownsPerAxis, int recordsPerVertex, const std::string &description) override
Caller has to destroy this instance manually.
PeanoHDF5PatchFileWriter(int dimension, const std::string &filename, bool append, bool compress)
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.
Definition accelerator.h:19
Simple vector class.
Definition Vector.h:150