VTK  9.3.1
vtkPExodusIIReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
4 
27 #ifndef vtkPExodusIIReader_h
28 #define vtkPExodusIIReader_h
29 
30 #include "vtkExodusIIReader.h"
31 #include "vtkIOParallelExodusModule.h" // For export macro
32 
33 #include <vector> // Required for vector
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 class vtkTimerLog;
38 
39 class VTKIOPARALLELEXODUS_EXPORT vtkPExodusIIReader : public vtkExodusIIReader
40 {
41 public:
42  static vtkPExodusIIReader* New();
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
47 
52  void SetController(vtkMultiProcessController* c);
53  vtkGetObjectMacro(Controller, vtkMultiProcessController);
55 
57 
66  vtkSetFilePathMacro(FilePattern);
67  vtkGetFilePathMacro(FilePattern);
68  vtkSetFilePathMacro(FilePrefix);
69  vtkGetFilePathMacro(FilePrefix);
71 
73 
77  void SetFileRange(int, int);
78  void SetFileRange(int* r) { this->SetFileRange(r[0], r[1]); }
79  vtkGetVector2Macro(FileRange, int);
81 
88  void SetFileNames(int nfiles, const char** names);
89 
90  void SetFileName(VTK_FILEPATH const char* name) override;
91 
95  char** GetFileNames() { return this->FileNames; }
96 
100  int GetNumberOfFileNames() { return this->NumberOfFileNames; }
101 
103 
106  vtkGetMacro(NumberOfFiles, int);
108 
110  vtkIdType GetTotalNumberOfNodes() override;
111 
116  virtual void Broadcast(vtkMultiProcessController* ctrl);
117 
119 
129  vtkGetMacro(VariableCacheSize, double);
130  vtkSetMacro(VariableCacheSize, double);
132 
133 protected:
135  ~vtkPExodusIIReader() override;
136 
138 
141  int DeterminePattern(const char* file);
142  static int DetermineFileId(const char* file);
144 
145  // holds the size of the variable cache in GigaBytes
147 
148  // **KEN** Previous discussions concluded with std classes in header
149  // files is bad. Perhaps we should change ReaderList.
150 
154  char* FilePattern;
156  char* FilePrefix;
159  int FileRange[2];
160  int CurrentFileRange[2];
162  char** FileNames;
164 
165  std::vector<vtkExodusIIReader*> ReaderList;
166  std::vector<int> NumberOfPointsPerFile;
167  std::vector<int> NumberOfCellsPerFile;
168 
170 
171  int Timing;
173 
176 
177 private:
178  vtkPExodusIIReader(const vtkPExodusIIReader&) = delete;
179  void operator=(const vtkPExodusIIReader&) = delete;
180 };
181 
182 VTK_ABI_NAMESPACE_END
183 #endif
std::vector< int > NumberOfPointsPerFile
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
std::vector< vtkExodusIIReader * > ReaderList
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Store vtkAlgorithm input/output information.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int vtkIdType
Definition: vtkType.h:315
static vtkExodusIIReader * New()
virtual vtkIdType GetTotalNumberOfElements()
vtkGetFilePathMacro(FileName)
Specify file name of the Exodus file.
Timer support and logging.
Definition: vtkTimerLog.h:84
std::vector< int > NumberOfCellsPerFile
vtkMultiProcessController * Controller
a simple class to control print indentation
Definition: vtkIndent.h:28
Read Exodus II files (.exii)
virtual vtkIdType GetTotalNumberOfNodes()
void SetFileRange(int *r)
Set the range of files that are being loaded.
#define VTK_FILEPATH
Read exodus 2 files .ex2.
char ** GetFileNames()
Return pointer to list of file names set in SetFileNames.
Store zero or more vtkInformation instances.
virtual void SetFileName(VTK_FILEPATH const char *fname)
Specify file name of the Exodus file.
int GetNumberOfFileNames()
Return number of file names set in SetFileNames.
friend class vtkPExodusIIReader
Multiprocessing communication superclass.