VTK  9.3.20240418
vtkMPIMultiBlockPLOT3DReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
13 #ifndef vtkMPIMultiBlockPLOT3DReader_h
14 #define vtkMPIMultiBlockPLOT3DReader_h
15 
16 #include "vtkIOMPIParallelModule.h" // For export macro
18 
19 VTK_ABI_NAMESPACE_BEGIN
20 class VTKIOMPIPARALLEL_EXPORT vtkMPIMultiBlockPLOT3DReader : public vtkMultiBlockPLOT3DReader
21 {
22 public:
25  void PrintSelf(ostream& os, vtkIndent indent) override;
26 
28 
32  vtkSetMacro(UseMPIIO, bool);
33  vtkGetMacro(UseMPIIO, bool);
34  vtkBooleanMacro(UseMPIIO, bool);
36 
37 protected:
40 
45  bool CanUseMPIIO();
46 
47  int OpenFileForDataRead(void*& fp, const char* fname) override;
48  void CloseFile(void* fp) override;
49 
50  int ReadIntScalar(void* vfp, int extent[6], int wextent[6], vtkDataArray* scalar,
51  vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord& currentRecord) override;
52  int ReadScalar(void* vfp, int extent[6], int wextent[6], vtkDataArray* scalar,
53  vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord& currentRecord) override;
54  int ReadVector(void* vfp, int extent[6], int wextent[6], int numDims, vtkDataArray* vector,
55  vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord& currentRecord) override;
56  bool UseMPIIO;
57 
58 private:
60  void operator=(const vtkMPIMultiBlockPLOT3DReader&) = delete;
61 };
62 
63 VTK_ABI_NAMESPACE_END
64 #endif
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:155
a simple class to control print indentation
Definition: vtkIndent.h:108
vtkMultiBlockPLOT3DReader subclass that uses MPI-IO to efficiently read binary files for 3D domains i...
void CloseFile(void *fp) override
int ReadIntScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord) override
static vtkMPIMultiBlockPLOT3DReader * New()
int OpenFileForDataRead(void *&fp, const char *fname) override
~vtkMPIMultiBlockPLOT3DReader() override
int ReadVector(void *vfp, int extent[6], int wextent[6], int numDims, vtkDataArray *vector, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord) override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int ReadScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord) override
bool CanUseMPIIO()
Determines we should use MPI-IO for the current file.
@ vector
Definition: vtkX3D.h:237
@ extent
Definition: vtkX3D.h:345
@ offset
Definition: vtkX3D.h:438