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 
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 
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 
309  int Size;
311  int Status;
313  int Id;
316  };
317 
320  };
321 
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 
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  // Because Parts, Materials, and assemblies are not stored as arrays,
415  // but rather as maps to the element blocks they make up,
416  // we cannot use the Get|SetObject__() methods directly.
417 
418  int GetNumberOfParts();
419  const char* GetPartName(int idx);
420  const char* GetPartBlockInfo(int idx);
421  int GetPartStatus(int idx);
423  void SetPartStatus(int idx, int on);
424  void SetPartStatus(vtkStdString name, int flag);
425 
426  int GetNumberOfMaterials();
427  const char* GetMaterialName(int idx);
428  int GetMaterialStatus(int idx);
430  void SetMaterialStatus(int idx, int on);
431  void SetMaterialStatus(vtkStdString name, int flag);
432 
433  int GetNumberOfAssemblies();
434  const char* GetAssemblyName(int idx);
435  int GetAssemblyStatus(int idx);
437  void SetAssemblyStatus(int idx, int on);
438  void SetAssemblyStatus(vtkStdString name, int flag);
439 
441  {this->FastPathObjectType = type;};
442  void SetFastPathObjectId(vtkIdType id){this->FastPathObjectId = id;};
443  vtkSetStringMacro(FastPathIdType);
444 
445  bool IsXMLMetadataValid();
446 
454  void GetInitialObjectStatus( int otype, ObjectInfoType *info );
455 
463  void GetInitialObjectArrayStatus( int otype, ArrayInfoType *info );
464 
471  void SetInitialObjectStatus( int otype, const char *name, int stat );
472 
478  void SetInitialObjectArrayStatus( int otype, const char *name, int stat );
479 
480  int UpdateTimeInformation();
481 
483 
484 protected:
487 
489  void BuildSIL();
490 
493  int VerifyIntegrationPointGlom( int nn,
494  char** np,
495  vtksys::RegularExpression& re,
497  vtkStdString& ele );
498 
500  void GlomArrayNames( int i,
501  int num_obj,
502  int num_vars,
503  char** var_names,
504  int* truth_tab );
505 
508 
525  int otyp, int oidx, int conntypidx, BlockSetInfoType* bsinfop,
526  vtkUnstructuredGrid* output );
533  int AssembleOutputPoints( vtkIdType timeStep,
534  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
538  int AssembleOutputPointArrays( vtkIdType timeStep,
539  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
543  int AssembleOutputCellArrays( vtkIdType timeStep,
544  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
550  int otyp, int oidx, vtkUnstructuredGrid* output );
553  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
560  int AssembleOutputPointMaps( vtkIdType timeStep,
561  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
562  int AssembleOutputCellMaps( vtkIdType timeStep,
563  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
567 
570  BlockInfoType* binfo,
571  vtkIntArray* facesPerCell,
572  vtkIntArray* pointsPerFace,
573  vtkIntArray* exoCellConn,
574  vtkIntArray* exoFaceConn);
575 
577  void InsertBlockCells(
578  int otyp, int obj, int conn_type, int timeStep, BlockInfoType* binfop );
579 
581  void InsertSetCells(
582  int otyp, int obj, int conn_type, int timeStep, SetInfoType* sinfop );
583 
585  void AddPointArray(
586  vtkDataArray* src, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
587 
589  void InsertSetNodeCopies(
590  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
591 
593  void InsertSetCellCopies(
594  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
595 
597  void InsertSetSides(
598  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
599 
606 
611  int GetConnTypeIndexFromConnType( int ctyp );
612 
617  int GetObjectTypeIndexFromObjectType( int otyp );
618 
624  int GetNumberOfObjectsAtTypeIndex( int typeIndex );
625 
633  ObjectInfoType* GetObjectInfo( int typeIndex, int objectIndex );
634 
641  ObjectInfoType* GetSortedObjectInfo( int objectType, int objectIndex );
642 
649  ObjectInfoType* GetUnsortedObjectInfo( int objectType, int objectIndex );
650 
655  int GetBlockIndexFromFileGlobalId( int otyp, int refId );
656 
661  BlockInfoType* GetBlockFromFileGlobalId( int otyp, int refId );
662 
666  vtkIdType GetSqueezePointId( BlockSetInfoType* bsinfop, int i );
667 
669  void DetermineVtkCellType( BlockInfoType& binfo );
670 
674  ArrayInfoType* FindArrayInfoByName( int otyp, const char* name );
675 
679  int IsObjectTypeBlock( int otyp );
680  int IsObjectTypeSet( int otyp );
681  int IsObjectTypeMap( int otyp );
682 
686  int GetObjectTypeFromMapType( int mtyp );
687  int GetMapTypeFromObjectType( int otyp );
688  int GetTemporalTypeFromObjectType( int otyp );
689 
693  int GetSetTypeFromSetConnType( int sctyp );
694 
698  int GetBlockConnTypeFromBlockType( int btyp );
699 
705  void RemoveBeginningAndTrailingSpaces( int len, char **names );
706 
709 
713  std::map<int,std::vector<BlockInfoType> > BlockInfo;
717  std::map<int,std::vector<SetInfoType> > SetInfo;
723  std::map<int,std::vector<MapInfoType> > MapInfo;
724 
725  std::vector<PartInfoType> PartInfo;
726  std::vector<MaterialInfoType> MaterialInfo;
727  std::vector<AssemblyInfoType> AssemblyInfo;
728 
733  std::map<int,std::vector<int> > SortedObjectIndices;
735  // defined on that type.
736  std::map<int,std::vector<ArrayInfoType> > ArrayInfo;
737 
742  std::map<int,std::vector<ArrayInfoType> > InitialArrayInfo;
743 
748  std::map<int,std::vector<ObjectInfoType> > InitialObjectInfo;
749 
753 
758 
760  int Exoid;
761 
763  struct ex_init_params ModelParameters;
764 
766  std::vector<double> Times;
767 
768 
773 
781 
785  int FileId;
786 
789  //
791  double CacheSize;
792 
797 
810 
815 
817 
821 
823 private:
824  vtkExodusIIReaderPrivate( const vtkExodusIIReaderPrivate& ); // Not implemented.
825  void operator = ( const vtkExodusIIReaderPrivate& ); // Not implemented.
826 };
827 
828 #endif // vtkExodusIIReaderPrivate_h
829 // VTK-HeaderTest-Exclude: vtkExodusIIReaderPrivate.h
std::map< int, std::vector< ArrayInfoType > > ArrayInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of arrays.
void InsertSetCells(int otyp, int obj, int conn_type, int timeStep, SetInfoType *sinfop)
Insert cells from a specified set into a mesh.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:46
std::vector< int > OriginalIndices
The index of each component of the array as ordered by the Exodus file.
std::vector< MaterialInfoType > MaterialInfo
std::map< vtkIdType, vtkIdType > ReversePointMap
A map from nodal ids in the output mesh to those in an Exodus file.
int Components
The number of components in the array.
static const char * GetObjectIdArrayName()
vtkMutableDirectedGraph * SIL
const char * GetAssemblyName(int idx)
void SetFastPathObjectType(vtkExodusIIReader::ObjectType type)
const char * GetPartName(int idx)
abstract base class for most VTK objects
Definition: vtkObject.h:61
A struct to hold information about Exodus objects (blocks, sets, maps)
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...
void InsertSetSides(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a side set.
void SetFastPathObjectId(vtkIdType id)
int GetNumberOfTimeSteps()
Return the number of time steps in the open file.
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...
void PrepareGeneratedArrayInfo()
Add generated array information to array info lists.
int GetMapTypeFromObjectType(int otyp)
int AssembleOutputPoints(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Fill the output grid's point coordinates array.
int GetObjectTypeFromMapType(int mtyp)
Given a map type (NODE_MAP, EDGE_MAP, ...) return the associated object type (NODAL, EDGE_BLOCK, ...) or vice-versa.
int GetNumberOfObjectsAtTypeIndex(int typeIndex)
Return the number of objects of the given type.
record modification and/or execution time
Definition: vtkTimeStamp.h:34
std::vector< int > ObjectTruth
A map describing which objects the variable is defined on.
A struct to hold information about Exodus maps.
BlockInfoType * GetBlockFromFileGlobalId(int otyp, int refId)
Get the block containing the entity referenced by the specified file-global ID.
vtkExodusIIReader * Parent
Pointer to owning reader...
void RemoveBeginningAndTrailingSpaces(int len, char **names)
Function to trim space from names retrieved with ex_get_var_names.
void DetermineVtkCellType(BlockInfoType &binfo)
Determine the VTK cell type for a given edge/face/element block.
int AssembleOutputPointArrays(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add the requested arrays to the output grid's point data.
void ClearConnectivityCaches()
Delete any cached connectivity information (for all blocks and sets)
int vtkIdType
Definition: vtkType.h:275
This class holds metadata for an Exodus file.
vtkUnstructuredGrid * CachedConnectivity
Cached cell connectivity arrays for mesh.
vtkMutableDirectedGraph * GetSIL()
Returns the SIL. This valid only after BuildSIL() has been called.
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.
int GetBlockConnTypeFromBlockType(int btyp)
Given a block type (EDGE_BLOCK, ...), return the associated block connectivity type (EDGE_BLOCK_CONN...
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...
std::map< int, std::vector< int > > SortedObjectIndices
Maps an object type to vector of indices that reorder objects of that type by their IDs...
static const char * GetGlobalVariableValuesArrayName()
double CacheSize
The size of the cache in MiB.
vtkTimeStamp InformationTimeStamp
Time stamp from last time we were in RequestInformation.
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...
int Source
The source of the array (Result or Attribute)
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:49
int AssembleOutputProceduralArrays(vtkIdType timeStep, int otyp, int oidx, vtkUnstructuredGrid *output)
Add procedurally generated arrays to an output mesh.
ObjectInfoType * GetObjectInfo(int typeIndex, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index.
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.
void BuildSIL()
Build SIL. This must be called only after RequestInformation().
static const char * GetFileIdArrayName()
int StorageType
Storage type of array (a type that can be passed to vtkDataArray::Create())
double ModeShapeTime
The time value.
std::vector< AssemblyInfoType > AssemblyInfo
vtkStdString Name
The name of the array.
a simple class to control print indentation
Definition: vtkIndent.h:38
float ExodusVersion
The version of Exodus that wrote the currently open file (or a negative number otherwise).
Read Exodus II files (.exii)
int GetSetTypeFromSetConnType(int sctyp)
Given a set connectivity type (NODE_SET_CONN, ...), return the associated object type (NODE_SET...
std::map< vtkIdType, vtkIdType > PointMap
A map from nodal IDs in an Exodus file to nodal IDs in the output mesh.
GlomTypes
Tags to indicate how single-component Exodus arrays are glommed (aggregated) into multi-component VTK...
dataset represents arbitrary combinations of all possible cell types
vtkIdType FileOffset
Id (1-based) of first entry in file-local list across all blocks in file.
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
static const char * GetGlobalElementIdArrayName()
void SetAssemblyStatus(int idx, int on)
const struct ex_init_params * GetModelParams() const
An editable directed graph.
int IsObjectTypeBlock(int otyp)
Does the specified object type match? Avoid using these...
#define VTKIOEXODUS_EXPORT
int GetPartStatus(int idx)
vtkExodusIIReader::ObjectType FastPathObjectType
int Status
Whether or not the array should be loaded by RequestData.
int GetMaterialStatus(int idx)
vtkIdType GetSqueezePointId(BlockSetInfoType *bsinfop, int i)
Find or create a new SqueezePoint ID (unique sequential list of points referenced by cells in blocks/...
virtual void SetParser(vtkExodusIIReaderParser *)
int IsObjectTypeSet(int otyp)
A struct to hold information about Exodus blocks.
void InsertSetCellCopies(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by an edge, face, or element set.
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. ...
int Id
User-assigned identification number.
int AssembleOutputPointMaps(vtkIdType timeStep, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add maps to an output mesh.
int GetAssemblyStatus(int idx)
A struct to hold information about Exodus blocks or sets (they have some members in common) ...
static const char * GetImplicitElementIdArrayName()
internal parser used by vtkExodusIIReader.
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...
int AssembleOutputCellArrays(vtkIdType timeStep, int otyp, int oidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add the requested arrays to the output grid's cell data.
Read exodus 2 files .ex2.
std::vector< vtkStdString > OriginalNames
The name of each component of the array as defined by the Exodus file.
vtkExodusIICache * Cache
A least-recently-used cache to hold raw arrays.
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...
ObjectInfoType * GetUnsortedObjectInfo(int objectType, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index, but using indices sorted by objec...
int GetTemporalTypeFromObjectType(int otyp)
int GetConnTypeIndexFromConnType(int ctyp)
Return the index of an object type (in a private list of all object types).
Composite dataset that organizes datasets into blocks.
static const char * GetGlobalNodeIdArrayName()
void SetPartStatus(int idx, int on)
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.
int Status
Should the reader load this block?
A struct to hold information about Exodus sets.
static const char * GetImplicitNodeIdArrayName()
ObjectInfoType * GetSortedObjectInfo(int objectType, int objectIndex)
Return a pointer to the ObjectInfo of the specified type and index, but using indices sorted by objec...
A struct to hold information about Exodus blocks.
vtkDataArray * GetCacheOrRead(vtkExodusIICacheKey)
Return an array for the specified cache key.
int GetObjectTypeIndexFromObjectType(int otyp)
Return the index of an object type (in a private list of all object types).
static vtkObject * New()
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.
int AppWordSize
These aren't the variables you're looking for.
int AssembleOutputCellMaps(vtkIdType timeStep, int otyp, int oidx, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
void AddPointArray(vtkDataArray *src, BlockSetInfoType *bsinfop, vtkUnstructuredGrid *output)
Add a point array to an output grid's point data, squeezing if necessary.
int SqueezePoints
Should the reader output only points used by elements in the output mesh, or all the points...
ArraySourceTypes
Tags to indicate the source of values for an array.
int Exoid
The handle of the currently open file.
const char * GetPartBlockInfo(int idx)
std::vector< double > Times
A list of time steps for which results variables are stored.
vtkIdType NextSqueezePoint
The next vtk ID to use for a connectivity entry when point squeezing is on and no point ID exists...
int Size
Number of entries in this block.
int IsObjectTypeMap(int otyp)
std::vector< PartInfoType > PartInfo
vtkExodusIIReaderParser * Parser
ArrayInfoType * FindArrayInfoByName(int otyp, const char *name)
Find an ArrayInfo object for a specific object type using the name as a key.
void InsertBlockCells(int otyp, int obj, int conn_type, int timeStep, BlockInfoType *binfop)
Insert cells from a specified block into a mesh.
void SetMaterialStatus(int idx, int on)
A struct to hold information about time-varying arrays.
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 ...
int GetBlockIndexFromFileGlobalId(int otyp, int refId)
Get the index of the block containing the entity referenced by the specified file-global ID...
BlockSetInfoType & operator=(const BlockSetInfoType &block)
int GlomType
The type of "glomming" performed.
static const char * GetGlobalVariableNamesArrayName()
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...
int AssembleArraysOverTime(vtkMultiBlockDataSet *output)
Add fast-path time-varying data to field data of an output block or set.
const char * GetMaterialName(int idx)
void InsertBlockPolyhedra(BlockInfoType *binfo, vtkIntArray *facesPerCell, vtkIntArray *pointsPerFace, vtkIntArray *exoCellConn, vtkIntArray *exoFaceConn)
Insert polyhedral cells (called from InsertBlockCells when a block is polyhedra)
void InsertSetNodeCopies(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a node set.