40#ifndef vtkFLUENTReader_h
41#define vtkFLUENTReader_h
44#include "vtkIOGeometryModule.h"
49#include <unordered_map>
51VTK_ABI_NAMESPACE_BEGIN
91 vtkGetMacro(CacheData,
bool);
92 vtkSetMacro(CacheData,
bool);
93 vtkBooleanMacro(CacheData,
bool);
159 struct ScalarDataChunk;
160 struct VectorDataChunk;
235 "ReadZone is deprecated. It was an internal method an should not be used.")
236 virtual
void ReadZone();
238 "ParseCaseFile is deprecated. It was an internal method an should not be used.")
239 virtual
bool ParseCaseFile();
241 "ParseDataFile is deprecated. It was an internal method an should not be used.")
242 virtual
void ParseDataFile();
248 bool AreCellsEnabled();
252 void DisableCellsAndFaces(
std::vector<
unsigned int>& disabledZones);
256 void DisableZones(
std::vector<
unsigned int>& disabledZones,
bool& areAllZonesDisabled);
260 bool FillMultiblock(
std::vector<
unsigned int>& disabledZones,
261 std::vector<
size_t>& zoneIDToBlockIdx,
266 void FillMultiblockData(
std::vector<
unsigned int>& disabledZones,
267 std::vector<
size_t>& zoneIDToBlockIdx,
272 void GetArraysFromSubSections();
281 void ParseDataZone(
int index);
288 void ParseDataZones(
bool areCellsEnabled);
292 void ParseZone(
int index);
299 void ParseZones(
bool areCellsEnabled);
304 bool PreParseDataFile();
310 bool PreParseFluentFile();
315 bool ReadDataZoneSectionId(
unsigned int& zoneSectionId);
320 bool ReadZoneSectionId(
unsigned int& zoneSectionId);
325 bool ReadZoneSection(
int limit);
330 void UpdateZoneSectionSelection();
344 const
std::vector<
size_t>& zoneIDToBlockIdx,
std::vector<
unsigned int> disabledZones);
354 char* FileName =
nullptr;
356 bool CacheData = true;
358 istream* FluentFile =
nullptr;
359 istream* FluentDataFile =
nullptr;
360 std::
string FluentBuffer;
361 std::
string DataBuffer;
366 std::vector<Face> Faces;
367 std::vector<ZoneSection> ZoneSections;
368 std::map<
size_t,
std::
string> VariableNames;
369 std::vector<ScalarDataChunk> ScalarDataChunks;
370 std::vector<VectorDataChunk> VectorDataChunks;
371 std::vector<SubSection> SubSections;
373 std::vector<
std::
string> ScalarVariableNames;
374 std::vector<
int> ScalarSubSectionIds;
375 std::vector<
std::
string> VectorVariableNames;
376 std::vector<
int> VectorSubSectionIds;
379 int GridDimension = 0;
380 int NumberOfScalars = 0;
381 int NumberOfVectors = 0;
383 std::vector<Zone> Zones;
384 std::vector<Zone> DataZones;
385 std::vector<Cell> CurrentCells;
386 std::vector<Face> CurrentFaces;
387 std::vector<ZoneSection> CurrentZoneSections;
389 bool IsFilePreParsed = false;
a 3D cell defined by a set of convex points
Store on/off settings for data arrays, etc.
reads a dataset in Fluent file format
virtual void PopulateWedgeCell(size_t cellIdx)
virtual void GetPeriodicShadowFacesBinary()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void GetPartitionInfo()
virtual void PopulateQuadCell(size_t cellIdx)
~vtkFLUENTReader() override
virtual void GetData(int dataType)
virtual void GetSpeciesVariableNames()
virtual void GetFaceTreeAscii()
virtual void PopulatePolyhedronCell(size_t cellIdx)
virtual void GetNonconformalGridInterfaceFaceInformationBinary()
virtual void GetInterfaceFaceParentsAscii()
virtual void PopulatePyramidCell(size_t cellIdx)
virtual void GetNodesDoublePrecision()
virtual void CleanCells()
vtkGetFilePathMacro(FileName)
Specify the file name of the Fluent file to read.
virtual float GetDataBufferFloat(int ptr)
virtual bool OpenDataFile(const char *filename)
virtual void GetCellsBinary()
virtual void GetPeriodicShadowFacesAscii()
virtual double GetDataBufferDouble(int ptr)
virtual void PopulateCellNodes()
virtual void GetCellTreeBinary()
const char * GetCellArrayName(int index)
Get the name of the cell array with the given index in the input.
void SetDataByteOrder(int)
These methods should be used instead of the SwapBytes methods.
void SetDataByteOrderToLittleEndian()
These methods should be used instead of the SwapBytes methods.
virtual int GetDataBufferInt(int ptr)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkTypeBool GetSwapBytes()
Set/Get the byte swapping to explicitly swap the bytes of a file.
virtual void PopulateHexahedronCell(size_t cellIdx)
virtual bool ParallelCheckCell(int vtkNotUsed(i))
virtual int GetCaseBufferInt(int ptr)
virtual void GetInterfaceFaceParentsBinary()
vtkDataArraySelection * GetZoneSectionSelection()
Zone section selection, to determine which zone sections are loaded.
void SetCellArrayStatus(const char *name, int status)
Get/Set whether the cell array with the given name is to be read.
virtual void GetFaceTreeBinary()
virtual void GetCellsAscii()
int GetCellArrayStatus(const char *name)
Get/Set whether the cell array with the given name is to be read.
virtual void PopulateTetraCell(size_t cellIdx)
void EnableAllCellArrays()
Turn on/off all cell arrays.
virtual double GetCaseBufferDouble(int ptr)
virtual float GetCaseBufferFloat(int ptr)
virtual void GetFacesBinary()
virtual void GetNodesAscii()
virtual int GetCaseIndex()
virtual int GetCaseChunk()
virtual void GetNonconformalGridInterfaceFaceInformationAscii()
int GetDataByteOrder()
These methods should be used instead of the SwapBytes methods.
vtkSetFilePathMacro(FileName)
Specify the file name of the Fluent file to read.
void SetDataByteOrderToBigEndian()
These methods should be used instead of the SwapBytes methods.
const char * GetDataByteOrderAsString()
These methods should be used instead of the SwapBytes methods.
virtual void PopulateTriangleCell(size_t cellIdx)
virtual void GetLittleEndianFlag()
virtual int GetDataChunk()
virtual void GetNodesSinglePrecision()
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
virtual bool GetFacesAscii()
virtual void GetCellTreeAscii()
virtual bool OpenCaseFile(const char *filename)
virtual int GetDimension()
virtual void LoadVariableNames()
vtkMTimeType GetMTime() override
Get the last modified time of this filter.
int GetNumberOfCellArrays()
Get the number of cell arrays available in the input.
static vtkFLUENTReader * New()
virtual int GetDataIndex()
void DisableAllCellArrays()
Turn on/off all cell arrays.
a cell that represents a linear 3D hexahedron
a simple class to control print indentation
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Composite dataset that organizes datasets into blocks.
Allocate and hold a VTK object.
represent and manipulate 3D points
a 3D cell that represents a linear pyramid
a cell that represents a 2D quadrilateral
Hold a reference to a vtkObjectBase instance.
a 3D cell that represents a tetrahedron
a cell that represents a triangle
dataset represents arbitrary combinations of all possible cell types
a 3D cell that represents a linear wedge
@ Cells
A cell specified by degrees of freedom held in arrays.
#define VTK_DEPRECATED_IN_9_5_0(reason)
vtkTypeUInt32 vtkMTimeType