VTK  9.7.1
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 
45 VTK_ABI_NAMESPACE_BEGIN
46 
47 class PIO_DATA_HDF5 : public PIO_DATA
48 {
49 public:
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 
92 private:
93  bool is_good_read;
94  hid_t hdf5_file_id;
95  PIO_FIELD* pio_field;
96 
97 }; // End class PIO_DATA_HDF5
98 
99 VTK_ABI_NAMESPACE_END
100 #endif
PIO_FIELD * get_pio_field() const override
int get_pio_num() const override
bool cell_active_loaded
Definition: PIODataHDF5.h:90
bool has_vector(const char *)
std::string get_username() override
int64_t get_num_cells() override
int get_num_materials() const override
bool read_dataset(std::valarray< double > &, const char *, int index)
bool good_read() override
int get_dimension() override
std::string get_problemname() override
int get_cycle() override
bool reconstruct_chunk_field(int64_t numcell, std::valarray< double > &va, const char *prefix, const char *var, int materialId) override
bool get_tracer_variable_names(std::valarray< std::string > &) override
bool get_material_names(std::valarray< std::string > &) override
bool get_gridscale(std::valarray< double > &) override
int64_t hid_t
Definition: vtkHDFWriter.h:63
bool has_scalar(const char *)
class for reading PIO (Parallel Input Output) files in HDF5 format
Definition: PIODataHDF5.h:47
bool has_field(const char *) override
double get_simtime() override
~PIO_DATA_HDF5() override
bool set_vector_field(std::valarray< std::valarray< double >> &, const char *) override
bool get_gridsize(std::valarray< int > &) override
std::string get_eap_version() override
class for reading PIO (Parallel Input Output) data files
Definition: PIOData.h:65
PIO_DATA_HDF5(const char *piofile)
std::valarray< int > cell_active
Definition: PIODataHDF5.h:89
int get_num_components(const char *) const override
bool get_gridorigin(std::valarray< double > &) override
bool set_scalar_field(std::valarray< int > &, const char *) override