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 
22 class VTKIOEXODUS_EXPORT vtkExodusIIReaderPrivate : public vtkObject
23 {
24 public:
25  static vtkExodusIIReaderPrivate* New();
26  void PrintData( ostream& os, vtkIndent indent );
28  //virtual void Modified();
29 
31  int OpenFile( const char* filename );
32 
34  int CloseFile();
35 
37  int RequestInformation();
38 
41  { return this->SIL; }
42 
44  int RequestData( vtkIdType timeStep, vtkMultiBlockDataSet* output );
45 
50  int SetUpEmptyGrid( vtkMultiBlockDataSet* output );
51 
63  void Reset();
64 
69  void ResetSettings();
70 
72  void ResetCache();
73 
75  void SetCacheSize(double size);
76 
78  vtkGetMacro(CacheSize, double);
79 
84  int GetNumberOfTimeSteps() { return (int) this->Times.size(); }
85 
86 
89  vtkGetMacro(SqueezePoints,int);
90 
93  void SetSqueezePoints( int sp );
94 
97  vtkBooleanMacro(SqueezePoints,int);
98 
100  int GetNumberOfNodes();
101 
106  int GetNumberOfObjectsOfType( int otype );
107 
118  int GetNumberOfObjectArraysOfType( int otype );
119 
124  const char* GetObjectName( int otype, int i );
125 
130  int GetObjectId( int otype, int i );
131 
138  int GetObjectSize( int otype, int i );
139 
144  int GetObjectStatus( int otype, int i );
145 
151  int GetUnsortedObjectStatus( int otype, int i );
152 
157  void SetObjectStatus( int otype, int i, int stat );
158 
164  void SetUnsortedObjectStatus( int otype, int i, int stat );
165 
170  const char* GetObjectArrayName( int otype, int i );
171 
176  int GetNumberOfObjectArrayComponents( int otype, int i );
177 
182  int GetObjectArrayStatus( int otype, int i );
183 
188  void SetObjectArrayStatus( int otype, int i, int stat );
189 
196  int GetNumberOfObjectAttributes( int objectType, int objectIndex );
197  const char* GetObjectAttributeName( int objectType,
198  int objectIndex,
199  int attributeIndex );
200  int GetObjectAttributeIndex( int objectType,
201  int objectIndex,
202  const char* attribName );
203  int GetObjectAttributeStatus( int objectType,
204  int objectIndex,
205  int attribIndex );
206  void SetObjectAttributeStatus( int objectType,
207  int objectIndex,
208  int attribIndex, int status );
209 
211  vtkGetMacro(GenerateObjectIdArray,int);
212  vtkSetMacro(GenerateObjectIdArray,int);
213  static const char* GetObjectIdArrayName() { return "ObjectId"; }
214 
215  vtkSetMacro(GenerateGlobalElementIdArray,int);
216  vtkGetMacro(GenerateGlobalElementIdArray,int);
217  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
218 
219  vtkSetMacro(GenerateGlobalNodeIdArray,int);
220  vtkGetMacro(GenerateGlobalNodeIdArray,int);
221  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
222 
223  vtkSetMacro(GenerateImplicitElementIdArray,int);
224  vtkGetMacro(GenerateImplicitElementIdArray,int);
225  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
226 
227  vtkSetMacro(GenerateImplicitNodeIdArray,int);
228  vtkGetMacro(GenerateImplicitNodeIdArray,int);
229  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
230 
234  vtkSetMacro(GenerateFileIdArray,int);
235  vtkGetMacro(GenerateFileIdArray,int);
236  static const char* GetFileIdArrayName() { return "FileId"; }
237 
239  vtkSetMacro(FileId,int);
240  vtkGetMacro(FileId,int);
241 
242  static const char *GetGlobalVariableValuesArrayName()
243  { return "GlobalVariableValues"; }
244  static const char *GetGlobalVariableNamesArrayName()
245  { return "GlobalVariableNames"; }
246 
247  virtual void SetApplyDisplacements( int d );
248  vtkGetMacro(ApplyDisplacements,int);
249 
250  virtual void SetDisplacementMagnitude( double s );
251  vtkGetMacro(DisplacementMagnitude,double);
252 
253  vtkSetMacro(HasModeShapes,int);
254  vtkGetMacro(HasModeShapes,int);
255 
256  vtkSetMacro(ModeShapeTime,double);
257  vtkGetMacro(ModeShapeTime,double);
258 
259  vtkSetMacro(AnimateModeShapes, int);
260  vtkGetMacro(AnimateModeShapes, int);
261 
262  vtkDataArray* FindDisplacementVectors( int timeStep );
263 
264  const struct ex_init_params* GetModelParams() const
265  { return &this->ModelParameters; }
266 
268  struct VTKIOEXODUS_EXPORT ArrayInfoType {
279  int GlomType;
284  int Source;
286  int Status;
289  std::vector<vtkStdString> OriginalNames;
292  std::vector<int> OriginalIndices;
301  std::vector<int> ObjectTruth;
303  void Reset();
304  };
305 
307  struct VTKIOEXODUS_EXPORT ObjectInfoType {
309  int Size;
311  int Status;
313  int Id;
316  };
317 
319  struct VTKIOEXODUS_EXPORT MapInfoType : public ObjectInfoType {
320  };
321 
324  struct VTKIOEXODUS_EXPORT BlockSetInfoType : public ObjectInfoType {
331  std::map<vtkIdType,vtkIdType> PointMap;
336  std::map<vtkIdType,vtkIdType> ReversePointMap;
343 
344  BlockSetInfoType(){this->CachedConnectivity=0;}
345  BlockSetInfoType(const BlockSetInfoType& block);
346  ~BlockSetInfoType();
347  BlockSetInfoType& operator=(const BlockSetInfoType& block);
348  };
349 
351  struct VTKIOEXODUS_EXPORT BlockInfoType : public BlockSetInfoType {
352  vtkStdString OriginalName; // useful to reset the name if XML metadata is invalid.
354  // number of boundaries per entry
355  // The index is the dimensionality of the entry. 0=node, 1=edge, 2=face
356  int BdsPerEntry[3];
358  std::vector<vtkStdString> AttributeNames;
359  std::vector<int> AttributeStatus;
360  // VTK cell type (a function of TypeName and BdsPerEntry...)
361  int CellType;
362  // Number of points per cell as used by VTK
363  // -- not what's in the file (i.e., BdsPerEntry[0] >= PointsPerCell)
365  };
366 
368  struct PartInfoType : public ObjectInfoType {
369  std::vector<int> BlockIndices;
370  };
372  std::vector<int> BlockIndices;
373  };
375  std::vector<int> BlockIndices;
376  };
377 
379  struct SetInfoType : public BlockSetInfoType {
380  int DistFact; // Number of distribution factors
381  // (for the entire block, not per array or entry)
382  };
383 
386  enum GlomTypes {
387  Scalar=0,
388  Vector2=1,
389  Vector3=2,
390  SymmetricTensor=3,
391  // (order xx, yy, zz, xy, yz, zx)
392  IntegrationPoint=4
393  };
394 
397  Result=0,
398  // (that vary over time)
399  Attribute=1,
400  // (constants over time)
401  Map=2,
402  Generated=3
403  };
404 
407 
408  friend class vtkExodusIIReader;
409  friend class vtkPExodusIIReader;
410 
411  virtual void SetParser( vtkExodusIIReaderParser* );
412  vtkGetObjectMacro(Parser,vtkExodusIIReaderParser);
413 
414  // BUG #15632: This method allows vtkPExodusIIReader to pass time information
415  // from one spatial file to another and avoiding have to read it for each of
416  // the files.
417  void SetTimesOverrides(const std::vector<double>& times)
418  {
419  this->Times = times;
420  this->SkipUpdateTimeInformation = true;
421  }
422 
423  // Because Parts, Materials, and assemblies are not stored as arrays,
424  // but rather as maps to the element blocks they make up,
425  // we cannot use the Get|SetObject__() methods directly.
426 
427  int GetNumberOfParts();
428  const char* GetPartName(int idx);
429  const char* GetPartBlockInfo(int idx);
430  int GetPartStatus(int idx);
432  void SetPartStatus(int idx, int on);
433  void SetPartStatus(vtkStdString name, int flag);
434 
435  int GetNumberOfMaterials();
436  const char* GetMaterialName(int idx);
437  int GetMaterialStatus(int idx);
439  void SetMaterialStatus(int idx, int on);
440  void SetMaterialStatus(vtkStdString name, int flag);
441 
442  int GetNumberOfAssemblies();
443  const char* GetAssemblyName(int idx);
444  int GetAssemblyStatus(int idx);
446  void SetAssemblyStatus(int idx, int on);
447  void SetAssemblyStatus(vtkStdString name, int flag);
448 
450  {this->FastPathObjectType = type;};
451  void SetFastPathObjectId(vtkIdType id){this->FastPathObjectId = id;};
452  vtkSetStringMacro(FastPathIdType);
453 
454  bool IsXMLMetadataValid();
455 
463  void GetInitialObjectStatus( int otype, ObjectInfoType *info );
464 
472  void GetInitialObjectArrayStatus( int otype, ArrayInfoType *info );
473 
480  void SetInitialObjectStatus( int otype, const char *name, int stat );
481 
487  void SetInitialObjectArrayStatus( int otype, const char *name, int stat );
488 
489  int UpdateTimeInformation();
490 
492 
493 protected:
496 
498  void BuildSIL();
499 
502  int VerifyIntegrationPointGlom( int nn,
503  char** np,
504  vtksys::RegularExpression& re,
506  vtkStdString& ele );
507 
509  void GlomArrayNames( int i,
510  int num_obj,
511  int num_vars,
512  char** var_names,
513  int* truth_tab );
514 
517 
534  int otyp, int oidx, int conntypidx, BlockSetInfoType* bsinfop,
535  vtkUnstructuredGrid* output );
542  int AssembleOutputPoints( vtkIdType timeStep,
543  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
547  int AssembleOutputPointArrays( vtkIdType timeStep,
548  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
552  int AssembleOutputCellArrays( vtkIdType timeStep,
553  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
559  int otyp, int oidx, vtkUnstructuredGrid* output );
562  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
569  int AssembleOutputPointMaps( vtkIdType timeStep,
570  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
571  int AssembleOutputCellMaps( vtkIdType timeStep,
572  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
576 
579  BlockInfoType* binfo,
580  vtkIntArray* facesPerCell,
581  vtkIntArray* pointsPerFace,
582  vtkIntArray* exoCellConn,
583  vtkIntArray* exoFaceConn);
584 
586  void InsertBlockCells(
587  int otyp, int obj, int conn_type, int timeStep, BlockInfoType* binfop );
588 
590  void InsertSetCells(
591  int otyp, int obj, int conn_type, int timeStep, SetInfoType* sinfop );
592 
594  void AddPointArray(
595  vtkDataArray* src, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
596 
598  void InsertSetNodeCopies(
599  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
600 
602  void InsertSetCellCopies(
603  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
604 
606  void InsertSetSides(
607  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
608 
615 
620  int GetConnTypeIndexFromConnType( int ctyp );
621 
626  int GetObjectTypeIndexFromObjectType( int otyp );
627 
633  int GetNumberOfObjectsAtTypeIndex( int typeIndex );
634 
642  ObjectInfoType* GetObjectInfo( int typeIndex, int objectIndex );
643 
650  ObjectInfoType* GetSortedObjectInfo( int objectType, int objectIndex );
651 
658  ObjectInfoType* GetUnsortedObjectInfo( int objectType, int objectIndex );
659 
664  int GetBlockIndexFromFileGlobalId( int otyp, int refId );
665 
670  BlockInfoType* GetBlockFromFileGlobalId( int otyp, int refId );
671 
675  vtkIdType GetSqueezePointId( BlockSetInfoType* bsinfop, int i );
676 
678  void DetermineVtkCellType( BlockInfoType& binfo );
679 
683  ArrayInfoType* FindArrayInfoByName( int otyp, const char* name );
684 
688  int IsObjectTypeBlock( int otyp );
689  int IsObjectTypeSet( int otyp );
690  int IsObjectTypeMap( int otyp );
691 
695  int GetObjectTypeFromMapType( int mtyp );
696  int GetMapTypeFromObjectType( int otyp );
697  int GetTemporalTypeFromObjectType( int otyp );
698 
702  int GetSetTypeFromSetConnType( int sctyp );
703 
707  int GetBlockConnTypeFromBlockType( int btyp );
708 
714  void RemoveBeginningAndTrailingSpaces( int len, char **names );
715 
718 
722  std::map<int,std::vector<BlockInfoType> > BlockInfo;
726  std::map<int,std::vector<SetInfoType> > SetInfo;
732  std::map<int,std::vector<MapInfoType> > MapInfo;
733 
734  std::vector<PartInfoType> PartInfo;
735  std::vector<MaterialInfoType> MaterialInfo;
736  std::vector<AssemblyInfoType> AssemblyInfo;
737 
742  std::map<int,std::vector<int> > SortedObjectIndices;
744  // defined on that type.
745  std::map<int,std::vector<ArrayInfoType> > ArrayInfo;
746 
751  std::map<int,std::vector<ArrayInfoType> > InitialArrayInfo;
752 
757  std::map<int,std::vector<ObjectInfoType> > InitialObjectInfo;
758 
762 
767 
769  int Exoid;
770 
772  struct ex_init_params ModelParameters;
773 
775  std::vector<double> Times;
777 
782 
790 
794  int FileId;
795 
798  //
800  double CacheSize;
801 
806 
819 
824 
826 
830 
832 private:
833  vtkExodusIIReaderPrivate( const vtkExodusIIReaderPrivate& ) VTK_DELETE_FUNCTION;
834  void operator = ( const vtkExodusIIReaderPrivate& ) VTK_DELETE_FUNCTION;
835 };
836 
837 #endif // vtkExodusIIReaderPrivate_h
838 // 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:342
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::MaterialInfoType::BlockIndices
std::vector< int > BlockIndices
Definition: vtkExodusIIReaderPrivate.h:375
vtkExodusIIReaderPrivate::GetImplicitElementIdArrayName
static const char * GetImplicitElementIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:225
vtkExodusIIReaderPrivate::FastPathObjectType
vtkExodusIIReader::ObjectType FastPathObjectType
Definition: vtkExodusIIReaderPrivate.h:827
vtkExodusIIReaderPrivate::UpdateTimeInformation
int UpdateTimeInformation()
vtkExodusIIReaderPrivate::InsertSetCellCopies
void InsertSetCellCopies(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by an edge, face, or element set.
vtkExodusIIReaderPrivate::SIL
vtkMutableDirectedGraph * SIL
Definition: vtkExodusIIReaderPrivate.h:831
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:751
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:331
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:732
vtkExodusIIReaderPrivate::ModeShapeTime
double ModeShapeTime
The time value.
Definition: vtkExodusIIReaderPrivate.h:781
vtkExodusIIReaderPrivate::GlomTypes
GlomTypes
Tags to indicate how single-component Exodus arrays are glommed (aggregated) into multi-component VTK...
Definition: vtkExodusIIReaderPrivate.h:386
vtkExodusIIReaderPrivate::Cache
vtkExodusIICache * Cache
A least-recently-used cache to hold raw arrays.
Definition: vtkExodusIIReaderPrivate.h:797
vtkExodusIIReaderPrivate::BlockSetInfoType::BlockSetInfoType
BlockSetInfoType()
Definition: vtkExodusIIReaderPrivate.h:344
vtkExodusIIReaderPrivate::AssembleOutputProceduralArrays
int AssembleOutputProceduralArrays(vtkIdType timeStep, int otyp, int oidx, vtkUnstructuredGrid *output)
Add procedurally generated arrays to an output mesh.
vtkExodusIIReaderPrivate::GetPartStatus
int GetPartStatus(int idx)
vtkExodusIIReaderPrivate::FastPathIdType
char * FastPathIdType
Definition: vtkExodusIIReaderPrivate.h:829
vtkX3D::type
Definition: vtkX3D.h:516
vtkIdType
int vtkIdType
Definition: vtkType.h:287
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:289
vtkExodusIIReaderPrivate::ProducedFastPathOutput
bool ProducedFastPathOutput
Definition: vtkExodusIIReaderPrivate.h:491
vtkExodusIIReaderPrivate::ArrayInfoType::StorageType
int StorageType
Storage type of array (a type that can be passed to vtkDataArray::Create())
Definition: vtkExodusIIReaderPrivate.h:282
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:726
vtkExodusIIReaderPrivate::SetInfoType::DistFact
int DistFact
Definition: vtkExodusIIReaderPrivate.h:380
vtkExodusIIReaderPrivate::SetFastPathObjectId
void SetFastPathObjectId(vtkIdType id)
Definition: vtkExodusIIReaderPrivate.h:451
vtkExodusIIReaderPrivate::SetTimesOverrides
void SetTimesOverrides(const std::vector< double > &times)
Definition: vtkExodusIIReaderPrivate.h:417
vtkExodusIIReaderPrivate::AppWordSize
int AppWordSize
These aren't the variables you're looking for.
Definition: vtkExodusIIReaderPrivate.h:760
vtkExodusIIReaderPrivate::GenerateImplicitNodeIdArray
int GenerateImplicitNodeIdArray
Definition: vtkExodusIIReaderPrivate.h:789
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:742
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:313
vtkExodusIIReaderPrivate::Parent
vtkExodusIIReader * Parent
Pointer to owning reader...
Definition: vtkExodusIIReaderPrivate.h:823
vtkExodusIIReaderPrivate::Times
std::vector< double > Times
A list of time steps for which results variables are stored.
Definition: vtkExodusIIReaderPrivate.h:775
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:825
vtkExodusIIReaderPrivate::ArrayInfoType::Status
int Status
Whether or not the array should be loaded by RequestData.
Definition: vtkExodusIIReaderPrivate.h:286
vtkExodusIIReaderPrivate::IsObjectTypeBlock
int IsObjectTypeBlock(int otyp)
Does the specified object type match? Avoid using these...
vtkExodusIIReaderPrivate::InsertSetNodeCopies
void InsertSetNodeCopies(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a node set.
vtkExodusIIReaderPrivate::ObjectInfoType
A struct to hold information about Exodus objects (blocks, sets, maps)
Definition: vtkExodusIIReaderPrivate.h:307
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:361
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:351
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:794
vtkExodusIIReaderPrivate::GetGlobalVariableNamesArrayName
static const char * GetGlobalVariableNamesArrayName()
Definition: vtkExodusIIReaderPrivate.h:244
vtkExodusIIReaderPrivate::SetInfoType
A struct to hold information about Exodus sets.
Definition: vtkExodusIIReaderPrivate.h:379
vtkExodusIIReaderPrivate::~vtkExodusIIReaderPrivate
~vtkExodusIIReaderPrivate()
vtkExodusIIReader::ObjectType
ObjectType
Definition: vtkExodusIIReader.h:189
vtkExodusIIReaderPrivate::GetBlockConnTypeFromBlockType
int GetBlockConnTypeFromBlockType(int btyp)
Given a block type (EDGE_BLOCK, ...), return the associated block connectivity type (EDGE_BLOCK_CONN,...
vtkExodusIIReaderPrivate::InsertSetSides
void InsertSetSides(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a side set.
vtkExodusIIReaderPrivate::ArrayInfoType::OriginalIndices
std::vector< int > OriginalIndices
The index of each component of the array as ordered by the Exodus file.
Definition: vtkExodusIIReaderPrivate.h:292
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::GenerateImplicitElementIdArray
int GenerateImplicitElementIdArray
Definition: vtkExodusIIReaderPrivate.h:788
vtkExodusIIReaderPrivate::ApplyDisplacements
int ApplyDisplacements
Definition: vtkExodusIIReaderPrivate.h:802
vtkExodusIIReaderPrivate::GetGlobalElementIdArrayName
static const char * GetGlobalElementIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:217
vtkX3D::on
Definition: vtkX3D.h:439
vtkPExodusIIReader
Read Exodus II files (.exii)
Definition: vtkPExodusIIReader.h:50
vtkExodusIIReaderPrivate::BlockInfoType::AttributeStatus
std::vector< int > AttributeStatus
Definition: vtkExodusIIReaderPrivate.h:359
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:735
vtkExodusIIReaderPrivate::GetModelParams
const struct ex_init_params * GetModelParams() const
Definition: vtkExodusIIReaderPrivate.h:264
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:757
vtkExodusIIReaderPrivate::InsertBlockPolyhedra
void InsertBlockPolyhedra(BlockInfoType *binfo, vtkIntArray *facesPerCell, vtkIntArray *pointsPerFace, vtkIntArray *exoCellConn, vtkIntArray *exoFaceConn)
Insert polyhedral cells (called from InsertBlockCells when a block is polyhedra)
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:449
vtkExodusIIReaderPrivate::PartInfoType
A struct to hold information about Exodus blocks.
Definition: vtkExodusIIReaderPrivate.h:368
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.
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:745
vtkExodusIIReaderPrivate::SqueezePoints
int SqueezePoints
Should the reader output only points used by elements in the output mesh, or all the points.
Definition: vtkExodusIIReaderPrivate.h:818
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:803
vtkExodusIIReaderPrivate::GetBlockFromFileGlobalId
BlockInfoType * GetBlockFromFileGlobalId(int otyp, int refId)
Get the block containing the entity referenced by the specified file-global ID.
vtkExodusIIReaderPrivate::GenerateFileIdArray
int GenerateFileIdArray
Definition: vtkExodusIIReaderPrivate.h:785
vtkExodusIIReaderPrivate::ExodusVersion
float ExodusVersion
The version of Exodus that wrote the currently open file (or a negative number otherwise).
Definition: vtkExodusIIReaderPrivate.h:766
vtkExodusIIReaderPrivate::MaterialInfoType
Definition: vtkExodusIIReaderPrivate.h:374
vtkExodusIIReaderPrivate::FastPathObjectId
vtkIdType FastPathObjectId
Definition: vtkExodusIIReaderPrivate.h:828
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:722
vtkExodusIIReaderPrivate::DiskWordSize
int DiskWordSize
Definition: vtkExodusIIReaderPrivate.h:761
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkExodusIIReaderPrivate::Exoid
int Exoid
The handle of the currently open file.
Definition: vtkExodusIIReaderPrivate.h:769
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:311
vtkExodusIIReaderPrivate::GenerateGlobalIdArray
int GenerateGlobalIdArray
Definition: vtkExodusIIReaderPrivate.h:784
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
This class holds metadata for an Exodus file.
Definition: vtkExodusIIReaderPrivate.h:22
vtkExodusIIReaderPrivate::GenerateObjectIdArray
int GenerateObjectIdArray
Definition: vtkExodusIIReaderPrivate.h:783
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::AssemblyInfoType
Definition: vtkExodusIIReaderPrivate.h:371
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:396
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:369
vtkExodusIIReaderPrivate::GetNumberOfParts
int GetNumberOfParts()
vtkX3D::name
Definition: vtkX3D.h:219
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkExodusIIReaderPrivate::AnimateModeShapes
int AnimateModeShapes
Definition: vtkExodusIIReaderPrivate.h:805
vtkExodusIIReaderPrivate::SetMaterialStatus
void SetMaterialStatus(int idx, int on)
vtkExodusIIReaderPrivate::ArrayInfoType::GlomType
int GlomType
The type of "glomming" performed.
Definition: vtkExodusIIReaderPrivate.h:279
vtkExodusIIReaderPrivate::GenerateGlobalNodeIdArray
int GenerateGlobalNodeIdArray
Definition: vtkExodusIIReaderPrivate.h:787
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
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:268
vtkExodusIIReaderPrivate::GetGlobalNodeIdArrayName
static const char * GetGlobalNodeIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:221
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:324
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::ArrayInfoType::Components
int Components
The number of components in the array.
Definition: vtkExodusIIReaderPrivate.h:272
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:800
vtkExodusIIReaderPrivate::BlockInfoType::PointsPerCell
int PointsPerCell
Definition: vtkExodusIIReaderPrivate.h:364
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:340
vtkExodusIIReaderPrivate::GetNumberOfObjectsAtTypeIndex
int GetNumberOfObjectsAtTypeIndex(int typeIndex)
Return the number of objects of the given type.
vtkExodusIIReaderPrivate::GetFileIdArrayName
static const char * GetFileIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:236
vtkExodusIIReaderPrivate::AssemblyInfoType::BlockIndices
std::vector< int > BlockIndices
Definition: vtkExodusIIReaderPrivate.h:372
vtkExodusIIReaderPrivate::ArrayInfoType::Source
int Source
The source of the array (Result or Attribute)
Definition: vtkExodusIIReaderPrivate.h:284
vtkExodusIIReaderPrivate::GetSIL
vtkMutableDirectedGraph * GetSIL()
Returns the SIL. This valid only after BuildSIL() has been called.
Definition: vtkExodusIIReaderPrivate.h:40
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:326
vtkExodusIIReaderPrivate::SkipUpdateTimeInformation
bool SkipUpdateTimeInformation
Definition: vtkExodusIIReaderPrivate.h:776
vtkExodusIIReaderPrivate::ArrayInfoType::Name
vtkStdString Name
The name of the array.
Definition: vtkExodusIIReaderPrivate.h:270
vtkExodusIIReaderPrivate::InformationTimeStamp
vtkTimeStamp InformationTimeStamp
Time stamp from last time we were in RequestInformation.
Definition: vtkExodusIIReaderPrivate.h:406
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:81
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:213
vtkExodusIIReaderPrivate::BlockInfoType::OriginalName
vtkStdString OriginalName
Definition: vtkExodusIIReaderPrivate.h:352
vtkExodusIIReaderPrivate::BlockInfoType::AttributesPerEntry
int AttributesPerEntry
Definition: vtkExodusIIReaderPrivate.h:357
vtkExodusIIReaderPrivate::ObjectInfoType::Name
vtkStdString Name
User-assigned name.
Definition: vtkExodusIIReaderPrivate.h:315
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:47
vtkExodusIIReaderPrivate::HasModeShapes
int HasModeShapes
Definition: vtkExodusIIReaderPrivate.h:804
vtkExodusIIReaderPrivate::MapInfoType
A struct to hold information about Exodus maps.
Definition: vtkExodusIIReaderPrivate.h:319
vtkExodusIIReaderPrivate::BlockInfoType::AttributeNames
std::vector< vtkStdString > AttributeNames
Definition: vtkExodusIIReaderPrivate.h:358
vtkExodusIIReaderPrivate::RemoveBeginningAndTrailingSpaces
void RemoveBeginningAndTrailingSpaces(int len, char **names)
Function to trim space from names retrieved with ex_get_var_names.
vtkExodusIIReaderPrivate::ArrayInfoType::ObjectTruth
std::vector< int > ObjectTruth
A map describing which objects the variable is defined on.
Definition: vtkExodusIIReaderPrivate.h:301
vtkExodusIIReaderPrivate::BlockInfoType::TypeName
vtkStdString TypeName
Definition: vtkExodusIIReaderPrivate.h:353
vtkExodusIIReaderPrivate::GetNumberOfTimeSteps
int GetNumberOfTimeSteps()
Return the number of time steps in the open file.
Definition: vtkExodusIIReaderPrivate.h:84
vtkExodusIIReaderPrivate::AssemblyInfo
std::vector< AssemblyInfoType > AssemblyInfo
Definition: vtkExodusIIReaderPrivate.h:736
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:336
vtkExodusIIReaderPrivate::PartInfo
std::vector< PartInfoType > PartInfo
Definition: vtkExodusIIReaderPrivate.h:734
vtkExodusIIReaderPrivate::GenerateGlobalElementIdArray
int GenerateGlobalElementIdArray
Definition: vtkExodusIIReaderPrivate.h:786
vtkExodusIICache
Definition: vtkExodusIICache.h:127
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:242
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:309
vtkExodusIIReaderPrivate::GetAssemblyStatus
int GetAssemblyStatus(int idx)
vtkExodusIIReaderPrivate::GetImplicitNodeIdArrayName
static const char * GetImplicitNodeIdArrayName()
Definition: vtkExodusIIReaderPrivate.h:229
vtkExodusIIReaderPrivate::SetParser
virtual void SetParser(vtkExodusIIReaderParser *)