VTK  9.3.0
vtkCGNSReader.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2013-2014 Mickael Philit
3// SPDX-License-Identifier: BSD-3-Clause
19#ifndef vtkCGNSReader_h
20#define vtkCGNSReader_h
21
22#include "vtkIOCGNSReaderModule.h" // for export macro
24#include "vtkNew.h" // for vtkNew.
25
26#include <string> // for std::string
27
28namespace CGNSRead
29{
30VTK_ABI_NAMESPACE_BEGIN
31class vtkCGNSMetaData;
32VTK_ABI_NAMESPACE_END
33}
34
35VTK_ABI_NAMESPACE_BEGIN
39
40class VTKIOCGNSREADER_EXPORT vtkCGNSReader : public vtkMultiBlockDataSetAlgorithm
41{
42public:
43 static vtkCGNSReader* New();
45 void PrintSelf(ostream& os, vtkIndent indent) override;
46
48 {
49 CELL_DATA = 0,
50 FACE_DATA
51 };
52
54
64 vtkSetClampMacro(DataLocation, int, vtkCGNSReader::CELL_DATA, vtkCGNSReader::FACE_DATA);
65 vtkGetMacro(DataLocation, int);
67
69
75
79 int CanReadFile(VTK_FILEPATH const char* filename);
80
85
90
92
98 int GetBaseArrayStatus(const char* name);
99 void SetBaseArrayStatus(const char* name, int status);
103 const char* GetBaseArrayName(int index);
105
107
112 const char* GetFamilyArrayName(int index);
113 void SetFamilyArrayStatus(const char* name, int status);
114 int GetFamilyArrayStatus(const char* name);
118
120
125 const char* GetPointArrayName(int index);
126 int GetPointArrayStatus(const char* name);
127 void SetPointArrayStatus(const char* name, int status);
131
133
138 const char* GetCellArrayName(int index);
139 int GetCellArrayStatus(const char* name);
140 void SetCellArrayStatus(const char* name, int status);
144
146
151 const char* GetFaceArrayName(int index);
152 int GetFaceArrayStatus(const char* name);
153 void SetFaceArrayStatus(const char* name, int status);
157
159
163 vtkSetMacro(DoublePrecisionMesh, int);
164 vtkGetMacro(DoublePrecisionMesh, int);
165 vtkBooleanMacro(DoublePrecisionMesh, int);
167
169
173 vtkSetMacro(LoadBndPatch, bool);
174 vtkGetMacro(LoadBndPatch, bool);
175 vtkBooleanMacro(LoadBndPatch, bool);
177
179
183 vtkSetMacro(LoadMesh, bool);
184 vtkGetMacro(LoadMesh, bool);
185 vtkBooleanMacro(LoadMesh, bool);
187
189
193 vtkSetMacro(Use3DVector, bool);
194 vtkGetMacro(Use3DVector, bool);
195 vtkBooleanMacro(Use3DVector, bool);
197
199
207 vtkSetMacro(CreateEachSolutionAsBlock, int);
208 vtkGetMacro(CreateEachSolutionAsBlock, int);
209 vtkBooleanMacro(CreateEachSolutionAsBlock, int);
211
213
226 vtkSetMacro(IgnoreFlowSolutionPointers, bool);
227 vtkGetMacro(IgnoreFlowSolutionPointers, bool);
228 vtkBooleanMacro(IgnoreFlowSolutionPointers, bool);
230
232
238 vtkSetMacro(UseUnsteadyPattern, bool);
239 vtkGetMacro(UseUnsteadyPattern, bool);
240 vtkBooleanMacro(UseUnsteadyPattern, bool);
242
244
249 vtkSetMacro(UnsteadySolutionStartTimestep, int);
250 vtkGetMacro(UnsteadySolutionStartTimestep, int);
252
254
259 vtkSetMacro(DistributeBlocks, bool);
260 vtkGetMacro(DistributeBlocks, bool);
261 vtkBooleanMacro(DistributeBlocks, bool);
263
265
271 void SetCacheMesh(bool enable);
272 vtkGetMacro(CacheMesh, bool);
273 vtkBooleanMacro(CacheMesh, bool);
275
277
283 void SetCacheConnectivity(bool enable);
284 vtkGetMacro(CacheConnectivity, bool);
285 vtkBooleanMacro(CacheConnectivity, bool);
287
289
295 vtkGetObjectMacro(Controller, vtkMultiProcessController);
297
303
308
309protected:
311 ~vtkCGNSReader() override;
312
313 int FillOutputPortInformation(int port, vtkInformation* info) override;
316
318 int base, int zone, int cell_dim, int phys_dim, void* zsize, vtkMultiBlockDataSet* mbase);
319
321 int base, int zone, int cell_dim, int phys_dim, void* zsize, vtkMultiBlockDataSet* mbase);
322
328
329 vtkMultiProcessController* Controller = nullptr;
330 vtkIdType ProcRank = 0;
331 vtkIdType ProcSize = 1;
332
335
339
340private:
341 vtkCGNSReader(const vtkCGNSReader&) = delete;
342 void operator=(const vtkCGNSReader&) = delete;
343
344 std::string FileName;
345 int DataLocation = vtkCGNSReader::CELL_DATA;
346 bool LoadBndPatch = false;
347 bool LoadMesh = true;
348 int DoublePrecisionMesh = 1;
349 int CreateEachSolutionAsBlock = 0;
350 bool IgnoreFlowSolutionPointers = false;
351 bool UseUnsteadyPattern = false;
352 bool DistributeBlocks = true;
353 bool CacheMesh = false;
354 bool CacheConnectivity = false;
355 bool Use3DVector = true;
356 int UnsteadySolutionStartTimestep = 0;
357
358 // For internal cgio calls (low level IO)
359 int cgioNum; // cgio file reference
360 double rootId; // id of root node
361 double currentZoneId; // id of node currently being read (zone)
362
363 unsigned int NumberOfBases = 0;
364 int ActualTimeStep = 0;
365
366 class vtkPrivate;
367 vtkPrivate* Internals;
368 friend class vtkPrivate;
369};
370
371VTK_ABI_NAMESPACE_END
372#endif // vtkCGNSReader_h
vtkCGNSReader creates a multi-block dataset and reads unstructured grids and structured meshes from b...
void DisableAllFamilies()
API to select families to read.
int GetNumberOfFaceArrays()
API to get information of face arrays and enable/disable loading of particular arrays.
void Broadcast(vtkMultiProcessController *ctrl)
Sends metadata (that read from the input file, not settings modified through this API) from the rank ...
const char * GetPointArrayName(int index)
API to get information of point arrays and enable/disable loading of particular arrays.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetController(vtkMultiProcessController *c)
Set/get the communication object used to relay a list of files from the rank 0 process to all others.
void SetCacheMesh(bool enable)
This reader can cache the mesh points if they are time invariant.
int GetCurvilinearZone(int base, int zone, int cell_dim, int phys_dim, void *zsize, vtkMultiBlockDataSet *mbase)
~vtkCGNSReader() override
int GetCellArrayStatus(const char *name)
API to get information of cell arrays and enable/disable loading of particular arrays.
int GetPointArrayStatus(const char *name)
API to get information of point arrays and enable/disable loading of particular arrays.
void EnableAllFaceArrays()
API to get information of face arrays and enable/disable loading of particular arrays.
void DisableAllCellArrays()
API to get information of cell arrays and enable/disable loading of particular arrays.
void EnableAllFamilies()
API to select families to read.
void DisableAllPointArrays()
API to get information of point arrays and enable/disable loading of particular arrays.
const char * GetBaseArrayName(int index)
API to select bases to read.
int GetNumberOfPointArrays()
API to get information of point arrays and enable/disable loading of particular arrays.
vtkNew< vtkDataArraySelection > FaceDataArraySelection
void SetBaseArrayStatus(const char *name, int status)
API to select bases to read.
int ReadUserDefinedData(int zone, vtkMultiBlockDataSet *mbase)
Read "UserDefinedData_t" nodes in the given zone.
vtkDataArraySelection * GetBaseSelection()
Returns access to the base selection object.
const char * GetCellArrayName(int index)
API to get information of cell arrays and enable/disable loading of particular arrays.
int GetUnstructuredZone(int base, int zone, int cell_dim, int phys_dim, void *zsize, vtkMultiBlockDataSet *mbase)
static vtkCGNSReader * New()
void SetFaceArrayStatus(const char *name, int status)
API to get information of face arrays and enable/disable loading of particular arrays.
vtkDataArraySelection * GetFamilySelection()
Returns access to the family selection object.
void DisableAllBases()
API to select bases to read.
void SetCacheConnectivity(bool enable)
This reader can cache the mesh connectivities if they are time invariant.
int GetBaseArrayStatus(const char *name)
API to select bases to read.
void EnableAllCellArrays()
API to get information of cell arrays and enable/disable loading of particular arrays.
vtkGetCharFromStdStringMacro(FileName)
Specify file name of CGNS datafile to read.
int CanReadFile(VTK_FILEPATH const char *filename)
Is the given file name a CGNS file?
int GetFamilyArrayStatus(const char *name)
API to select families to read.
vtkNew< vtkDataArraySelection > PointDataArraySelection
int GetNumberOfBaseArrays()
API to select bases to read.
void DisableAllFaceArrays()
API to get information of face arrays and enable/disable loading of particular arrays.
vtkNew< vtkDataArraySelection > CellDataArraySelection
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkSetStdStringFromCharMacro(FileName)
Specify file name of CGNS datafile to read.
void EnableAllPointArrays()
API to get information of point arrays and enable/disable loading of particular arrays.
void SetFamilyArrayStatus(const char *name, int status)
API to select families to read.
vtkNew< vtkDataArraySelection > BaseSelection
void SetCellArrayStatus(const char *name, int status)
API to get information of cell arrays and enable/disable loading of particular arrays.
int GetNumberOfFamilyArrays()
API to select families to read.
const char * GetFaceArrayName(int index)
API to get information of face arrays and enable/disable loading of particular arrays.
int GetFaceArrayStatus(const char *name)
API to get information of face arrays and enable/disable loading of particular arrays.
const char * GetFamilyArrayName(int index)
API to select families to read.
int GetNumberOfCellArrays()
API to get information of cell arrays and enable/disable loading of particular arrays.
void SetPointArrayStatus(const char *name, int status)
API to get information of point arrays and enable/disable loading of particular arrays.
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkInformationStringKey * FAMILY()
Key used to put a family name in the meta-data associated with a node.
void EnableAllBases()
API to select bases to read.
vtkNew< vtkDataArraySelection > FamilySelection
Store on/off settings for data arrays, etc.
a simple class to control print indentation
Definition vtkIndent.h:29
Key for string values in vtkInformation.
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Composite dataset that organizes datasets into blocks.
Multiprocessing communication superclass.
Allocate and hold a VTK object.
Definition vtkNew.h:51
This file defines functions used by vtkCGNSReader and vtkCGNSReaderInternal.
int vtkIdType
Definition vtkType.h:315
#define VTK_FILEPATH