VTK
vtkOpenFOAMReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenFOAMReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
44 #ifndef vtkOpenFOAMReader_h
45 #define vtkOpenFOAMReader_h
46 
47 #include "vtkIOGeometryModule.h" // For export macro
49 
50 class vtkCollection;
51 class vtkCharArray;
53 class vtkDoubleArray;
54 class vtkStdString;
55 class vtkStringArray;
56 
57 class vtkOpenFOAMReaderPrivate;
58 
59 class VTKIOGEOMETRY_EXPORT vtkOpenFOAMReader : public vtkMultiBlockDataSetAlgorithm
60 {
61 public:
64  void PrintSelf(ostream &, vtkIndent);
65 
69  int CanReadFile(const char *);
70 
72 
75  vtkSetStringMacro(FileName);
76  vtkGetStringMacro(FileName);
78 
83  { return this->GetNumberOfSelectionArrays(this->CellDataArraySelection); }
84 
89  int GetCellArrayStatus(const char *name)
90  { return this->GetSelectionArrayStatus(this->CellDataArraySelection, name); }
91  void SetCellArrayStatus(const char *name, int status)
92  { this->SetSelectionArrayStatus(this->CellDataArraySelection, name, status); }
93 
98  const char *GetCellArrayName(int index)
99  { return this->GetSelectionArrayName(this->CellDataArraySelection, index); }
100 
105  { this->DisableAllSelectionArrays(this->CellDataArraySelection); }
107  { this->EnableAllSelectionArrays(this->CellDataArraySelection); }
108 
113  { return this->GetNumberOfSelectionArrays(this->PointDataArraySelection); }
114 
119  int GetPointArrayStatus(const char *name)
120  { return this->GetSelectionArrayStatus(this->PointDataArraySelection, name); }
121  void SetPointArrayStatus(const char *name, int status)
122  { this->SetSelectionArrayStatus(this->PointDataArraySelection,
123  name, status); }
124 
129  const char *GetPointArrayName(int index)
130  { return this->GetSelectionArrayName(this->PointDataArraySelection, index); }
131 
136  { this->DisableAllSelectionArrays(this->PointDataArraySelection); }
138  { this->EnableAllSelectionArrays(this->PointDataArraySelection); }
139 
144  { return this->GetNumberOfSelectionArrays(
145  this->LagrangianDataArraySelection); }
146 
152  { return this->GetSelectionArrayStatus(this->LagrangianDataArraySelection,
153  name); }
154  void SetLagrangianArrayStatus(const char *name, int status)
155  { this->SetSelectionArrayStatus(this->LagrangianDataArraySelection, name,
156  status); }
157 
162  const char* GetLagrangianArrayName(int index)
163  { return this->GetSelectionArrayName(this->LagrangianDataArraySelection,
164  index); }
165 
170  { this->DisableAllSelectionArrays(this->LagrangianDataArraySelection); }
172  { this->EnableAllSelectionArrays(this->LagrangianDataArraySelection); }
173 
178  { return this->GetNumberOfSelectionArrays(this->PatchDataArraySelection); }
179 
184  int GetPatchArrayStatus(const char *name)
185  { return this->GetSelectionArrayStatus(this->PatchDataArraySelection, name); }
186  void SetPatchArrayStatus(const char *name, int status)
187  { this->SetSelectionArrayStatus(this->PatchDataArraySelection, name,
188  status); }
189 
194  const char *GetPatchArrayName(int index)
195  { return this->GetSelectionArrayName(this->PatchDataArraySelection, index); }
196 
201  { this->DisableAllSelectionArrays(this->PatchDataArraySelection); }
203  { this->EnableAllSelectionArrays(this->PatchDataArraySelection); }
204 
206 
209  vtkSetMacro(CreateCellToPoint,int);
210  vtkGetMacro(CreateCellToPoint,int);
211  vtkBooleanMacro(CreateCellToPoint, int);
213 
215 
218  vtkSetMacro(CacheMesh, int);
219  vtkGetMacro(CacheMesh, int);
220  vtkBooleanMacro(CacheMesh, int);
222 
224 
227  vtkSetMacro(DecomposePolyhedra, int);
228  vtkGetMacro(DecomposePolyhedra, int);
229  vtkBooleanMacro(DecomposePolyhedra, int);
231 
232  // Option for reading old binary lagrangian/positions format
234 
237  vtkSetMacro(PositionsIsIn13Format, int);
238  vtkGetMacro(PositionsIsIn13Format, int);
239  vtkBooleanMacro(PositionsIsIn13Format, int);
241 
243 
246  vtkSetMacro(ListTimeStepsByControlDict, int);
247  vtkGetMacro(ListTimeStepsByControlDict, int);
248  vtkBooleanMacro(ListTimeStepsByControlDict, int);
250 
252 
255  vtkSetMacro(AddDimensionsToArrayNames, int);
256  vtkGetMacro(AddDimensionsToArrayNames, int);
257  vtkBooleanMacro(AddDimensionsToArrayNames, int);
259 
261 
264  vtkSetMacro(ReadZones, int);
265  vtkGetMacro(ReadZones, int);
266  vtkBooleanMacro(ReadZones, int);
268 
270 
273  vtkSetMacro(Use64BitLabels, bool)
274  vtkGetMacro(Use64BitLabels, bool)
275  vtkBooleanMacro(Use64BitLabels, bool)
277 
278  void SetRefresh() { this->Refresh = true; this->Modified(); }
279 
280  void SetParent(vtkOpenFOAMReader *parent) { this->Parent = parent; }
282  bool SetTimeValue(const double);
284  int MakeMetaDataAtTimeStep(const bool);
285 
286  friend class vtkOpenFOAMReaderPrivate;
287 
288 protected:
289  // refresh flag
290  bool Refresh;
291 
292  // for creating cell-to-point translated data
294 
295  // for caching mesh
297 
298  // for decomposing polyhedra on-the-fly
300 
301  // for reading old binary lagrangian/positions format
303 
304  // for reading point/face/cell-Zones
306 
307  // determine if time directories are listed according to controlDict
309 
310  // add dimensions to array names
312 
313  // Expect label size to be 64-bit integers instead of the default 32.
315 
316  char *FileName;
319 
320  // DataArraySelection for Patch / Region Data
325 
326  // old selection status
331 
332  // preserved old information
340 
341  // paths to Lagrangians
343 
344  // number of reader instances
346  // index of the active reader
348 
355 
359  void UpdateStatus();
360  void UpdateProgress(double);
361 
362 private:
363  vtkOpenFOAMReader *Parent;
364 
365  vtkOpenFOAMReader(const vtkOpenFOAMReader&) VTK_DELETE_FUNCTION;
366  void operator=(const vtkOpenFOAMReader&) VTK_DELETE_FUNCTION;
367 
368  int GetNumberOfSelectionArrays(vtkDataArraySelection *);
369  int GetSelectionArrayStatus(vtkDataArraySelection *, const char *);
370  void SetSelectionArrayStatus(vtkDataArraySelection *, const char *, int);
371  const char *GetSelectionArrayName(vtkDataArraySelection *, int);
372  void DisableAllSelectionArrays(vtkDataArraySelection *);
373  void EnableAllSelectionArrays(vtkDataArraySelection *);
374 
375  void AddSelectionNames(vtkDataArraySelection *, vtkStringArray *);
376 };
377 
378 #endif
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:39
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:52
Store on/off settings for data arrays for a vtkSource.
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual void Modified()
Update the modification time for this object.
reads a dataset in OpenFOAM format
vtkMTimeType CellSelectionMTimeOld
vtkCharArray * CasePath
void SetLagrangianArrayStatus(const char *name, int status)
void PrintSelf(ostream &, vtkIndent)
Methods invoked by print to print information about the object including superclasses.
void DisableAllPatchArrays()
Turn on/off all Patches including the Internal Mesh.
int GetCellArrayStatus(const char *name)
Get/Set whether the cell array with the given name is to be read.
void SetPatchArrayStatus(const char *name, int status)
static vtkOpenFOAMReader * New()
int GetNumberOfCellArrays(void)
Get the number of cell arrays available in the input.
vtkDataArraySelection * PointDataArraySelection
vtkMTimeType PatchSelectionMTimeOld
vtkCollection * Readers
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkDataArraySelection * CellDataArraySelection
void CreateCasePath(vtkStdString &, vtkStdString &)
void DisableAllPointArrays()
Turn on/off all point arrays.
const char * GetCellArrayName(int index)
Get the name of the cell array with the given index in the input.
void CreateCharArrayFromString(vtkCharArray *, const char *, vtkStdString &)
vtkDataArraySelection * PatchDataArraySelection
int GetLagrangianArrayStatus(const char *name)
Get/Set whether the Lagrangian array with the given name is to be read.
void SetParent(vtkOpenFOAMReader *parent)
bool SetTimeValue(const double)
vtkDoubleArray * GetTimeValues()
const char * GetPointArrayName(int index)
Get the name of the point array with the given index in the input.
int GetNumberOfLagrangianArrays(void)
Get the number of Lagrangian arrays available in the input.
vtkMTimeType PointSelectionMTimeOld
void DisableAllLagrangianArrays()
Turn on/off all Lagrangian arrays.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkDataArraySelection * LagrangianDataArraySelection
int GetPatchArrayStatus(const char *name)
Get/Set whether the Patch with the given name is to be read.
void UpdateProgress(double)
int GetNumberOfPatchArrays(void)
Get the number of Patches (including Internal Mesh) available in the input.
int MakeInformationVector(vtkInformationVector *, const vtkStdString &)
int GetPointArrayStatus(const char *name)
Get/Set whether the point array with the given name is to be read.
int MakeMetaDataAtTimeStep(const bool)
void DisableAllCellArrays()
Turn on/off all cell arrays.
void SetCellArrayStatus(const char *name, int status)
const char * GetLagrangianArrayName(int index)
Get the name of the Lagrangian array with the given index in the input.
const char * GetPatchArrayName(int index)
Get the name of the Patch with the given index in the input.
vtkStringArray * LagrangianPaths
vtkStdString * FileNameOld
void SetTimeInformation(vtkInformationVector *, vtkDoubleArray *)
int GetNumberOfPointArrays(void)
Get the number of point arrays available in the input.
vtkMTimeType LagrangianSelectionMTimeOld
int CanReadFile(const char *)
Determine if the file can be readed with this reader.
void SetPointArrayStatus(const char *name, int status)
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
a vtkAbstractArray subclass for strings
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248