VTK
vtkExodusIIReaderPrivate.h
Go to the documentation of this file.
1 #ifndef vtkExodusIIReaderPrivate_h
2 #define vtkExodusIIReaderPrivate_h
3 
4 // Do not include this file directly. It is only for use
5 // from inside the ExodusII reader and its descendants.
6 
7 #include "vtkToolkits.h" // make sure VTK_USE_PARALLEL is properly set
8 #include "vtkExodusIICache.h"
9 #include "vtksys/RegularExpression.hxx"
10 
11 #include <map>
12 #include <vector>
13 
14 #include "vtk_exodusII.h"
15 #include "vtkIOExodusModule.h" // For export macro
18 class vtkTypeInt64Array;
19 
23 class VTKIOEXODUS_EXPORT vtkExodusIIReaderPrivate : public vtkObject
24 {
25 public:
26  static vtkExodusIIReaderPrivate* New();
27  void PrintData( ostream& os, vtkIndent indent );
29  //virtual void Modified();
30 
32  int OpenFile( const char* filename );
33 
35  int CloseFile();
36 
38  int RequestInformation();
39 
42  { return this->SIL; }
43 
45  int RequestData( vtkIdType timeStep, vtkMultiBlockDataSet* output );
46 
51  int SetUpEmptyGrid( vtkMultiBlockDataSet* output );
52 
64  void Reset();
65 
70  void ResetSettings();
71 
73  void ResetCache();
74 
76  void SetCacheSize(double size);
77 
79  vtkGetMacro(CacheSize, double);
80 
85  int GetNumberOfTimeSteps() { return (int) this->Times.size(); }
86 
87 
90  vtkGetMacro(SqueezePoints,int);
91 
94  void SetSqueezePoints( int sp );
95 
98  vtkBooleanMacro(SqueezePoints,int);
99 
101  int GetNumberOfNodes();
102 
107  int GetNumberOfObjectsOfType( int otype );
108 
119  int GetNumberOfObjectArraysOfType( int otype );
120 
125  const char* GetObjectName( int otype, int i );
126 
131  int GetObjectId( int otype, int i );
132 
139  int GetObjectSize( int otype, int i );
140 
145  int GetObjectStatus( int otype, int i );
146 
152  int GetUnsortedObjectStatus( int otype, int i );
153 
158  void SetObjectStatus( int otype, int i, int stat );
159 
165  void SetUnsortedObjectStatus( int otype, int i, int stat );
166 
171  const char* GetObjectArrayName( int otype, int i );
172 
177  int GetNumberOfObjectArrayComponents( int otype, int i );
178 
183  int GetObjectArrayStatus( int otype, int i );
184 
189  void SetObjectArrayStatus( int otype, int i, int stat );
190 
197  int GetNumberOfObjectAttributes( int objectType, int objectIndex );
198  const char* GetObjectAttributeName( int objectType,
199  int objectIndex,
200  int attributeIndex );
201  int GetObjectAttributeIndex( int objectType,
202  int objectIndex,
203  const char* attribName );
204  int GetObjectAttributeStatus( int objectType,
205  int objectIndex,
206  int attribIndex );
207  void SetObjectAttributeStatus( int objectType,
208  int objectIndex,
209  int attribIndex, int status );
210 
212  vtkGetMacro(GenerateObjectIdArray,vtkTypeBool);
213  vtkSetMacro(GenerateObjectIdArray,vtkTypeBool);
214  static const char* GetObjectIdArrayName() { return "ObjectId"; }
215 
216  vtkSetMacro(GenerateGlobalElementIdArray,vtkTypeBool);
217  vtkGetMacro(GenerateGlobalElementIdArray,vtkTypeBool);
218  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
219 
220  vtkSetMacro(GenerateGlobalNodeIdArray,vtkTypeBool);
221  vtkGetMacro(GenerateGlobalNodeIdArray,vtkTypeBool);
222  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
223 
224  vtkSetMacro(GenerateImplicitElementIdArray,vtkTypeBool);
225  vtkGetMacro(GenerateImplicitElementIdArray,vtkTypeBool);
226  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
227 
228  vtkSetMacro(GenerateImplicitNodeIdArray,vtkTypeBool);
229  vtkGetMacro(GenerateImplicitNodeIdArray,vtkTypeBool);
230  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
231 
235  vtkSetMacro(GenerateFileIdArray,vtkTypeBool);
236  vtkGetMacro(GenerateFileIdArray,vtkTypeBool);
237  static const char* GetFileIdArrayName() { return "FileId"; }
238 
240  vtkSetMacro(FileId,int);
241  vtkGetMacro(FileId,int);
242 
243  static const char *GetGlobalVariableValuesArrayName()
244  { return "GlobalVariableValues"; }
245  static const char *GetGlobalVariableNamesArrayName()
246  { return "GlobalVariableNames"; }
247 
248  virtual void SetApplyDisplacements( vtkTypeBool d );
249  vtkGetMacro(ApplyDisplacements,vtkTypeBool);
250 
251  virtual void SetDisplacementMagnitude( double s );
252  vtkGetMacro(DisplacementMagnitude,double);
253 
254  vtkSetMacro(HasModeShapes,int);
255  vtkGetMacro(HasModeShapes,int);
256 
257  vtkSetMacro(ModeShapeTime,double);
258  vtkGetMacro(ModeShapeTime,double);
259 
260  vtkSetMacro(AnimateModeShapes, int);
261  vtkGetMacro(AnimateModeShapes, int);
262 
263  vtkSetMacro(IgnoreFileTime, bool);
264  vtkGetMacro(IgnoreFileTime, bool);
265 
266  vtkDataArray* FindDisplacementVectors( int timeStep );
267 
268  const struct ex_init_params* GetModelParams() const
269  { return &this->ModelParameters; }
270 
272  struct VTKIOEXODUS_EXPORT ArrayInfoType {
283  int GlomType;
288  int Source;
290  int Status;
293  std::vector<vtkStdString> OriginalNames;
296  std::vector<int> OriginalIndices;
305  std::vector<int> ObjectTruth;
307  void Reset();
308  };
309 
311  struct VTKIOEXODUS_EXPORT ObjectInfoType {
313  int Size;
315  int Status;
317  int Id;
320  };
321 
323  struct VTKIOEXODUS_EXPORT MapInfoType : public ObjectInfoType {
324  };
325 
328  struct VTKIOEXODUS_EXPORT BlockSetInfoType : public ObjectInfoType {
335  std::map<vtkIdType,vtkIdType> PointMap;
340  std::map<vtkIdType,vtkIdType> ReversePointMap;
347 
348  BlockSetInfoType(){this->CachedConnectivity=nullptr;}
349  BlockSetInfoType(const BlockSetInfoType& block);
350  ~BlockSetInfoType();
351  BlockSetInfoType& operator=(const BlockSetInfoType& block);
352  };
353 
355  struct VTKIOEXODUS_EXPORT BlockInfoType : public BlockSetInfoType {
356  vtkStdString OriginalName; // useful to reset the name if XML metadata is invalid.
358  // number of boundaries per entry
359  // The index is the dimensionality of the entry. 0=node, 1=edge, 2=face
360  int BdsPerEntry[3];
362  std::vector<vtkStdString> AttributeNames;
363  std::vector<int> AttributeStatus;
364  // VTK cell type (a function of TypeName and BdsPerEntry...)
365  int CellType;
366  // Number of points per cell as used by VTK
367  // -- not what's in the file (i.e., BdsPerEntry[0] >= PointsPerCell)
369  };
370 
372  struct PartInfoType : public ObjectInfoType {
373  std::vector<int> BlockIndices;
374  };
376  std::vector<int> BlockIndices;
377  };
379  std::vector<int> BlockIndices;
380  };
381 
383  struct SetInfoType : public BlockSetInfoType {
384  int DistFact; // Number of distribution factors
385  // (for the entire block, not per array or entry)
386  };
387 
390  enum GlomTypes {
391  Scalar=0,
392  Vector2=1,
393  Vector3=2,
394  SymmetricTensor=3,
395  // (order xx, yy, zz, xy, yz, zx)
396  IntegrationPoint=4
397  };
398 
401  Result=0,
402  // (that vary over time)
403  Attribute=1,
404  // (constants over time)
405  Map=2,
406  Generated=3
407  };
408 
411 
412  friend class vtkExodusIIReader;
413  friend class vtkPExodusIIReader;
414 
415  virtual void SetParser( vtkExodusIIReaderParser* );
416  vtkGetObjectMacro(Parser,vtkExodusIIReaderParser);
417 
418  // BUG #15632: This method allows vtkPExodusIIReader to pass time information
419  // from one spatial file to another and avoiding have to read it for each of
420  // the files.
421  void SetTimesOverrides(const std::vector<double>& times)
422  {
423  this->Times = times;
424  this->SkipUpdateTimeInformation = true;
425  }
426 
427  // Because Parts, Materials, and assemblies are not stored as arrays,
428  // but rather as maps to the element blocks they make up,
429  // we cannot use the Get|SetObject__() methods directly.
430 
431  int GetNumberOfParts();
432  const char* GetPartName(int idx);
433  const char* GetPartBlockInfo(int idx);
434  int GetPartStatus(int idx);
435  int GetPartStatus(const vtkStdString& name);
436  void SetPartStatus(int idx, int on);
437  void SetPartStatus(const vtkStdString& name, int flag);
438 
439  int GetNumberOfMaterials();
440  const char* GetMaterialName(int idx);
441  int GetMaterialStatus(int idx);
442  int GetMaterialStatus(const vtkStdString& name);
443  void SetMaterialStatus(int idx, int on);
444  void SetMaterialStatus(const vtkStdString& name, int flag);
445 
446  int GetNumberOfAssemblies();
447  const char* GetAssemblyName(int idx);
448  int GetAssemblyStatus(int idx);
449  int GetAssemblyStatus(const vtkStdString& name);
450  void SetAssemblyStatus(int idx, int on);
451  void SetAssemblyStatus(const vtkStdString& name, int flag);
452 
454  {this->FastPathObjectType = type;};
455  void SetFastPathObjectId(vtkIdType id){this->FastPathObjectId = id;};
456  vtkSetStringMacro(FastPathIdType);
457 
458  bool IsXMLMetadataValid();
459 
467  void GetInitialObjectStatus( int otype, ObjectInfoType *info );
468 
476  void GetInitialObjectArrayStatus( int otype, ArrayInfoType *info );
477 
484  void SetInitialObjectStatus( int otype, const char *name, int stat );
485 
491  void SetInitialObjectArrayStatus( int otype, const char *name, int stat );
492 
493  int UpdateTimeInformation();
494 
496 
497 protected:
499  ~vtkExodusIIReaderPrivate() override;
500 
502  void BuildSIL();
503 
506  int VerifyIntegrationPointGlom( int nn,
507  char** np,
508  vtksys::RegularExpression& re,
510  vtkStdString& ele );
511 
513  void GlomArrayNames( int i,
514  int num_obj,
515  int num_vars,
516  char** var_names,
517  int* truth_tab );
518 
521 
538  int otyp, int oidx, int conntypidx, BlockSetInfoType* bsinfop,
539  vtkUnstructuredGrid* output );
546  int AssembleOutputPoints( vtkIdType timeStep,
547  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
551  int AssembleOutputPointArrays( vtkIdType timeStep,
552  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
556  int AssembleOutputCellArrays( vtkIdType timeStep,
557  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
563  int otyp, int oidx, vtkUnstructuredGrid* output );
566  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
573  int AssembleOutputPointMaps( vtkIdType timeStep,
574  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
575  int AssembleOutputCellMaps( vtkIdType timeStep,
576  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
580 
598  vtkIdType fileLocalFaceId,
599  vtkIdType*& facePtIds);
600 
603 
606  BlockInfoType* binfo,
607  vtkIntArray* facesPerCell,
608  vtkIdTypeArray* exoCellConn);
609 
611  void InsertBlockCells(
612  int otyp, int obj, int conn_type, int timeStep, BlockInfoType* binfop );
613 
615  void InsertSetCells(
616  int otyp, int obj, int conn_type, int timeStep, SetInfoType* sinfop );
617 
619  void AddPointArray(
620  vtkDataArray* src, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
621 
623  void InsertSetNodeCopies(
624  vtkIdTypeArray* refs, int otyp, int obj, SetInfoType* sinfo );
625 
627  void InsertSetCellCopies(
628  vtkIdTypeArray* refs, int otyp, int obj, SetInfoType* sinfo );
629 
631  void InsertSetSides(
632  vtkIdTypeArray* refs, int otyp, int obj, SetInfoType* sinfo );
633 
640 
645  int GetConnTypeIndexFromConnType( int ctyp );
646 
651  int GetObjectTypeIndexFromObjectType( int otyp );
652 
658  int GetNumberOfObjectsAtTypeIndex( int typeIndex );
659 
667  ObjectInfoType* GetObjectInfo( int typeIndex, int objectIndex );
668 
675  ObjectInfoType* GetSortedObjectInfo( int objectType, int objectIndex );
676 
683  ObjectInfoType* GetUnsortedObjectInfo( int objectType, int objectIndex );
684 
689  int GetBlockIndexFromFileGlobalId( int otyp, int refId );
690 
695  BlockInfoType* GetBlockFromFileGlobalId( int otyp, int refId );
696 
700  vtkIdType GetSqueezePointId( BlockSetInfoType* bsinfop, int i );
701 
703  void DetermineVtkCellType( BlockInfoType& binfo );
704 
708  ArrayInfoType* FindArrayInfoByName( int otyp, const char* name );
709 
713  int IsObjectTypeBlock( int otyp );
714  int IsObjectTypeSet( int otyp );
715  int IsObjectTypeMap( int otyp );
716 
720  int GetObjectTypeFromMapType( int mtyp );
721  int GetMapTypeFromObjectType( int otyp );
722  int GetTemporalTypeFromObjectType( int otyp );
723 
727  int GetSetTypeFromSetConnType( int sctyp );
728 
732  int GetBlockConnTypeFromBlockType( int btyp );
733 
739  void RemoveBeginningAndTrailingSpaces( int len, char **names, int maxNameLength );
740 
743 
747  std::map<int,std::vector<BlockInfoType> > BlockInfo;
751  std::map<int,std::vector<SetInfoType> > SetInfo;
757  std::map<int,std::vector<MapInfoType> > MapInfo;
758 
759  std::vector<PartInfoType> PartInfo;
760  std::vector<MaterialInfoType> MaterialInfo;
761  std::vector<AssemblyInfoType> AssemblyInfo;
762 
767  std::map<int,std::vector<int> > SortedObjectIndices;
769  // defined on that type.
770  std::map<int,std::vector<ArrayInfoType> > ArrayInfo;
771 
776  std::map<int,std::vector<ArrayInfoType> > InitialArrayInfo;
777 
782  std::map<int,std::vector<ObjectInfoType> > InitialObjectInfo;
783 
787 
792 
794  int Exoid;
795 
797  struct ex_init_params ModelParameters;
798 
800  std::vector<double> Times;
802 
807 
815 
819  int FileId;
820 
823  //
825  double CacheSize;
826 
831 
833 
846 
851 
853 
862  std::map<int, std::vector< std::vector< vtkIdType > > > PolyhedralFaceConnArrays;
863 
867 
869 private:
871  void operator = ( const vtkExodusIIReaderPrivate& ) = delete;
872 };
873 
874 #endif // vtkExodusIIReaderPrivate_h
875 // VTK-HeaderTest-Exclude: vtkExodusIIReaderPrivate.h
vtkExodusIIReaderParser
internal parser used by vtkExodusIIReader.
Definition: vtkExodusIIReaderParser.h:40
vtkExodusIIReaderPrivate::BlockSetInfoType::operator=
BlockSetInfoType & operator=(const BlockSetInfoType &block)
vtkExodusIIReaderPrivate::BlockSetInfoType::CachedConnectivity
vtkUnstructuredGrid * CachedConnectivity
Cached cell connectivity arrays for mesh.
Definition: vtkExodusIIReaderPrivate.h:346
vtkExodusIIReaderPrivate::GenerateGlobalNodeIdArray
vtkTypeBool GenerateGlobalNodeIdArray
Definition: vtkExodusIIReaderPrivate.h:812
vtkExodusIIReaderPrivate::PrepareGeneratedArrayInfo
void PrepareGeneratedArrayInfo()
Add generated array information to array info lists.
vtkExodusIICache.h
vtkExodusIIReaderPrivate::AssembleOutputGlobalArrays
int AssembleOutputGlobalArrays(vtkIdType timeStep, int otyp, int oidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add mesh-global field data such as QA records to the output mesh.
vtkExodusIIReaderPrivate::AnimateModeShapes
vtkTypeBool AnimateModeShapes
Definition: vtkExodusIIReaderPrivate.h:830
vtkExodusIIReaderPrivate::MaterialInfoType::BlockIndices
std::vector< int > BlockIndices
Definition: vtkExodusIIReaderPrivate.h:379
vtkExodusIIReaderPrivate::GetImplicitElementIdArrayName
static const char * GetImplicitElementIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:226
vtkExodusIIReaderPrivate::FastPathObjectType
vtkExodusIIReader::ObjectType FastPathObjectType
Definition: vtkExodusIIReaderPrivate.h:864
vtkExodusIIReaderPrivate::UpdateTimeInformation
int UpdateTimeInformation()
vtkExodusIIReaderPrivate::SIL
vtkMutableDirectedGraph * SIL
Definition: vtkExodusIIReaderPrivate.h:868
vtkMutableDirectedGraph
An editable directed graph.
Definition: vtkMutableDirectedGraph.h:51
vtkExodusIIReaderPrivate::InitialArrayInfo
std::map< int, std::vector< ArrayInfoType > > InitialArrayInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of arrays defined on that type.
Definition: vtkExodusIIReaderPrivate.h:776
vtkExodusIIReaderPrivate::BlockSetInfoType::PointMap
std::map< vtkIdType, vtkIdType > PointMap
A map from nodal IDs in an Exodus file to nodal IDs in the output mesh.
Definition: vtkExodusIIReaderPrivate.h:335
vtkExodusIIReaderPrivate::InsertBlockPolyhedra
void InsertBlockPolyhedra(BlockInfoType *binfo, vtkIntArray *facesPerCell, vtkIdTypeArray *exoCellConn)
Insert polyhedral cells (called from InsertBlockCells when a block is polyhedral).
vtkExodusIIReaderPrivate::MapInfo
std::map< int, std::vector< MapInfoType > > MapInfo
Maps a map type (EX_ELEM_MAP, ..., EX_NODE_MAP) to a list of maps of that type.
Definition: vtkExodusIIReaderPrivate.h:757
vtkExodusIIReaderPrivate::ModeShapeTime
double ModeShapeTime
The time value.
Definition: vtkExodusIIReaderPrivate.h:806
vtkExodusIIReaderPrivate::GlomTypes
GlomTypes
Tags to indicate how single-component Exodus arrays are glommed (aggregated) into multi-component VTK...
Definition: vtkExodusIIReaderPrivate.h:390
vtkExodusIIReaderPrivate::Cache
vtkExodusIICache * Cache
A least-recently-used cache to hold raw arrays.
Definition: vtkExodusIIReaderPrivate.h:822
vtkExodusIIReaderPrivate::BlockSetInfoType::BlockSetInfoType
BlockSetInfoType()
Definition: vtkExodusIIReaderPrivate.h:348
vtkExodusIIReaderPrivate::AssembleOutputProceduralArrays
int AssembleOutputProceduralArrays(vtkIdType timeStep, int otyp, int oidx, vtkUnstructuredGrid *output)
Add procedurally generated arrays to an output mesh.
vtkExodusIIReaderPrivate::InsertSetSides
void InsertSetSides(vtkIdTypeArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a side set.
vtkExodusIIReaderPrivate::GetPartStatus
int GetPartStatus(int idx)
vtkExodusIIReaderPrivate::FastPathIdType
char * FastPathIdType
Definition: vtkExodusIIReaderPrivate.h:866
vtkX3D::type
Definition: vtkX3D.h:516
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkExodusIIReaderPrivate::AssembleOutputPointMaps
int AssembleOutputPointMaps(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add maps to an output mesh.
vtkExodusIIReaderPrivate::ArrayInfoType::OriginalNames
std::vector< vtkStdString > OriginalNames
The name of each component of the array as defined by the Exodus file.
Definition: vtkExodusIIReaderPrivate.h:293
vtkExodusIIReaderPrivate::ProducedFastPathOutput
bool ProducedFastPathOutput
Definition: vtkExodusIIReaderPrivate.h:495
vtkExodusIIReaderPrivate::ArrayInfoType::StorageType
int StorageType
Storage type of array (a type that can be passed to vtkDataArray::Create())
Definition: vtkExodusIIReaderPrivate.h:286
vtkExodusIIReaderPrivate::GetMaterialStatus
int GetMaterialStatus(int idx)
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkExodusIIReaderPrivate::SetPartStatus
void SetPartStatus(int idx, int on)
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkExodusIIReaderPrivate::SetInfo
std::map< int, std::vector< SetInfoType > > SetInfo
Maps a set type (EX_ELEM_SET, ..., EX_NODE_SET) to a list of sets of that type.
Definition: vtkExodusIIReaderPrivate.h:751
vtkExodusIIReaderPrivate::SetInfoType::DistFact
int DistFact
Definition: vtkExodusIIReaderPrivate.h:384
vtkExodusIIReaderPrivate::SetFastPathObjectId
void SetFastPathObjectId(vtkIdType id)
Definition: vtkExodusIIReaderPrivate.h:455
vtkExodusIIReaderPrivate::SetTimesOverrides
void SetTimesOverrides(const std::vector< double > &times)
Definition: vtkExodusIIReaderPrivate.h:421
vtkExodusIIReaderPrivate::AppWordSize
int AppWordSize
These aren't the variables you're looking for.
Definition: vtkExodusIIReaderPrivate.h:785
vtkExodusIIReaderPrivate::SortedObjectIndices
std::map< int, std::vector< int > > SortedObjectIndices
Maps an object type to vector of indices that reorder objects of that type by their IDs.
Definition: vtkExodusIIReaderPrivate.h:767
vtkExodusIIReaderPrivate::GetObjectTypeIndexFromObjectType
int GetObjectTypeIndexFromObjectType(int otyp)
Return the index of an object type (in a private list of all object types).
vtkExodusIIReaderPrivate::SetInitialObjectStatus
void SetInitialObjectStatus(int otype, const char *name, int stat)
For a given object type, creates and stores an ObjectInfoType object using the given name and status.
vtkExodusIIReader
Read exodus 2 files .ex2.
Definition: vtkExodusIIReader.h:56
vtkExodusIIReaderPrivate::ObjectInfoType::Id
int Id
User-assigned identification number.
Definition: vtkExodusIIReaderPrivate.h:317
vtkExodusIIReaderPrivate::Parent
vtkExodusIIReader * Parent
Pointer to owning reader...
Definition: vtkExodusIIReaderPrivate.h:850
vtkExodusIIReaderPrivate::Times
std::vector< double > Times
A list of time steps for which results variables are stored.
Definition: vtkExodusIIReaderPrivate.h:800
vtkExodusIIReaderPrivate::ClearConnectivityCaches
void ClearConnectivityCaches()
Delete any cached connectivity information (for all blocks and sets)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:59
vtkExodusIIReaderPrivate::Parser
vtkExodusIIReaderParser * Parser
Definition: vtkExodusIIReaderPrivate.h:852
vtkExodusIIReaderPrivate::ArrayInfoType::Status
int Status
Whether or not the array should be loaded by RequestData.
Definition: vtkExodusIIReaderPrivate.h:290
vtkExodusIIReaderPrivate::IsObjectTypeBlock
int IsObjectTypeBlock(int otyp)
Does the specified object type match? Avoid using these...
vtkExodusIIReaderPrivate::ObjectInfoType
A struct to hold information about Exodus objects (blocks, sets, maps)
Definition: vtkExodusIIReaderPrivate.h:311
vtkExodusIIReaderPrivate::GenerateObjectIdArray
vtkTypeBool GenerateObjectIdArray
Definition: vtkExodusIIReaderPrivate.h:808
vtkExodusIIReaderPrivate::IsObjectTypeSet
int IsObjectTypeSet(int otyp)
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
vtkExodusIIReaderPrivate::BlockInfoType::CellType
int CellType
Definition: vtkExodusIIReaderPrivate.h:365
vtkExodusIIReaderPrivate::SetAssemblyStatus
void SetAssemblyStatus(int idx, int on)
vtkExodusIIReaderPrivate::GetMapTypeFromObjectType
int GetMapTypeFromObjectType(int otyp)
vtkExodusIIReaderPrivate::BlockInfoType
A struct to hold information about Exodus blocks.
Definition: vtkExodusIIReaderPrivate.h:355
vtkExodusIIReaderPrivate::FindArrayInfoByName
ArrayInfoType * FindArrayInfoByName(int otyp, const char *name)
Find an ArrayInfo object for a specific object type using the name as a key.
vtkMultiBlockDataSet
Composite dataset that organizes datasets into blocks.
Definition: vtkMultiBlockDataSet.h:51
vtkExodusIIReaderPrivate::GetSortedObjectInfo
ObjectInfoType * GetSortedObjectInfo(int objectType, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index, but using indices sorted by objec...
vtkExodusIIReaderPrivate::FileId
int FileId
Defaults to 0.
Definition: vtkExodusIIReaderPrivate.h:819
vtkExodusIIReaderPrivate::GetGlobalVariableNamesArrayName
static const char * GetGlobalVariableNamesArrayName()
Definition: vtkExodusIIReaderPrivate.h:245
vtkExodusIIReaderPrivate::SetInfoType
A struct to hold information about Exodus sets.
Definition: vtkExodusIIReaderPrivate.h:383
vtkExodusIIReader::ObjectType
ObjectType
Definition: vtkExodusIIReader.h:190
vtkExodusIIReaderPrivate::GetBlockConnTypeFromBlockType
int GetBlockConnTypeFromBlockType(int btyp)
Given a block type (EDGE_BLOCK, ...), return the associated block connectivity type (EDGE_BLOCK_CONN,...
vtkExodusIIReaderPrivate::IgnoreFileTime
bool IgnoreFileTime
Definition: vtkExodusIIReaderPrivate.h:832
vtkExodusIIReaderPrivate::ArrayInfoType::OriginalIndices
std::vector< int > OriginalIndices
The index of each component of the array as ordered by the Exodus file.
Definition: vtkExodusIIReaderPrivate.h:296
vtkExodusIIReaderPrivate::InsertBlockCells
void InsertBlockCells(int otyp, int obj, int conn_type, int timeStep, BlockInfoType *binfop)
Insert cells from a specified block into a mesh.
vtkExodusIIReaderPrivate::IsXMLMetadataValid
bool IsXMLMetadataValid()
vtkExodusIIReaderPrivate::GetGlobalElementIdArrayName
static const char * GetGlobalElementIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:218
vtkX3D::on
Definition: vtkX3D.h:439
vtkPExodusIIReader
Read Exodus II files (.exii)
Definition: vtkPExodusIIReader.h:53
vtkExodusIIReaderPrivate::BlockInfoType::AttributeStatus
std::vector< int > AttributeStatus
Definition: vtkExodusIIReaderPrivate.h:363
vtkExodusIIReaderPrivate::GetConnTypeIndexFromConnType
int GetConnTypeIndexFromConnType(int ctyp)
Return the index of an object type (in a private list of all object types).
vtkExodusIIReaderPrivate::GetObjectTypeFromMapType
int GetObjectTypeFromMapType(int mtyp)
Given a map type (NODE_MAP, EDGE_MAP, ...) return the associated object type (NODAL,...
vtkExodusIIReaderPrivate::MaterialInfo
std::vector< MaterialInfoType > MaterialInfo
Definition: vtkExodusIIReaderPrivate.h:760
vtkExodusIIReaderPrivate::GetModelParams
const struct ex_init_params * GetModelParams() const
Definition: vtkExodusIIReaderPrivate.h:268
vtkExodusIIReaderPrivate::InitialObjectInfo
std::map< int, std::vector< ObjectInfoType > > InitialObjectInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of objects defined on that type.
Definition: vtkExodusIIReaderPrivate.h:782
vtkExodusIIReaderPrivate::GetNumberOfMaterials
int GetNumberOfMaterials()
vtkExodusIIReaderPrivate::GetInitialObjectArrayStatus
void GetInitialObjectArrayStatus(int otype, ArrayInfoType *info)
For a given array type, looks for an object in the collection of initial objects of the same name,...
vtkExodusIIReaderPrivate::SetFastPathObjectType
void SetFastPathObjectType(vtkExodusIIReader::ObjectType type)
Definition: vtkExodusIIReaderPrivate.h:453
vtkExodusIIReaderPrivate::PartInfoType
A struct to hold information about Exodus blocks.
Definition: vtkExodusIIReaderPrivate.h:372
vtkExodusIIReaderPrivate::PolyhedralFaceConnArrays
std::map< int, std::vector< std::vector< vtkIdType > > > PolyhedralFaceConnArrays
Face connectivity for polyhedra.
Definition: vtkExodusIIReaderPrivate.h:862
vtkExodusIIReaderPrivate::GetPartBlockInfo
const char * GetPartBlockInfo(int idx)
vtkExodusIIReaderPrivate::GetCacheOrRead
vtkDataArray * GetCacheOrRead(vtkExodusIICacheKey)
Return an array for the specified cache key.
vtkExodusIIReaderPrivate::AssembleOutputPointArrays
int AssembleOutputPointArrays(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add the requested arrays to the output grid's point data.
vtkExodusIIReaderPrivate::GetTemporalTypeFromObjectType
int GetTemporalTypeFromObjectType(int otyp)
vtkExodusIIReaderPrivate::AssembleOutputCellArrays
int AssembleOutputCellArrays(vtkIdType timeStep, int otyp, int oidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add the requested arrays to the output grid's cell data.
vtkExodusIIReaderPrivate::AssembleArraysOverTime
int AssembleArraysOverTime(vtkMultiBlockDataSet *output)
Add fast-path time-varying data to field data of an output block or set.
vtkExodusIIReaderPrivate::InsertSetCellCopies
void InsertSetCellCopies(vtkIdTypeArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by an edge, face, or element set.
vtkExodusIICacheKey
Definition: vtkExodusIICache.h:32
vtkExodusIIReaderPrivate::ArrayInfo
std::map< int, std::vector< ArrayInfoType > > ArrayInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of arrays.
Definition: vtkExodusIIReaderPrivate.h:770
vtkExodusIIReaderPrivate::SqueezePoints
int SqueezePoints
Should the reader output only points used by elements in the output mesh, or all the points.
Definition: vtkExodusIIReaderPrivate.h:845
vtkExodusIIReaderPrivate::AssembleOutputConnectivity
int AssembleOutputConnectivity(vtkIdType timeStep, int otyp, int oidx, int conntypidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Read connectivity information and populate an unstructured grid with cells corresponding to a single ...
vtkExodusIIReaderPrivate::GetBlockIndexFromFileGlobalId
int GetBlockIndexFromFileGlobalId(int otyp, int refId)
Get the index of the block containing the entity referenced by the specified file-global ID.
vtkExodusIIReaderPrivate::GetAssemblyName
const char * GetAssemblyName(int idx)
vtkExodusIIReaderPrivate::DisplacementMagnitude
float DisplacementMagnitude
Definition: vtkExodusIIReaderPrivate.h:828
vtkExodusIIReaderPrivate::GetBlockFromFileGlobalId
BlockInfoType * GetBlockFromFileGlobalId(int otyp, int refId)
Get the block containing the entity referenced by the specified file-global ID.
vtkExodusIIReaderPrivate::ExodusVersion
float ExodusVersion
The version of Exodus that wrote the currently open file (or a negative number otherwise).
Definition: vtkExodusIIReaderPrivate.h:791
vtkExodusIIReaderPrivate::HasModeShapes
vtkTypeBool HasModeShapes
Definition: vtkExodusIIReaderPrivate.h:829
vtkExodusIIReaderPrivate::MaterialInfoType
Definition: vtkExodusIIReaderPrivate.h:378
vtkExodusIIReaderPrivate::FastPathObjectId
vtkIdType FastPathObjectId
Definition: vtkExodusIIReaderPrivate.h:865
vtkExodusIIReaderPrivate::AssembleOutputCellMaps
int AssembleOutputCellMaps(vtkIdType timeStep, int otyp, int oidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
vtkExodusIIReaderPrivate::BlockInfo
std::map< int, std::vector< BlockInfoType > > BlockInfo
Maps a block type (EX_ELEM_BLOCK, EX_FACE_BLOCK, ...) to a list of blocks of that type.
Definition: vtkExodusIIReaderPrivate.h:747
vtkExodusIIReaderPrivate::DiskWordSize
int DiskWordSize
Definition: vtkExodusIIReaderPrivate.h:786
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkExodusIIReaderPrivate::InsertSetNodeCopies
void InsertSetNodeCopies(vtkIdTypeArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a node set.
vtkExodusIIReaderPrivate::Exoid
int Exoid
The handle of the currently open file.
Definition: vtkExodusIIReaderPrivate.h:794
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:45
vtkX3D::field
Definition: vtkX3D.h:177
vtkExodusIIReaderPrivate::ObjectInfoType::Status
int Status
Should the reader load this block?
Definition: vtkExodusIIReaderPrivate.h:315
vtkExodusIIReaderPrivate::BlockInfoType::AttributesPerEntry
vtkIdType AttributesPerEntry
Definition: vtkExodusIIReaderPrivate.h:361
vtkX3D::size
Definition: vtkX3D.h:253
vtkExodusIIReaderPrivate::GetObjectInfo
ObjectInfoType * GetObjectInfo(int typeIndex, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index.
vtkExodusIIReaderPrivate::RemoveBeginningAndTrailingSpaces
void RemoveBeginningAndTrailingSpaces(int len, char **names, int maxNameLength)
Function to trim space from names retrieved with ex_get_var_names.
vtkExodusIIReaderPrivate
This class holds metadata for an Exodus file.
Definition: vtkExodusIIReaderPrivate.h:23
vtkExodusIIReaderPrivate::GlomArrayNames
void GlomArrayNames(int i, int num_obj, int num_vars, char **var_names, int *truth_tab)
Aggregate Exodus array names into VTK arrays with multiple components.
vtkExodusIIReaderPrivate::GetPolyhedronFaceConnectivity
vtkIdType GetPolyhedronFaceConnectivity(vtkIdType fileLocalFaceId, vtkIdType *&facePtIds)
Fetch the face-connectivity for one face of one polyhedron.
vtkExodusIIReaderPrivate::AssemblyInfoType
Definition: vtkExodusIIReaderPrivate.h:375
vtkExodusIIReaderPrivate::DetermineVtkCellType
void DetermineVtkCellType(BlockInfoType &binfo)
Determine the VTK cell type for a given edge/face/element block.
vtkExodusIIReaderPrivate::InsertSetCells
void InsertSetCells(int otyp, int obj, int conn_type, int timeStep, SetInfoType *sinfop)
Insert cells from a specified set into a mesh.
vtkExodusIIReaderPrivate::ArraySourceTypes
ArraySourceTypes
Tags to indicate the source of values for an array.
Definition: vtkExodusIIReaderPrivate.h:400
vtkExodusIIReaderPrivate::IsObjectTypeMap
int IsObjectTypeMap(int otyp)
vtkExodusIIReaderPrivate::GetInitialObjectStatus
void GetInitialObjectStatus(int otype, ObjectInfoType *info)
For a given object type, looks for an object in the collection of initial objects of the same name,...
vtkExodusIIReaderPrivate::PartInfoType::BlockIndices
std::vector< int > BlockIndices
Definition: vtkExodusIIReaderPrivate.h:373
vtkExodusIIReaderPrivate::GetNumberOfParts
int GetNumberOfParts()
vtkX3D::name
Definition: vtkX3D.h:219
vtkExodusIIReaderPrivate::GenerateImplicitNodeIdArray
vtkTypeBool GenerateImplicitNodeIdArray
Definition: vtkExodusIIReaderPrivate.h:814
vtkExodusIIReaderPrivate::SetMaterialStatus
void SetMaterialStatus(int idx, int on)
vtkExodusIIReaderPrivate::ArrayInfoType::GlomType
int GlomType
The type of "glomming" performed.
Definition: vtkExodusIIReaderPrivate.h:283
vtkX3D::info
Definition: vtkX3D.h:376
vtkExodusIIReaderPrivate::GetPartName
const char * GetPartName(int idx)
vtkExodusIIReaderPrivate::ArrayInfoType
A struct to hold information about time-varying arrays.
Definition: vtkExodusIIReaderPrivate.h:272
vtkExodusIIReaderPrivate::GetGlobalNodeIdArrayName
static const char * GetGlobalNodeIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:222
vtkExodusIIReaderPrivate::GetNumberOfAssemblies
int GetNumberOfAssemblies()
vtkExodusIIReaderPrivate::BlockSetInfoType
A struct to hold information about Exodus blocks or sets (they have some members in common)
Definition: vtkExodusIIReaderPrivate.h:328
vtkExodusIIReaderPrivate::GetSqueezePointId
vtkIdType GetSqueezePointId(BlockSetInfoType *bsinfop, int i)
Find or create a new SqueezePoint ID (unique sequential list of points referenced by cells in blocks/...
vtkExodusIIReaderPrivate::GenerateGlobalIdArray
vtkTypeBool GenerateGlobalIdArray
Definition: vtkExodusIIReaderPrivate.h:809
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:41
vtkExodusIIReaderPrivate::ApplyDisplacements
vtkTypeBool ApplyDisplacements
Definition: vtkExodusIIReaderPrivate.h:827
vtkExodusIIReaderPrivate::ArrayInfoType::Components
int Components
The number of components in the array.
Definition: vtkExodusIIReaderPrivate.h:276
vtkExodusIIReaderPrivate::VerifyIntegrationPointGlom
int VerifyIntegrationPointGlom(int nn, char **np, vtksys::RegularExpression &re, vtkStdString &field, vtkStdString &ele)
Returns true when order and text of names are consistent with integration points.
vtkExodusIIReaderPrivate::CacheSize
double CacheSize
The size of the cache in MiB.
Definition: vtkExodusIIReaderPrivate.h:825
vtkExodusIIReaderPrivate::BlockInfoType::PointsPerCell
int PointsPerCell
Definition: vtkExodusIIReaderPrivate.h:368
vtkExodusIIReaderPrivate::BlockSetInfoType::NextSqueezePoint
vtkIdType NextSqueezePoint
The next vtk ID to use for a connectivity entry when point squeezing is on and no point ID exists.
Definition: vtkExodusIIReaderPrivate.h:344
vtkExodusIIReaderPrivate::GenerateImplicitElementIdArray
vtkTypeBool GenerateImplicitElementIdArray
Definition: vtkExodusIIReaderPrivate.h:813
vtkExodusIIReaderPrivate::GetNumberOfObjectsAtTypeIndex
int GetNumberOfObjectsAtTypeIndex(int typeIndex)
Return the number of objects of the given type.
vtkExodusIIReaderPrivate::GetFileIdArrayName
static const char * GetFileIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:237
vtkExodusIIReaderPrivate::AssemblyInfoType::BlockIndices
std::vector< int > BlockIndices
Definition: vtkExodusIIReaderPrivate.h:376
vtkExodusIIReaderPrivate::FreePolyhedronFaceArrays
void FreePolyhedronFaceArrays()
Free any arrays held by PolyhedralFaceConnArrays (for polyhedral-face-connectivity lookup).
vtkExodusIIReaderPrivate::ArrayInfoType::Source
int Source
The source of the array (Result or Attribute)
Definition: vtkExodusIIReaderPrivate.h:288
vtkExodusIIReaderPrivate::GetSIL
vtkMutableDirectedGraph * GetSIL()
Returns the SIL. This valid only after BuildSIL() has been called.
Definition: vtkExodusIIReaderPrivate.h:41
vtkExodusIIReaderPrivate::BuildSIL
void BuildSIL()
Build SIL. This must be called only after RequestInformation().
vtkExodusIIReaderPrivate::BlockSetInfoType::FileOffset
vtkIdType FileOffset
Id (1-based) of first entry in file-local list across all blocks in file.
Definition: vtkExodusIIReaderPrivate.h:330
vtkExodusIIReaderPrivate::SkipUpdateTimeInformation
bool SkipUpdateTimeInformation
Definition: vtkExodusIIReaderPrivate.h:801
vtkExodusIIReaderPrivate::~vtkExodusIIReaderPrivate
~vtkExodusIIReaderPrivate() override
vtkExodusIIReaderPrivate::ArrayInfoType::Name
vtkStdString Name
The name of the array.
Definition: vtkExodusIIReaderPrivate.h:274
vtkExodusIIReaderPrivate::InformationTimeStamp
vtkTimeStamp InformationTimeStamp
Time stamp from last time we were in RequestInformation.
Definition: vtkExodusIIReaderPrivate.h:410
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:87
vtkExodusIIReaderPrivate::GetUnsortedObjectInfo
ObjectInfoType * GetUnsortedObjectInfo(int objectType, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index, but using indices sorted by objec...
vtkExodusIIReaderPrivate::GetObjectIdArrayName
static const char * GetObjectIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:214
vtkExodusIIReaderPrivate::BlockInfoType::OriginalName
vtkStdString OriginalName
Definition: vtkExodusIIReaderPrivate.h:356
vtkExodusIIReaderPrivate::ObjectInfoType::Name
vtkStdString Name
User-assigned name.
Definition: vtkExodusIIReaderPrivate.h:319
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:40
vtkExodusIIReaderPrivate::MapInfoType
A struct to hold information about Exodus maps.
Definition: vtkExodusIIReaderPrivate.h:323
vtkExodusIIReaderPrivate::BlockInfoType::AttributeNames
std::vector< vtkStdString > AttributeNames
Definition: vtkExodusIIReaderPrivate.h:362
vtkExodusIIReaderPrivate::GenerateGlobalElementIdArray
vtkTypeBool GenerateGlobalElementIdArray
Definition: vtkExodusIIReaderPrivate.h:811
vtkExodusIIReaderPrivate::ArrayInfoType::ObjectTruth
std::vector< int > ObjectTruth
A map describing which objects the variable is defined on.
Definition: vtkExodusIIReaderPrivate.h:305
vtkExodusIIReaderPrivate::BlockInfoType::TypeName
vtkStdString TypeName
Definition: vtkExodusIIReaderPrivate.h:357
vtkExodusIIReaderPrivate::GetNumberOfTimeSteps
int GetNumberOfTimeSteps()
Return the number of time steps in the open file.
Definition: vtkExodusIIReaderPrivate.h:85
vtkExodusIIReaderPrivate::AssemblyInfo
std::vector< AssemblyInfoType > AssemblyInfo
Definition: vtkExodusIIReaderPrivate.h:761
vtkExodusIIReaderPrivate::AssembleOutputPoints
int AssembleOutputPoints(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Fill the output grid's point coordinates array.
vtkExodusIIReaderPrivate::BlockSetInfoType::ReversePointMap
std::map< vtkIdType, vtkIdType > ReversePointMap
A map from nodal ids in the output mesh to those in an Exodus file.
Definition: vtkExodusIIReaderPrivate.h:340
vtkExodusIIReaderPrivate::PartInfo
std::vector< PartInfoType > PartInfo
Definition: vtkExodusIIReaderPrivate.h:759
vtkExodusIICache
Definition: vtkExodusIICache.h:127
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkExodusIIReaderPrivate::AddPointArray
void AddPointArray(vtkDataArray *src, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add a point array to an output grid's point data, squeezing if necessary.
vtkExodusIIReaderPrivate::GetSetTypeFromSetConnType
int GetSetTypeFromSetConnType(int sctyp)
Given a set connectivity type (NODE_SET_CONN, ...), return the associated object type (NODE_SET,...
vtkExodusIIReaderPrivate::GetGlobalVariableValuesArrayName
static const char * GetGlobalVariableValuesArrayName()
Definition: vtkExodusIIReaderPrivate.h:243
vtkExodusIIReaderPrivate::SetInitialObjectArrayStatus
void SetInitialObjectArrayStatus(int otype, const char *name, int stat)
For a given array type, creates and stores an ArrayInfoType object using the given name and status.
vtkExodusIIReaderPrivate::vtkExodusIIReaderPrivate
vtkExodusIIReaderPrivate()
vtkExodusIIReaderPrivate::GetMaterialName
const char * GetMaterialName(int idx)
vtkExodusIIReaderPrivate::ObjectInfoType::Size
int Size
Number of entries in this block.
Definition: vtkExodusIIReaderPrivate.h:313
vtkExodusIIReaderPrivate::GetAssemblyStatus
int GetAssemblyStatus(int idx)
vtkExodusIIReaderPrivate::GetImplicitNodeIdArrayName
static const char * GetImplicitNodeIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:230
vtkExodusIIReaderPrivate::SetParser
virtual void SetParser(vtkExodusIIReaderParser *)
vtkExodusIIReaderPrivate::GenerateFileIdArray
vtkTypeBool GenerateFileIdArray
Definition: vtkExodusIIReaderPrivate.h:810