VTK  9.7.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:363
static vtkExodusIIReader * New()
virtual void SetFileName(const char *fname)
Specify file name of the Exodus file.
virtual vtkIdType GetTotalNumberOfElements()
vtkGetFilePathMacro(FileName)
Specify file name of the Exodus file.
Timer support and logging.
Definition: vtkTimerLog.h:85
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.
int GetNumberOfFileNames()
Return number of file names set in SetFileNames.
friend class vtkPExodusIIReader
Multiprocessing communication superclass.