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 
28 namespace CGNSRead
29 {
30 VTK_ABI_NAMESPACE_BEGIN
31 class vtkCGNSMetaData;
32 VTK_ABI_NAMESPACE_END
33 }
34 
35 VTK_ABI_NAMESPACE_BEGIN
39 
40 class VTKIOCGNSREADER_EXPORT vtkCGNSReader : public vtkMultiBlockDataSetAlgorithm
41 {
42 public:
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 
309 protected:
311  ~vtkCGNSReader() override;
312 
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 
340 private:
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 
371 VTK_ABI_NAMESPACE_END
372 #endif // vtkCGNSReader_h
vtkCGNSReader creates a multi-block dataset and reads unstructured grids and structured meshes from b...
Definition: vtkCGNSReader.h:41
void DisableAllFamilies()
API to select families to read.
int GetNumberOfFaceArrays()
API to get information of face arrays and enable/disable loading of particular arrays.
const char * GetBaseArrayName(int index)
API to select bases to read.
const char * GetFamilyArrayName(int index)
API to select families to read.
void Broadcast(vtkMultiProcessController *ctrl)
Sends metadata (that read from the input file, not settings modified through this API) from the rank ...
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.
static vtkCGNSReader * New()
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.
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.
vtkDataArraySelection * GetFamilySelection()
Returns access to the family selection object.
int ReadUserDefinedData(int zone, vtkMultiBlockDataSet *mbase)
Read "UserDefinedData_t" nodes in the given zone.
int GetUnstructuredZone(int base, int zone, int cell_dim, int phys_dim, void *zsize, vtkMultiBlockDataSet *mbase)
const char * GetCellArrayName(int index)
API to get information of cell arrays and enable/disable loading of particular arrays.
static vtkInformationStringKey * FAMILY()
Key used to put a family name in the meta-data associated with a node.
void SetFaceArrayStatus(const char *name, int status)
API to get information of face arrays and enable/disable loading of particular arrays.
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.
const char * GetFaceArrayName(int index)
API to get information of face arrays and enable/disable loading of particular arrays.
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.
int GetFaceArrayStatus(const char *name)
API to get information of face arrays and enable/disable loading of particular arrays.
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.
vtkDataArraySelection * GetBaseSelection()
Returns access to the base selection object.
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.
void EnableAllBases()
API to select bases to read.
vtkNew< vtkDataArraySelection > FamilySelection
const char * GetPointArrayName(int index)
API to get information of point arrays and enable/disable loading of particular arrays.
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.
This file defines functions used by vtkCGNSReader and vtkCGNSReaderInternal.
Definition: cgio_helpers.h:19
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246
@ string
Definition: vtkX3D.h:490
int vtkIdType
Definition: vtkType.h:315
#define VTK_FILEPATH