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 =========================================================================*/
43 #ifndef vtkOpenFOAMReader_h
44 #define vtkOpenFOAMReader_h
45 
46 #include "vtkIOGeometryModule.h" // For export macro
48 
49 class vtkCollection;
50 class vtkCharArray;
52 class vtkDoubleArray;
53 class vtkStdString;
54 class vtkStringArray;
55 
56 class vtkOpenFOAMReaderPrivate;
57 
59 {
60 public:
63  void PrintSelf(ostream &, vtkIndent);
64 
66  int CanReadFile(const char *);
67 
69 
70  vtkSetStringMacro(FileName);
71  vtkGetStringMacro(FileName);
73 
75 
77  { return this->GetNumberOfSelectionArrays(this->CellDataArraySelection); }
79 
81 
82  int GetCellArrayStatus(const char *name)
83  { return this->GetSelectionArrayStatus(this->CellDataArraySelection, name); }
84  void SetCellArrayStatus(const char *name, int status)
85  { this->SetSelectionArrayStatus(this->CellDataArraySelection, name, status); }
87 
89 
90  const char *GetCellArrayName(int index)
91  { return this->GetSelectionArrayName(this->CellDataArraySelection, index); }
93 
95 
97  { this->DisableAllSelectionArrays(this->CellDataArraySelection); }
99  { this->EnableAllSelectionArrays(this->CellDataArraySelection); }
101 
103 
105  { return this->GetNumberOfSelectionArrays(this->PointDataArraySelection); }
107 
109 
110  int GetPointArrayStatus(const char *name)
111  { return this->GetSelectionArrayStatus(this->PointDataArraySelection, name); }
112  void SetPointArrayStatus(const char *name, int status)
113  { this->SetSelectionArrayStatus(this->PointDataArraySelection,
114  name, status); }
116 
118 
119  const char *GetPointArrayName(int index)
120  { return this->GetSelectionArrayName(this->PointDataArraySelection, index); }
122 
124 
126  { this->DisableAllSelectionArrays(this->PointDataArraySelection); }
128  { this->EnableAllSelectionArrays(this->PointDataArraySelection); }
130 
132 
134  { return this->GetNumberOfSelectionArrays(
135  this->LagrangianDataArraySelection); }
137 
139 
142  { return this->GetSelectionArrayStatus(this->LagrangianDataArraySelection,
143  name); }
144  void SetLagrangianArrayStatus(const char *name, int status)
145  { this->SetSelectionArrayStatus(this->LagrangianDataArraySelection, name,
146  status); }
148 
150 
152  const char* GetLagrangianArrayName(int index)
153  { return this->GetSelectionArrayName(this->LagrangianDataArraySelection,
154  index); }
156 
158 
160  { this->DisableAllSelectionArrays(this->LagrangianDataArraySelection); }
162  { this->EnableAllSelectionArrays(this->LagrangianDataArraySelection); }
164 
166 
169  { return this->GetNumberOfSelectionArrays(this->PatchDataArraySelection); }
171 
173 
174  int GetPatchArrayStatus(const char *name)
175  { return this->GetSelectionArrayStatus(this->PatchDataArraySelection, name); }
176  void SetPatchArrayStatus(const char *name, int status)
177  { this->SetSelectionArrayStatus(this->PatchDataArraySelection, name,
178  status); }
180 
182 
183  const char *GetPatchArrayName(int index)
184  { return this->GetSelectionArrayName(this->PatchDataArraySelection, index); }
186 
188 
190  { this->DisableAllSelectionArrays(this->PatchDataArraySelection); }
192  { this->EnableAllSelectionArrays(this->PatchDataArraySelection); }
194 
196 
198  vtkSetMacro(CreateCellToPoint,int);
199  vtkGetMacro(CreateCellToPoint,int);
200  vtkBooleanMacro(CreateCellToPoint, int);
202 
204 
205  vtkSetMacro(CacheMesh, int);
206  vtkGetMacro(CacheMesh, int);
207  vtkBooleanMacro(CacheMesh, int);
209 
211 
212  vtkSetMacro(DecomposePolyhedra, int);
213  vtkGetMacro(DecomposePolyhedra, int);
214  vtkBooleanMacro(DecomposePolyhedra, int);
216 
217  // Option for reading old binary lagrangian/positions format
219 
220  vtkSetMacro(PositionsIsIn13Format, int);
221  vtkGetMacro(PositionsIsIn13Format, int);
222  vtkBooleanMacro(PositionsIsIn13Format, int);
224 
226 
228  vtkSetMacro(ListTimeStepsByControlDict, int);
229  vtkGetMacro(ListTimeStepsByControlDict, int);
230  vtkBooleanMacro(ListTimeStepsByControlDict, int);
232 
234 
235  vtkSetMacro(AddDimensionsToArrayNames, int);
236  vtkGetMacro(AddDimensionsToArrayNames, int);
237  vtkBooleanMacro(AddDimensionsToArrayNames, int);
239 
241 
242  vtkSetMacro(ReadZones, int);
243  vtkGetMacro(ReadZones, int);
244  vtkBooleanMacro(ReadZones, int);
246 
247  void SetRefresh() { this->Refresh = true; this->Modified(); }
248 
249  void SetParent(vtkOpenFOAMReader *parent) { this->Parent = parent; }
251  bool SetTimeValue(const double);
253  int MakeMetaDataAtTimeStep(const bool);
254 
255  //BTX
256  friend class vtkOpenFOAMReaderPrivate;
257  //ETX
258 
259 protected:
260  // refresh flag
261  bool Refresh;
262 
263  // for creating cell-to-point translated data
265 
266  // for caching mesh
268 
269  // for decomposing polyhedra on-the-fly
271 
272  // for reading old binary lagrangian/positions format
274 
275  // for reading point/face/cell-Zones
277 
278  // determine if time directories are listed according to controlDict
280 
281  // add dimensions to array names
283 
284  char *FileName;
287 
288  // DataArraySelection for Patch / Region Data
293 
294  // old selection status
295  unsigned long int PatchSelectionMTimeOld;
296  unsigned long int CellSelectionMTimeOld;
297  unsigned long int PointSelectionMTimeOld;
298  unsigned long int LagrangianSelectionMTimeOld;
299 
300  // preserved old information
308 
309  // paths to Lagrangians
311 
312  // number of reader instances
314  // index of the active reader
316 
323 
327  void UpdateStatus();
328  void UpdateProgress(double);
329 
330 private:
331  vtkOpenFOAMReader *Parent;
332 
333  vtkOpenFOAMReader(const vtkOpenFOAMReader&); // Not implemented.
334  void operator=(const vtkOpenFOAMReader&); // Not implemented.
335 
336  int GetNumberOfSelectionArrays(vtkDataArraySelection *);
337  int GetSelectionArrayStatus(vtkDataArraySelection *, const char *);
338  void SetSelectionArrayStatus(vtkDataArraySelection *, const char *, int);
339  const char *GetSelectionArrayName(vtkDataArraySelection *, int);
340  void DisableAllSelectionArrays(vtkDataArraySelection *);
341  void EnableAllSelectionArrays(vtkDataArraySelection *);
342 
343  void AddSelectionNames(vtkDataArraySelection *, vtkStringArray *);
344 };
345 
346 #endif
vtkOpenFOAMReader::MakeInformationVector
int MakeInformationVector(vtkInformationVector *, const vtkStdString &)
vtkIOGeometryModule.h
vtkOpenFOAMReader::CreateCellToPoint
int CreateCellToPoint
Definition: vtkOpenFOAMReader.h:264
vtkOpenFOAMReader::PrintSelf
void PrintSelf(ostream &, vtkIndent)
vtkOpenFOAMReader::LagrangianPaths
vtkStringArray * LagrangianPaths
Definition: vtkOpenFOAMReader.h:310
vtkOpenFOAMReader::PositionsIsIn13Format
int PositionsIsIn13Format
Definition: vtkOpenFOAMReader.h:273
vtkOpenFOAMReader::MakeMetaDataAtTimeStep
int MakeMetaDataAtTimeStep(const bool)
vtkOpenFOAMReader::CreateCellToPointOld
int CreateCellToPointOld
Definition: vtkOpenFOAMReader.h:303
vtkOpenFOAMReader::GetPatchArrayName
const char * GetPatchArrayName(int index)
Definition: vtkOpenFOAMReader.h:183
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkOpenFOAMReader::GetCellArrayStatus
int GetCellArrayStatus(const char *name)
Definition: vtkOpenFOAMReader.h:82
vtkOpenFOAMReader::SetCellArrayStatus
void SetCellArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:84
vtkOpenFOAMReader::GetNumberOfLagrangianArrays
int GetNumberOfLagrangianArrays(void)
Definition: vtkOpenFOAMReader.h:133
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkObject::Modified
virtual void Modified()
vtkOpenFOAMReader::SetParent
void SetParent(vtkOpenFOAMReader *parent)
Definition: vtkOpenFOAMReader.h:249
vtkOpenFOAMReader::EnableAllPatchArrays
void EnableAllPatchArrays()
Definition: vtkOpenFOAMReader.h:191
vtkOpenFOAMReader::FileNameOld
vtkStdString * FileNameOld
Definition: vtkOpenFOAMReader.h:301
vtkOpenFOAMReader::CreateCasePath
void CreateCasePath(vtkStdString &, vtkStdString &)
vtkOpenFOAMReader::ListTimeStepsByControlDict
int ListTimeStepsByControlDict
Definition: vtkOpenFOAMReader.h:279
vtkOpenFOAMReader::LagrangianSelectionMTimeOld
unsigned long int LagrangianSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:298
vtkOpenFOAMReader::ReadZones
int ReadZones
Definition: vtkOpenFOAMReader.h:276
vtkOpenFOAMReader::Refresh
bool Refresh
Definition: vtkOpenFOAMReader.h:261
VTKIOGEOMETRY_EXPORT
#define VTKIOGEOMETRY_EXPORT
Definition: vtkIOGeometryModule.h:15
vtkOpenFOAMReader::CacheMesh
int CacheMesh
Definition: vtkOpenFOAMReader.h:267
vtkOpenFOAMReader::SetLagrangianArrayStatus
void SetLagrangianArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:144
vtkOpenFOAMReader::GetPatchArrayStatus
int GetPatchArrayStatus(const char *name)
Definition: vtkOpenFOAMReader.h:174
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:34
vtkOpenFOAMReader::EnableAllPointArrays
void EnableAllPointArrays()
Definition: vtkOpenFOAMReader.h:127
vtkCharArray
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:46
vtkOpenFOAMReader::GetPointArrayStatus
int GetPointArrayStatus(const char *name)
Definition: vtkOpenFOAMReader.h:110
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkOpenFOAMReader::PointDataArraySelection
vtkDataArraySelection * PointDataArraySelection
Definition: vtkOpenFOAMReader.h:291
vtkCollection
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:53
vtkOpenFOAMReader::PointSelectionMTimeOld
unsigned long int PointSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:297
vtkOpenFOAMReader::~vtkOpenFOAMReader
~vtkOpenFOAMReader()
vtkOpenFOAMReader::EnableAllCellArrays
void EnableAllCellArrays()
Definition: vtkOpenFOAMReader.h:98
vtkOpenFOAMReader::GetPointArrayName
const char * GetPointArrayName(int index)
Definition: vtkOpenFOAMReader.h:119
vtkOpenFOAMReader::PositionsIsIn13FormatOld
int PositionsIsIn13FormatOld
Definition: vtkOpenFOAMReader.h:305
vtkOpenFOAMReader::CellDataArraySelection
vtkDataArraySelection * CellDataArraySelection
Definition: vtkOpenFOAMReader.h:290
vtkOpenFOAMReader::CellSelectionMTimeOld
unsigned long int CellSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:296
vtkOpenFOAMReader::SetRefresh
void SetRefresh()
Definition: vtkOpenFOAMReader.h:247
vtkOpenFOAMReader::DecomposePolyhedra
int DecomposePolyhedra
Definition: vtkOpenFOAMReader.h:270
vtkOpenFOAMReader::SetPatchArrayStatus
void SetPatchArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:176
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkOpenFOAMReader::New
static vtkOpenFOAMReader * New()
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkOpenFOAMReader::UpdateStatus
void UpdateStatus()
vtkOpenFOAMReader::DisableAllCellArrays
void DisableAllCellArrays()
Definition: vtkOpenFOAMReader.h:96
vtkOpenFOAMReader::FileName
char * FileName
Definition: vtkOpenFOAMReader.h:284
vtkMultiBlockDataSetAlgorithm.h
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkOpenFOAMReader::GetLagrangianArrayName
const char * GetLagrangianArrayName(int index)
Definition: vtkOpenFOAMReader.h:152
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkOpenFOAMReader::CasePath
vtkCharArray * CasePath
Definition: vtkOpenFOAMReader.h:285
vtkOpenFOAMReader::CurrentReaderIndex
int CurrentReaderIndex
Definition: vtkOpenFOAMReader.h:315
vtkOpenFOAMReader::EnableAllLagrangianArrays
void EnableAllLagrangianArrays()
Definition: vtkOpenFOAMReader.h:161
vtkOpenFOAMReader::Readers
vtkCollection * Readers
Definition: vtkOpenFOAMReader.h:286
vtkOpenFOAMReader
reads a dataset in OpenFOAM format
Definition: vtkOpenFOAMReader.h:59
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkOpenFOAMReader::CanReadFile
int CanReadFile(const char *)
vtkOpenFOAMReader::GetTimeValues
vtkDoubleArray * GetTimeValues()
vtkOpenFOAMReader::GetNumberOfPatchArrays
int GetNumberOfPatchArrays(void)
Definition: vtkOpenFOAMReader.h:168
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkOpenFOAMReader::PatchDataArraySelection
vtkDataArraySelection * PatchDataArraySelection
Definition: vtkOpenFOAMReader.h:289
vtkOpenFOAMReader::ReadZonesOld
int ReadZonesOld
Definition: vtkOpenFOAMReader.h:307
vtkOpenFOAMReader::ListTimeStepsByControlDictOld
int ListTimeStepsByControlDictOld
Definition: vtkOpenFOAMReader.h:302
vtkOpenFOAMReader::UpdateProgress
void UpdateProgress(double)
vtkOpenFOAMReader::AddDimensionsToArrayNames
int AddDimensionsToArrayNames
Definition: vtkOpenFOAMReader.h:282
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:45
vtkOpenFOAMReader::RequestInformation
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkOpenFOAMReader::SetPointArrayStatus
void SetPointArrayStatus(const char *name, int status)
Definition: vtkOpenFOAMReader.h:112
vtkOpenFOAMReader::DecomposePolyhedraOld
int DecomposePolyhedraOld
Definition: vtkOpenFOAMReader.h:304
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
vtkOpenFOAMReader::GetNumberOfPointArrays
int GetNumberOfPointArrays(void)
Definition: vtkOpenFOAMReader.h:104
vtkOpenFOAMReader::PatchSelectionMTimeOld
unsigned long int PatchSelectionMTimeOld
Definition: vtkOpenFOAMReader.h:295
vtkOpenFOAMReader::GetNumberOfCellArrays
int GetNumberOfCellArrays(void)
Definition: vtkOpenFOAMReader.h:76
vtkOpenFOAMReader::LagrangianDataArraySelection
vtkDataArraySelection * LagrangianDataArraySelection
Definition: vtkOpenFOAMReader.h:292
vtkOpenFOAMReader::SetTimeValue
bool SetTimeValue(const double)
vtkOpenFOAMReader::NumberOfReaders
int NumberOfReaders
Definition: vtkOpenFOAMReader.h:313
vtkOpenFOAMReader::SetTimeInformation
void SetTimeInformation(vtkInformationVector *, vtkDoubleArray *)
vtkOpenFOAMReader::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkOpenFOAMReader::DisableAllPointArrays
void DisableAllPointArrays()
Definition: vtkOpenFOAMReader.h:125
vtkOpenFOAMReader::AddDimensionsToArrayNamesOld
int AddDimensionsToArrayNamesOld
Definition: vtkOpenFOAMReader.h:306
vtkOpenFOAMReader::GetCellArrayName
const char * GetCellArrayName(int index)
Definition: vtkOpenFOAMReader.h:90
vtkOpenFOAMReader::DisableAllPatchArrays
void DisableAllPatchArrays()
Definition: vtkOpenFOAMReader.h:189
vtkOpenFOAMReader::GetLagrangianArrayStatus
int GetLagrangianArrayStatus(const char *name)
Definition: vtkOpenFOAMReader.h:141
vtkOpenFOAMReader::DisableAllLagrangianArrays
void DisableAllLagrangianArrays()
Definition: vtkOpenFOAMReader.h:159
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:32