38#ifndef vtkOpenFOAMReader_h
39#define vtkOpenFOAMReader_h
41#include "vtkIOGeometryModule.h"
46VTK_ABI_NAMESPACE_BEGIN
55class vtkOpenFOAMReaderPrivate;
57#define VTK_OPENFOAM_TIME_PROFILING 0
63 friend class vtkOpenFOAMReaderPrivate;
90 vtkSetMacro(SequentialProcessing,
bool);
91 vtkGetMacro(SequentialProcessing,
bool);
92 vtkBooleanMacro(SequentialProcessing,
bool);
105 return this->GetNumberOfSelectionArrays(this->CellDataArraySelection);
114 return this->GetSelectionArrayStatus(this->CellDataArraySelection, name);
118 this->SetSelectionArrayStatus(this->CellDataArraySelection, name, status);
127 return this->GetSelectionArrayName(this->CellDataArraySelection, index);
146 return this->GetNumberOfSelectionArrays(this->PointDataArraySelection);
155 return this->GetSelectionArrayStatus(this->PointDataArraySelection, name);
159 this->SetSelectionArrayStatus(this->PointDataArraySelection, name, status);
168 return this->GetSelectionArrayName(this->PointDataArraySelection, index);
187 return this->GetNumberOfSelectionArrays(this->LagrangianDataArraySelection);
196 return this->GetSelectionArrayStatus(this->LagrangianDataArraySelection, name);
200 this->SetSelectionArrayStatus(this->LagrangianDataArraySelection, name, status);
209 return this->GetSelectionArrayName(this->LagrangianDataArraySelection, index);
217 this->DisableAllSelectionArrays(this->LagrangianDataArraySelection);
221 this->EnableAllSelectionArrays(this->LagrangianDataArraySelection);
234 return this->GetNumberOfSelectionArrays(this->PatchDataArraySelection);
243 return this->GetSelectionArrayStatus(this->PatchDataArraySelection, name);
247 this->SetSelectionArrayStatus(this->PatchDataArraySelection, name, status);
256 return this->GetSelectionArrayName(this->PatchDataArraySelection, index);
314 vtkSetMacro(SkipZeroTime,
bool);
315 vtkGetMacro(SkipZeroTime,
bool);
316 vtkBooleanMacro(SkipZeroTime,
bool);
351 vtkGetMacro(Use64BitLabels,
bool);
352 vtkBooleanMacro(Use64BitLabels,
bool);
360 vtkGetMacro(CopyDataToCellZones,
bool);
361 vtkSetMacro(CopyDataToCellZones,
bool);
362 vtkBooleanMacro(CopyDataToCellZones,
bool);
372 vtkGetMacro(Use64BitFloats,
bool);
373 vtkBooleanMacro(Use64BitFloats,
bool);
378 this->Refresh =
true;
388 populateMeshIndicesFileChecksPerPrivateReader = {});
409#if VTK_OPENFOAM_TIME_PROFILING
410 long long GetRequestInformationTimeInMicroseconds()
const;
411 long long GetRequestDataTimeInMicroseconds()
const;
412 size_t GetRequestInformationBytes()
const;
413 size_t GetRequestDataBytes()
const;
414 virtual void InitializeRequestInformation();
415 virtual void InitializeRequestData();
416 virtual void PrintRequestInformation();
417 virtual void PrintRequestData();
467 std::vector<vtkSmartPointer<vtkObject>>
Readers;
487 vtkGetMacro(FileNameOld, std::string);
489 vtkGetMacro(SkipZeroTimeOld,
bool);
491 vtkGetMacro(ListTimeStepsByControlDictOld,
int);
493 vtkGetMacro(CreateCellToPointOld,
int);
495 vtkGetMacro(DecomposePolyhedraOld,
int);
497 vtkGetMacro(PositionsIsIn13FormatOld,
int);
499 vtkGetMacro(AddDimensionsToArrayNamesOld,
int);
501 vtkGetMacro(ReadZonesOld,
int);
503 vtkGetMacro(Use64BitLabelsOld,
bool);
505 vtkGetMacro(Use64BitFloatsOld,
bool);
534 void PrintTimes(std::ostream& os,
vtkIndent indent =
vtkIndent(),
bool full =
false)
const;
536 std::mutex ArraySelectionMutex;
537 std::mutex ProgressMutex;
539#if VTK_OPENFOAM_TIME_PROFILING
540 long long RequestInformationTimeInMicroseconds = 0;
541 size_t RequestDataBytes = 0;
542 long long RequestDataTimeInMicroseconds = 0;
543 size_t RequestInformationBytes = 0;
dynamic, self-adjusting array of char
create and manipulate ordered lists of objects
Store on/off settings for data arrays, etc.
dynamic, self-adjusting array of double
a simple class to control print indentation
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
void UpdateProgress(vtkOpenFOAMReaderPrivate *reader, double progress)
vtkMTimeType CellSelectionMTimeOld
std::vector< vtkSmartPointer< vtkUnsignedCharArray > > GetPopulateMeshIndicesFileChecksPerReader()
std::vector< vtkSmartPointer< vtkTable > > GetMarshalledMetadataPerReader()
void SetLagrangianArrayStatus(const char *name, int status)
~vtkOpenFOAMReader() override
vtkTypeBool AddDimensionsToArrayNames
void DisableAllPatchArrays()
Turn on/off all Patches including the Internal Mesh.
bool SetTimeValue(double)
int GetCellArrayStatus(const char *name)
Get/Set whether the cell array with the given name is to be read.
vtkSetFilePathMacro(FileName)
Set/Get the filename.
int CanReadFile(VTK_FILEPATH const char *)
Determine if the file can be read with this reader.
void SetPatchArrayStatus(const char *name, int status)
int PositionsIsIn13FormatOld
bool SequentialProcessing
vtkDataArraySelection * PointDataArraySelection
vtkMTimeType PatchSelectionMTimeOld
double GetTimeValue() const
void EnableAllCellArrays()
int ListTimeStepsByControlDictOld
vtkDataArraySelection * CellDataArraySelection
vtkTypeBool PositionsIsIn13Format
int GetNumberOfCellArrays()
Get the number of cell arrays available in the input.
void CreateCasePath(vtkStdString &, vtkStdString &)
void DisableAllPointArrays()
Turn on/off all point arrays.
void EnableAllPatchArrays()
const char * GetLagrangianArrayName(int index)
Get the name of the Lagrangian array with the given index in the input.
int GetNumberOfPointArrays()
Get the number of point arrays available in the input.
void EnableAllLagrangianArrays()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetUse64BitLabels(bool val)
If true, labels are expected to be 64-bit, rather than 32.
void CreateCharArrayFromString(vtkCharArray *, const char *, vtkStdString &)
vtkDataArraySelection * PatchDataArraySelection
virtual double ComputeProgress()
Compute the progress of the reader.
const char * GetCellArrayName(int index)
Get the name of the cell array with the given index in the input.
int GetLagrangianArrayStatus(const char *name)
Get/Set whether the Lagrangian array with the given name is to be read.
vtkTypeBool DecomposePolyhedra
void SetMarshalledMetadataPerReader(const std::vector< vtkSmartPointer< vtkTable > > &)
void SetParent(vtkOpenFOAMReader *parent)
vtkTypeBool ListTimeStepsByControlDict
static vtkOpenFOAMReader * New()
int GetNumberOfPatchArrays()
Get the number of Patches (including Internal Mesh) available in the input.
vtkStringArray * GetTimeNames()
vtkMTimeType PointSelectionMTimeOld
vtkGetFilePathMacro(FileName)
Set/Get the filename.
void DisableAllLagrangianArrays()
Turn on/off all Lagrangian arrays.
int AddDimensionsToArrayNamesOld
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkDataArraySelection * LagrangianDataArraySelection
void EnableAllPointArrays()
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int GetPatchArrayStatus(const char *name)
Get/Set whether the Patch with the given name is to be read.
int MakeMetaDataAtTimeStep(bool listNextTimeStep, bool skipComputingMetaData=false)
const char * GetPointArrayName(int index)
Get the name of the point array with the given index in the input.
int GetPointArrayStatus(const char *name)
Get/Set whether the point array with the given name is to be read.
const char * GetPatchArrayName(int index)
Get the name of the Patch with the given index in the input.
void DisableAllCellArrays()
Turn on/off all cell arrays.
void SetCellArrayStatus(const char *name, int status)
int MakeInformationVector(vtkInformationVector *, const vtkStdString &procDirName, vtkStringArray *timeNames=nullptr, vtkDoubleArray *timeValues=nullptr, const std::vector< vtkSmartPointer< vtkUnsignedCharArray > > &populateMeshIndicesFileChecksPerPrivateReader={})
virtual void SetUse64BitFloats(bool val)
If true, floats are expected to be 64-bit, rather than 32.
void SetTimeInformation(vtkInformationVector *, vtkDoubleArray *)
vtkTypeBool CreateCellToPoint
vtkMTimeType LagrangianSelectionMTimeOld
std::vector< vtkSmartPointer< vtkObject > > Readers
int DecomposePolyhedraOld
void SetPointArrayStatus(const char *name, int status)
vtkDoubleArray * GetTimeValues()
int GetNumberOfLagrangianArrays()
Get the number of Lagrangian arrays available in the input.
Hold a reference to a vtkObjectBase instance.
Wrapper around std::string to keep symbols short.
a vtkAbstractArray subclass for strings
A table, which contains similar-typed columns of data.
dynamic, self-adjusting array of unsigned char
vtkTypeUInt32 vtkMTimeType