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
vtkOpenFOAMReader::MakeInformationVector
int MakeInformationVector(vtkInformationVector *, const vtkStdString &)
vtkOpenFOAMReader::CreateCellToPoint
int CreateCellToPoint
Definition: vtkOpenFOAMReader.h:293
vtkOpenFOAMReader::PrintSelf
void PrintSelf(ostream &, vtkIndent)
Methods invoked by print to print information about the object including superclasses.
vtkOpenFOAMReader::LagrangianPaths
vtkStringArray * LagrangianPaths
Definition: vtkOpenFOAMReader.h:342
vtkOpenFOAMReader::PositionsIsIn13Format
int PositionsIsIn13Format
Definition: vtkOpenFOAMReader.h:302
vtkOpenFOAMReader::MakeMetaDataAtTimeStep
int MakeMetaDataAtTimeStep(const bool)
vtkOpenFOAMReader::CreateCellToPointOld
int CreateCellToPointOld
Definition: vtkOpenFOAMReader.h:335
vtkOpenFOAMReader::GetPatchArrayName
const char * GetPatchArrayName(int index)
Get the name of the Patch with the given index in the input.
Definition: vtkOpenFOAMReader.h:194
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:42
vtkOpenFOAMReader::GetCellArrayStatus
int GetCellArrayStatus(const char *name)
Get/Set whether the cell array with the given name is to be read.
Definition: vtkOpenFOAMReader.h:89
vtkOpenFOAMReader::SetCellArrayStatus
void SetCellArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:91
vtkOpenFOAMReader::Use64BitLabels
bool Use64BitLabels
Definition: vtkOpenFOAMReader.h:314
vtkOpenFOAMReader::GetNumberOfLagrangianArrays
int GetNumberOfLagrangianArrays(void)
Get the number of Lagrangian arrays available in the input.
Definition: vtkOpenFOAMReader.h:143
vtkObject::Modified
virtual void Modified()
Update the modification time for this object.
vtkOpenFOAMReader::SetParent
void SetParent(vtkOpenFOAMReader *parent)
Definition: vtkOpenFOAMReader.h:280
vtkOpenFOAMReader::EnableAllPatchArrays
void EnableAllPatchArrays()
Definition: vtkOpenFOAMReader.h:202
vtkOpenFOAMReader::FileNameOld
vtkStdString * FileNameOld
Definition: vtkOpenFOAMReader.h:333
vtkOpenFOAMReader::CreateCasePath
void CreateCasePath(vtkStdString &, vtkStdString &)
vtkOpenFOAMReader::LagrangianSelectionMTimeOld
vtkMTimeType LagrangianSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:330
vtkOpenFOAMReader::ListTimeStepsByControlDict
int ListTimeStepsByControlDict
Definition: vtkOpenFOAMReader.h:308
vtkOpenFOAMReader::ReadZones
int ReadZones
Definition: vtkOpenFOAMReader.h:305
vtkOpenFOAMReader::Refresh
bool Refresh
Definition: vtkOpenFOAMReader.h:290
vtkOpenFOAMReader::CacheMesh
int CacheMesh
Definition: vtkOpenFOAMReader.h:296
vtkOpenFOAMReader::SetLagrangianArrayStatus
void SetLagrangianArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:154
vtkOpenFOAMReader::GetPatchArrayStatus
int GetPatchArrayStatus(const char *name)
Get/Set whether the Patch with the given name is to be read.
Definition: vtkOpenFOAMReader.h:184
vtkOpenFOAMReader::vtkOpenFOAMReader
vtkOpenFOAMReader()
vtkOpenFOAMReader::CreateCharArrayFromString
void CreateCharArrayFromString(vtkCharArray *, const char *, vtkStdString &)
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:35
vtkMTimeType
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
vtkOpenFOAMReader::EnableAllPointArrays
void EnableAllPointArrays()
Definition: vtkOpenFOAMReader.h:137
vtkCharArray
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:39
vtkOpenFOAMReader::PatchSelectionMTimeOld
vtkMTimeType PatchSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:327
vtkOpenFOAMReader::GetPointArrayStatus
int GetPointArrayStatus(const char *name)
Get/Set whether the point array with the given name is to be read.
Definition: vtkOpenFOAMReader.h:119
vtkOpenFOAMReader::PointDataArraySelection
vtkDataArraySelection * PointDataArraySelection
Definition: vtkOpenFOAMReader.h:323
vtkOpenFOAMReader::CellSelectionMTimeOld
vtkMTimeType CellSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:328
vtkCollection
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:52
vtkOpenFOAMReader::~vtkOpenFOAMReader
~vtkOpenFOAMReader()
vtkOpenFOAMReader::EnableAllCellArrays
void EnableAllCellArrays()
Definition: vtkOpenFOAMReader.h:106
vtkOpenFOAMReader::GetPointArrayName
const char * GetPointArrayName(int index)
Get the name of the point array with the given index in the input.
Definition: vtkOpenFOAMReader.h:129
vtkOpenFOAMReader::PositionsIsIn13FormatOld
int PositionsIsIn13FormatOld
Definition: vtkOpenFOAMReader.h:337
vtkOpenFOAMReader::CellDataArraySelection
vtkDataArraySelection * CellDataArraySelection
Definition: vtkOpenFOAMReader.h:322
vtkOpenFOAMReader::DecomposePolyhedra
int DecomposePolyhedra
Definition: vtkOpenFOAMReader.h:299
vtkOpenFOAMReader::SetPatchArrayStatus
void SetPatchArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:186
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkOpenFOAMReader::New
static vtkOpenFOAMReader * New()
vtkOpenFOAMReader::UpdateStatus
void UpdateStatus()
vtkOpenFOAMReader::DisableAllCellArrays
void DisableAllCellArrays()
Turn on/off all cell arrays.
Definition: vtkOpenFOAMReader.h:104
vtkOpenFOAMReader::FileName
char * FileName
Definition: vtkOpenFOAMReader.h:316
vtkOpenFOAMReader::PointSelectionMTimeOld
vtkMTimeType PointSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:329
vtkMultiBlockDataSetAlgorithm.h
vtkOpenFOAMReader::GetLagrangianArrayName
const char * GetLagrangianArrayName(int index)
Get the name of the Lagrangian array with the given index in the input.
Definition: vtkOpenFOAMReader.h:162
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkOpenFOAMReader::CasePath
vtkCharArray * CasePath
Definition: vtkOpenFOAMReader.h:317
vtkOpenFOAMReader::CurrentReaderIndex
int CurrentReaderIndex
Definition: vtkOpenFOAMReader.h:347
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkOpenFOAMReader::EnableAllLagrangianArrays
void EnableAllLagrangianArrays()
Definition: vtkOpenFOAMReader.h:171
vtkOpenFOAMReader::Readers
vtkCollection * Readers
Definition: vtkOpenFOAMReader.h:318
vtkOpenFOAMReader
reads a dataset in OpenFOAM format
Definition: vtkOpenFOAMReader.h:60
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:87
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkOpenFOAMReader::CanReadFile
int CanReadFile(const char *)
Determine if the file can be readed with this reader.
vtkOpenFOAMReader::GetTimeValues
vtkDoubleArray * GetTimeValues()
vtkOpenFOAMReader::GetNumberOfPatchArrays
int GetNumberOfPatchArrays(void)
Get the number of Patches (including Internal Mesh) available in the input.
Definition: vtkOpenFOAMReader.h:177
vtkOpenFOAMReader::PatchDataArraySelection
vtkDataArraySelection * PatchDataArraySelection
Definition: vtkOpenFOAMReader.h:321
vtkOpenFOAMReader::ReadZonesOld
int ReadZonesOld
Definition: vtkOpenFOAMReader.h:339
vtkOpenFOAMReader::ListTimeStepsByControlDictOld
int ListTimeStepsByControlDictOld
Definition: vtkOpenFOAMReader.h:334
vtkOpenFOAMReader::UpdateProgress
void UpdateProgress(double)
vtkOpenFOAMReader::AddDimensionsToArrayNames
int AddDimensionsToArrayNames
Definition: vtkOpenFOAMReader.h:311
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:43
vtkOpenFOAMReader::RequestInformation
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:42
vtkOpenFOAMReader::SetPointArrayStatus
void SetPointArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:121
vtkOpenFOAMReader::DecomposePolyhedraOld
int DecomposePolyhedraOld
Definition: vtkOpenFOAMReader.h:336
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
vtkOpenFOAMReader::GetNumberOfPointArrays
int GetNumberOfPointArrays(void)
Get the number of point arrays available in the input.
Definition: vtkOpenFOAMReader.h:112
vtkOpenFOAMReader::GetNumberOfCellArrays
int GetNumberOfCellArrays(void)
Get the number of cell arrays available in the input.
Definition: vtkOpenFOAMReader.h:82
vtkOpenFOAMReader::LagrangianDataArraySelection
vtkDataArraySelection * LagrangianDataArraySelection
Definition: vtkOpenFOAMReader.h:324
vtkOpenFOAMReader::SetTimeValue
bool SetTimeValue(const double)
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkOpenFOAMReader::NumberOfReaders
int NumberOfReaders
Definition: vtkOpenFOAMReader.h:345
vtkOpenFOAMReader::SetTimeInformation
void SetTimeInformation(vtkInformationVector *, vtkDoubleArray *)
vtkOpenFOAMReader::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkOpenFOAMReader::DisableAllPointArrays
void DisableAllPointArrays()
Turn on/off all point arrays.
Definition: vtkOpenFOAMReader.h:135
vtkOpenFOAMReader::AddDimensionsToArrayNamesOld
int AddDimensionsToArrayNamesOld
Definition: vtkOpenFOAMReader.h:338
vtkOpenFOAMReader::GetCellArrayName
const char * GetCellArrayName(int index)
Get the name of the cell array with the given index in the input.
Definition: vtkOpenFOAMReader.h:98
vtkOpenFOAMReader::DisableAllPatchArrays
void DisableAllPatchArrays()
Turn on/off all Patches including the Internal Mesh.
Definition: vtkOpenFOAMReader.h:200
vtkOpenFOAMReader::GetLagrangianArrayStatus
int GetLagrangianArrayStatus(const char *name)
Get/Set whether the Lagrangian array with the given name is to be read.
Definition: vtkOpenFOAMReader.h:151
vtkOpenFOAMReader::DisableAllLagrangianArrays
void DisableAllLagrangianArrays()
Turn on/off all Lagrangian arrays.
Definition: vtkOpenFOAMReader.h:169
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:33