VTK  9.1.0
H5RageAdaptor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: H5RageAdaptor.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 #ifndef H5RageAdaptor_h
16 #define H5RageAdaptor_h
17 
18 #include "vtkDataArraySelection.h"
19 #include "vtkIOH5RageModule.h" // For export macro
20 
21 #include <string> // for std::string
22 #include <vector> // for std::vector
23 
25 class vtkImageData;
27 
28 class VTKIOH5RAGE_EXPORT H5RageAdaptor
29 {
30 public:
33 
34  int InitializeGlobal(const char* DescFile);
35  void LoadVariableData(vtkImageData* data, int timeStep, vtkDataArraySelection* cellSelection);
36  template <class T>
37  void ConvertHDFData(int ndims, int* dims_out, T* hdfData);
38 
39  int GetNumberOfTimeSteps() { return this->NumberOfTimeSteps; }
40  double GetTimeStep(int step) { return this->TimeSteps[step]; }
41 
42  int GetNumberOfVariables() { return (int)this->VariableName.size(); }
43  const char* GetVariableName(int indx) { return this->VariableName[indx].c_str(); }
44 
45  int GetWholeExtent(int ext) { return this->WholeExtent[ext]; }
46  int GetSubExtent(int ext) { return this->SubExtent[ext]; }
47  int GetDimension(int dim) { return this->Dimension[dim]; }
48  double GetOrigin(int dim) { return this->Origin[dim]; }
49  double GetSpacing(int dim) { return this->Spacing[dim]; }
50 
51 protected:
52  // Collect the metadata
53  int CollectMetaData(const char* H5RageFileName);
54  int ParseH5RageFile(const char* H5RageFileName);
56 
57  // Used in parallel reader and load balancing
59  int Rank;
60  int TotalRank;
61 
62  // Time series of hdf files
63  std::vector<std::string> HdfFileName; // all hdf files
64 
65  // Time step information retrieved from hdf filenames
67  double* TimeSteps;
68 
69  // Geometry information for sharing data with other processors
72 
73  int WholeExtent[6]; // Size of image
74  int SubExtent[6]; // Size of image this processor
75  int Dimension[3]; // Dimension of image
76  double Origin[3]; // Physical origin
77  double Spacing[3]; // Physical spacing
78 
81  bool UseFloat64;
82 
83  // Variable information retrieved from hdf filenames
85  std::vector<std::string> VariableName;
86 };
87 
88 #endif
89 
90 // VTK-HeaderTest-Exclude: H5RageAdaptor.h
H5RageAdaptor::ConvertHDFData
void ConvertHDFData(int ndims, int *dims_out, T *hdfData)
H5RageAdaptor::GetNumberOfVariables
int GetNumberOfVariables()
Definition: H5RageAdaptor.h:42
H5RageAdaptor::GetVariableName
const char * GetVariableName(int indx)
Definition: H5RageAdaptor.h:43
H5RageAdaptor::HdfFileName
std::vector< std::string > HdfFileName
Definition: H5RageAdaptor.h:63
H5RageAdaptor::NumberOfVariables
int NumberOfVariables
Definition: H5RageAdaptor.h:84
H5RageAdaptor::GetSubExtent
int GetSubExtent(int ext)
Definition: H5RageAdaptor.h:46
vtkX3D::data
@ data
Definition: vtkX3D.h:321
H5RageAdaptor::GetOrigin
double GetOrigin(int dim)
Definition: H5RageAdaptor.h:48
H5RageAdaptor::NumberOfTimeSteps
int NumberOfTimeSteps
Definition: H5RageAdaptor.h:66
H5RageAdaptor::GetSpacing
double GetSpacing(int dim)
Definition: H5RageAdaptor.h:49
H5RageAdaptor::GetNumberOfTimeSteps
int GetNumberOfTimeSteps()
Definition: H5RageAdaptor.h:39
H5RageAdaptor::TrimString
std::string TrimString(const std::string &str)
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:35
H5RageAdaptor::TotalTuples
int TotalTuples
Definition: H5RageAdaptor.h:80
H5RageAdaptor::ParseH5RageFile
int ParseH5RageFile(const char *H5RageFileName)
H5RageAdaptor::InitializeGlobal
int InitializeGlobal(const char *DescFile)
H5RageAdaptor::Rank
int Rank
Definition: H5RageAdaptor.h:59
H5RageAdaptor::VariableName
std::vector< std::string > VariableName
Definition: H5RageAdaptor.h:85
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:77
H5RageAdaptor
Definition: H5RageAdaptor.h:29
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
H5RageAdaptor::GetWholeExtent
int GetWholeExtent(int ext)
Definition: H5RageAdaptor.h:45
H5RageAdaptor::TotalRank
int TotalRank
Definition: H5RageAdaptor.h:60
H5RageAdaptor::UseFloat64
bool UseFloat64
Definition: H5RageAdaptor.h:81
vtkDataArraySelection.h
H5RageAdaptor::NumberOfDimensions
int NumberOfDimensions
Definition: H5RageAdaptor.h:79
vtkX3D::string
@ string
Definition: vtkX3D.h:496
H5RageAdaptor::~H5RageAdaptor
~H5RageAdaptor()
H5RageAdaptor::ExtentSchedule
int ** ExtentSchedule
Definition: H5RageAdaptor.h:70
H5RageAdaptor::Controller
vtkMultiProcessController * Controller
Definition: H5RageAdaptor.h:58
H5RageAdaptor::GetDimension
int GetDimension(int dim)
Definition: H5RageAdaptor.h:47
H5RageAdaptor::H5RageAdaptor
H5RageAdaptor(vtkMultiProcessController *ctrl)
H5RageAdaptor::LoadVariableData
void LoadVariableData(vtkImageData *data, int timeStep, vtkDataArraySelection *cellSelection)
H5RageAdaptor::TimeSteps
double * TimeSteps
Definition: H5RageAdaptor.h:67
H5RageAdaptor::NumberOfTuples
int * NumberOfTuples
Definition: H5RageAdaptor.h:71
H5RageAdaptor::GetTimeStep
double GetTimeStep(int step)
Definition: H5RageAdaptor.h:40
H5RageAdaptor::CollectMetaData
int CollectMetaData(const char *H5RageFileName)