VTK  9.3.20240424
vtkPSLACReader.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
4
20#ifndef vtkPSLACReader_h
21#define vtkPSLACReader_h
22
23#include "vtkIOParallelNetCDFModule.h" // For export macro
24#include "vtkSLACReader.h"
25
26VTK_ABI_NAMESPACE_BEGIN
28
29class VTKIOPARALLELNETCDF_EXPORT vtkPSLACReader : public vtkSLACReader
30{
31public:
34 void PrintSelf(ostream& os, vtkIndent indent) override;
35
37
43 vtkGetObjectMacro(Controller, vtkMultiProcessController);
46
47protected:
49 ~vtkPSLACReader() override;
50
52
54 vtkInformationVector* outputVector) override;
55
56 int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
57 vtkInformationVector* outputVector) override;
58
59 int CheckTetrahedraWinding(int meshFD) override;
61 int meshFD, vtkMultiBlockDataSet* surfaceOutput, vtkMultiBlockDataSet* volumeOutput) override;
62 int ReadCoordinates(int meshFD, vtkMultiBlockDataSet* output) override;
64 int meshFD, vtkMultiBlockDataSet* output, MidpointCoordinateMap& map) override;
65 int ReadMidpointData(int meshFD, vtkMultiBlockDataSet* output, MidpointIdMap& map) override;
67 vtkMultiBlockDataSet* compositeOutput) override;
68 int ReadFieldData(const int* modeFDArray, int numModeFDs, vtkMultiBlockDataSet* output) override;
69
70 int ReadTetrahedronInteriorArray(int meshFD, vtkIdTypeArray* connectivity) override;
71 int ReadTetrahedronExteriorArray(int meshFD, vtkIdTypeArray* connectivity) override;
72
73 int MeshUpToDate() override;
74
79
80 class vtkInternal;
81 vtkInternal* PInternal;
82
84
91
96
101
103
107 {
108 return process * (this->NumberOfGlobalPoints / this->NumberOfPieces + 1);
109 }
111 {
112 vtkIdType result = this->StartPointRead(process + 1);
113 if (result > this->NumberOfGlobalPoints)
114 result = this->NumberOfGlobalPoints;
115 return result;
116 }
118
120
126
127private:
128 vtkPSLACReader(const vtkPSLACReader&) = delete;
129 void operator=(const vtkPSLACReader&) = delete;
130};
131
132VTK_ABI_NAMESPACE_END
133#endif // vtkPSLACReader_h
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Composite dataset that organizes datasets into blocks.
Multiprocessing communication superclass.
Extends the vtkSLACReader to read in partitioned pieces.
int ReadTetrahedronInteriorArray(int meshFD, vtkIdTypeArray *connectivity) override
Reads tetrahedron connectivity arrays.
int ReadMidpointData(int meshFD, vtkMultiBlockDataSet *output, MidpointIdMap &map) override
Read in the midpoint data from the mesh file.
vtkIdType NumberOfGlobalPoints
The number of points defined in the mesh file.
virtual void SetController(vtkMultiProcessController *)
The controller used to communicate partition data.
int ReadMidpointCoordinates(int meshFD, vtkMultiBlockDataSet *output, MidpointCoordinateMap &map) override
Reads in the midpoint coordinate data from the mesh file and returns a map from edges to midpoints.
int NumberOfPiecesCache
Piece information from the last call.
int RestoreMeshCache(vtkMultiBlockDataSet *surfaceOutput, vtkMultiBlockDataSet *volumeOutput, vtkMultiBlockDataSet *compositeOutput) override
Instead of reading data from the mesh file, restore the data from the previous mesh file read.
int MeshUpToDate() override
Returns 1 if the mesh is up to date, 0 if the mesh needs to be read from disk.
int NumberOfPieces
The number of pieces and the requested piece to load.
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkIdType StartPointRead(int process)
The start/end points read by the given process.
vtkMultiProcessController * Controller
vtkInternal * PInternal
int CheckTetrahedraWinding(int meshFD) override
Checks the winding of the tetrahedra in the mesh file.
vtkSmartPointer< vtkDataArray > ReadPointDataArray(int ncFD, int varId) override
Reads point data arrays.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
int ReadTetrahedronExteriorArray(int meshFD, vtkIdTypeArray *connectivity) override
Reads tetrahedron connectivity arrays.
vtkIdType NumberOfGlobalMidpoints
The number of midpoints defined in the mesh file.
int ReadCoordinates(int meshFD, vtkMultiBlockDataSet *output) override
Read in the point coordinate data from the mesh file.
~vtkPSLACReader() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkPSLACReader * New()
int RequestedPieceCache
Piece information from the last call.
int RequestedPiece
The number of pieces and the requested piece to load.
int ReadConnectivity(int meshFD, vtkMultiBlockDataSet *surfaceOutput, vtkMultiBlockDataSet *volumeOutput) override
Read the connectivity information from the mesh file.
vtkIdType EndPointRead(int process)
The start/end points read by the given process.
int ReadFieldData(const int *modeFDArray, int numModeFDs, vtkMultiBlockDataSet *output) override
Read in the field data from the mode file.
Manages a map from edges to midpoint coordinates.
Manages a map from edges to the point id of the midpoint.
A reader for a data format used by Omega3p, Tau3p, and several other tools used at the Standford Line...
Hold a reference to a vtkObjectBase instance.
int vtkIdType
Definition vtkType.h:315