VTK  9.4.20241016
PIODataHDF5.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright (c) 2021, Triad National Security, LLC
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-LANL-Triad-USGov
30#if !defined(_PIODATAHDF5_H)
31#define _PIODATAHDF5_H
32
33#include <PIOData.h>
34#include <fstream>
35#include <iostream>
36#include <list>
37#include <map>
38#include <set>
39#include <sstream>
40#include <string.h>
41#include <string>
42#include <valarray>
43#include <vtk_hdf5.h>
44
45VTK_ABI_NAMESPACE_BEGIN
46
47class PIO_DATA_HDF5 : public PIO_DATA
48{
49public:
50 PIO_DATA_HDF5(const char* piofile);
51 ~PIO_DATA_HDF5() override;
52
53 bool set_scalar_field(std::valarray<int>&, const char*) override;
54 bool set_scalar_field(std::valarray<int64_t>&, const char*) override;
55 bool set_scalar_field(std::valarray<double>&, const char*) override;
56 bool set_vector_field(std::valarray<std::valarray<double>>&, const char*) override;
57 bool read_dataset(std::valarray<double>&, const char*, int index);
58 bool read_dataset(std::valarray<std::string>&, const char*, int index);
59
60 bool has_scalar(const char*);
61 bool has_scalar(const char*, int&);
62 bool has_vector(const char*);
63 bool has_field(const char*) override;
64
65 bool good_read() override;
66 int get_pio_num() const override;
67 int get_num_components(const char*) const override;
68 int get_num_materials() const override;
69 int64_t get_num_cells() override;
70 int get_cycle() override;
71 double get_simtime() override;
72 int get_dimension() override;
73 bool get_gridsize(std::valarray<int>&) override;
74 bool get_gridscale(std::valarray<double>&) override;
75 bool get_gridorigin(std::valarray<double>&) override;
76 std::string get_eap_version() override;
77 std::string get_username() override;
78 std::string get_problemname() override;
79 bool get_material_names(std::valarray<std::string>&) override;
80 bool get_tracer_variable_names(std::valarray<std::string>&) override;
81 PIO_FIELD* get_pio_field() const override;
82
83 bool reconstruct_chunk_field(int64_t numcell, std::valarray<double>& va, const char* prefix,
84 const char* var, int materialId) override;
85
86 // cell_active is a mask array to determine which cells are active.
87 // since we could be using cell_active multiple times,
88 // only load cell_active array once, and keep it loaded
89 std::valarray<int> cell_active;
91
92private:
93 bool is_good_read;
94 hid_t hdf5_file_id;
95 PIO_FIELD* pio_field;
96
97}; // End class PIO_DATA_HDF5
98
99VTK_ABI_NAMESPACE_END
100#endif
class for reading PIO (Parallel Input Output) files in HDF5 format
Definition PIODataHDF5.h:48
bool has_vector(const char *)
bool set_scalar_field(std::valarray< int > &, const char *) override
int get_num_components(const char *) const override
bool get_gridsize(std::valarray< int > &) override
int64_t get_num_cells() override
bool set_vector_field(std::valarray< std::valarray< double > > &, const char *) override
bool has_field(const char *) override
bool has_scalar(const char *)
bool cell_active_loaded
Definition PIODataHDF5.h:90
~PIO_DATA_HDF5() override
int get_cycle() override
bool get_material_names(std::valarray< std::string > &) override
std::string get_username() override
double get_simtime() override
std::string get_problemname() override
bool has_scalar(const char *, int &)
bool read_dataset(std::valarray< std::string > &, const char *, int index)
bool set_scalar_field(std::valarray< int64_t > &, const char *) override
int get_pio_num() const override
bool read_dataset(std::valarray< double > &, const char *, int index)
int get_num_materials() const override
bool get_tracer_variable_names(std::valarray< std::string > &) override
PIO_FIELD * get_pio_field() const override
PIO_DATA_HDF5(const char *piofile)
bool good_read() override
bool set_scalar_field(std::valarray< double > &, const char *) override
bool get_gridorigin(std::valarray< double > &) override
std::valarray< int > cell_active
Definition PIODataHDF5.h:89
bool reconstruct_chunk_field(int64_t numcell, std::valarray< double > &va, const char *prefix, const char *var, int materialId) override
bool get_gridscale(std::valarray< double > &) override
std::string get_eap_version() override
int get_dimension() override
class for reading PIO (Parallel Input Output) data files
Definition PIOData.h:66
int64_t hid_t