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 #ifdef VTK_USE_PARALLEL
11 #else // VTK_USE_PARALLEL
13 #endif // VTK_USE_PARALLEL
14 
15 #include "vtksys/RegularExpression.hxx"
16 
17 #include <vtkstd/map>
18 #include <vtkstd/vector>
19 
20 #include "vtk_exodusII.h"
21 
24 
29 {
30 public:
31  static vtkExodusIIReaderPrivate* New();
32  void PrintData( ostream& os, vtkIndent indent );
34  //virtual void Modified();
35 
37  int OpenFile( const char* filename );
38 
40  int CloseFile();
41 
43  int RequestInformation();
44 
47  { return this->SIL; }
48 
50  void Broadcast( vtkMultiProcessController* controller );
51 
53  void Receive( vtkMultiProcessController* controller );
54 
56  int RequestData( vtkIdType timeStep, vtkMultiBlockDataSet* output );
57 
58  // Description:
59  // Prepare a data set with the proper structure and arrays but no cells.
60  // This is used by the parallel reader when a process has no files assigned to it.
61  int SetUpEmptyGrid( vtkMultiBlockDataSet* output );
62 
74  void Reset();
75 
80  void ResetSettings();
81 
83  void ResetCache();
84 
89  int GetNumberOfTimeSteps() { return (int) this->Times.size(); }
90 
92  vtkGetMacro(TimeStep,int);
93 
95  vtkSetMacro(TimeStep,int);
96 
99  vtkGetMacro(SqueezePoints,int);
100 
103  void SetSqueezePoints( int sp );
104 
107  vtkBooleanMacro(SqueezePoints,int);
108 
110  int GetNumberOfNodes();
111 
116  int GetNumberOfObjectsOfType( int otype );
117 
128  int GetNumberOfObjectArraysOfType( int otype );
129 
134  const char* GetObjectName( int otype, int i );
135 
140  int GetObjectId( int otype, int i );
141 
148  int GetObjectSize( int otype, int i );
149 
154  int GetObjectStatus( int otype, int i );
155 
161  int GetUnsortedObjectStatus( int otype, int i );
162 
167  void SetObjectStatus( int otype, int i, int stat );
168 
174  void SetUnsortedObjectStatus( int otype, int i, int stat );
175 
180  const char* GetObjectArrayName( int otype, int i );
181 
186  int GetNumberOfObjectArrayComponents( int otype, int i );
187 
192  int GetObjectArrayStatus( int otype, int i );
193 
198  void SetObjectArrayStatus( int otype, int i, int stat );
199 
206  int GetNumberOfObjectAttributes( int objectType, int objectIndex );
207  const char* GetObjectAttributeName( int objectType,
208  int objectIndex,
209  int attributeIndex );
210  int GetObjectAttributeIndex( int objectType,
211  int objectIndex,
212  const char* attribName );
213  int GetObjectAttributeStatus( int objectType,
214  int objectIndex,
215  int attribIndex );
216  void SetObjectAttributeStatus( int objectType,
217  int objectIndex,
218  int attribIndex, int status );
219 
221  vtkGetMacro(GenerateObjectIdArray,int);
222  vtkSetMacro(GenerateObjectIdArray,int);
223  static const char* GetObjectIdArrayName() { return "ObjectId"; }
224 
225  vtkSetMacro(GenerateGlobalElementIdArray,int);
226  vtkGetMacro(GenerateGlobalElementIdArray,int);
227  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
228 
229  vtkSetMacro(GenerateGlobalNodeIdArray,int);
230  vtkGetMacro(GenerateGlobalNodeIdArray,int);
231  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
232 
233  vtkSetMacro(GenerateImplicitElementIdArray,int);
234  vtkGetMacro(GenerateImplicitElementIdArray,int);
235  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
236 
237  vtkSetMacro(GenerateImplicitNodeIdArray,int);
238  vtkGetMacro(GenerateImplicitNodeIdArray,int);
239  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
240 
244  vtkSetMacro(GenerateFileIdArray,int);
245  vtkGetMacro(GenerateFileIdArray,int);
246  static const char* GetFileIdArrayName() { return "FileId"; }
247 
249  vtkSetMacro(FileId,int);
250  vtkGetMacro(FileId,int);
251 
252  static const char *GetGlobalVariableValuesArrayName()
253  { return "GlobalVariableValues"; }
254  static const char *GetGlobalVariableNamesArrayName()
255  { return "GlobalVariableNames"; }
256 
257  virtual void SetApplyDisplacements( int d );
258  vtkGetMacro(ApplyDisplacements,int);
259 
260  virtual void SetDisplacementMagnitude( double s );
261  vtkGetMacro(DisplacementMagnitude,double);
262 
263  vtkSetMacro(HasModeShapes,int);
264  vtkGetMacro(HasModeShapes,int);
265 
266  vtkSetMacro(ModeShapeTime,double);
267  vtkGetMacro(ModeShapeTime,double);
268 
269  vtkSetMacro(AnimateModeShapes, int);
270  vtkGetMacro(AnimateModeShapes, int);
271 
272  vtkDataArray* FindDisplacementVectors( int timeStep );
273 
274  vtkSetMacro(EdgeFieldDecorations,int);
275  vtkGetMacro(EdgeFieldDecorations,int);
276 
277  vtkSetMacro(FaceFieldDecorations,int);
278  vtkGetMacro(FaceFieldDecorations,int);
279 
280  const struct ex_init_params* GetModelParams() const
281  { return &this->ModelParameters; }
282 
284  struct ArrayInfoType {
295  int GlomType;
300  int Source;
302  int Status;
305  vtkstd::vector<vtkStdString> OriginalNames;
308  vtkstd::vector<int> OriginalIndices;
317  vtkstd::vector<int> ObjectTruth;
319  void Reset();
320  };
321 
323  struct ObjectInfoType {
325  int Size;
327  int Status;
329  int Id;
332  };
333 
335  struct MapInfoType : public ObjectInfoType {
336  };
337 
347  vtkstd::map<vtkIdType,vtkIdType> PointMap;
352  vtkstd::map<vtkIdType,vtkIdType> ReversePointMap;
359 
360  BlockSetInfoType(){this->CachedConnectivity=0;}
361  BlockSetInfoType(const BlockSetInfoType& block);
363  };
364 
366  struct BlockInfoType : public BlockSetInfoType {
367  vtkStdString OriginalName; // useful to reset the name if XML metadata is invalid.
369  // number of boundaries per entry
370  // The index is the dimensionality of the entry. 0=node, 1=edge, 2=face
371  int BdsPerEntry[3];
373  vtkstd::vector<vtkStdString> AttributeNames;
374  vtkstd::vector<int> AttributeStatus;
375  // VTK cell type (a function of TypeName and BdsPerEntry...)
376  int CellType;
377  // Number of points per cell as used by VTK
378  // -- not what's in the file (i.e., BdsPerEntry[0] >= PointsPerCell)
380  };
381 
383  struct PartInfoType : public ObjectInfoType {
384  vtkstd::vector<int> BlockIndices;
385  };
387  vtkstd::vector<int> BlockIndices;
388  };
390  vtkstd::vector<int> BlockIndices;
391  };
392 
394  struct SetInfoType : public BlockSetInfoType {
395  int DistFact; // Number of distribution factors
396  // (for the entire block, not per array or entry)
397  };
398 
401  enum GlomTypes {
402  Scalar=0,
406  // (order xx, yy, zz, xy, yz, zx)
408  };
409 
412  Result=0,
413  // (that vary over time)
415  // (constants over time)
416  Map=2,
418  };
419 
422 
423  friend class vtkExodusIIReader;
424  friend class vtkPExodusIIReader;
425 
426  virtual void SetParser( vtkExodusIIReaderParser* );
427  vtkGetObjectMacro(Parser,vtkExodusIIReaderParser);
428 
429  // Because Parts, Materials, and assemblies are not stored as arrays,
430  // but rather as maps to the element blocks they make up,
431  // we cannot use the Get|SetObject__() methods directly.
432 
433  int GetNumberOfParts();
434  const char* GetPartName(int idx);
435  const char* GetPartBlockInfo(int idx);
436  int GetPartStatus(int idx);
438  void SetPartStatus(int idx, int on);
439  void SetPartStatus(vtkStdString name, int flag);
440 
441  int GetNumberOfMaterials();
442  const char* GetMaterialName(int idx);
443  int GetMaterialStatus(int idx);
445  void SetMaterialStatus(int idx, int on);
446  void SetMaterialStatus(vtkStdString name, int flag);
447 
448  int GetNumberOfAssemblies();
449  const char* GetAssemblyName(int idx);
450  int GetAssemblyStatus(int idx);
452  void SetAssemblyStatus(int idx, int on);
453  void SetAssemblyStatus(vtkStdString name, int flag);
454 
456  {this->FastPathObjectType = type;};
458  vtkSetStringMacro(FastPathIdType);
459 
460  bool IsXMLMetadataValid();
461 
469  void GetInitialObjectStatus( int otype, ObjectInfoType *info );
470 
478  void GetInitialObjectArrayStatus( int otype, ArrayInfoType *info );
479 
486  void SetInitialObjectStatus( int otype, const char *name, int stat );
487 
493  void SetInitialObjectArrayStatus( int otype, const char *name, int stat );
494 
495  int UpdateTimeInformation();
496 
498 
499 protected:
502 
504  void BuildSIL();
505 
508  int VerifyIntegrationPointGlom( int nn,
509  char** np,
510  vtksys::RegularExpression& re,
512  vtkStdString& ele );
513 
515  void GlomArrayNames( int i,
516  int num_obj,
517  int num_vars,
518  char** var_names,
519  int* truth_tab );
520 
523 
540  int otyp, int oidx, int conntypidx, BlockSetInfoType* bsinfop,
541  vtkUnstructuredGrid* output );
548  int AssembleOutputPoints( vtkIdType timeStep,
549  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
553  int AssembleOutputPointArrays( vtkIdType timeStep,
554  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
558  int AssembleOutputCellArrays( vtkIdType timeStep,
559  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
565  int otyp, int oidx, vtkUnstructuredGrid* output );
568  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
575  int AssembleOutputPointMaps( vtkIdType timeStep,
576  BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
577  int AssembleOutputCellMaps( vtkIdType timeStep,
578  int otyp, int oidx, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
582 
583  // Generate the decorations for edge fields.
585 
586  // Generate the decorations for face fields.
588 
590  void InsertBlockCells(
591  int otyp, int obj, int conn_type, int timeStep, BlockInfoType* binfop );
592 
594  void InsertSetCells(
595  int otyp, int obj, int conn_type, int timeStep, SetInfoType* sinfop );
596 
598  void AddPointArray(
599  vtkDataArray* src, BlockSetInfoType* bsinfop, vtkUnstructuredGrid* output );
600 
602  void InsertSetNodeCopies(
603  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
604 
606  void InsertSetCellCopies(
607  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
608 
610  void InsertSetSides(
611  vtkIntArray* refs, int otyp, int obj, SetInfoType* sinfo );
612 
619 
624  int GetConnTypeIndexFromConnType( int ctyp );
625 
630  int GetObjectTypeIndexFromObjectType( int otyp );
631 
637  int GetNumberOfObjectsAtTypeIndex( int typeIndex );
638 
646  ObjectInfoType* GetObjectInfo( int typeIndex, int objectIndex );
647 
654  ObjectInfoType* GetSortedObjectInfo( int objectType, int objectIndex );
655 
662  ObjectInfoType* GetUnsortedObjectInfo( int objectType, int objectIndex );
663 
668  int GetBlockIndexFromFileGlobalId( int otyp, int refId );
669 
674  BlockInfoType* GetBlockFromFileGlobalId( int otyp, int refId );
675 
679  vtkIdType GetSqueezePointId( BlockSetInfoType* bsinfop, int i );
680 
682  void DetermineVtkCellType( BlockInfoType& binfo );
683 
687  ArrayInfoType* FindArrayInfoByName( int otyp, const char* name );
688 
692  int IsObjectTypeBlock( int otyp );
693  int IsObjectTypeSet( int otyp );
694  int IsObjectTypeMap( int otyp );
695 
699  int GetObjectTypeFromMapType( int mtyp );
700  int GetMapTypeFromObjectType( int otyp );
701  int GetTemporalTypeFromObjectType( int otyp );
702 
706  int GetSetTypeFromSetConnType( int sctyp );
707 
711  int GetBlockConnTypeFromBlockType( int btyp );
712 
718  void RemoveBeginningAndTrailingSpaces( int len, char **names );
719 
722 
726  vtkstd::map<int,vtkstd::vector<BlockInfoType> > BlockInfo;
730  vtkstd::map<int,vtkstd::vector<SetInfoType> > SetInfo;
736  vtkstd::map<int,vtkstd::vector<MapInfoType> > MapInfo;
737 
738  vtkstd::vector<PartInfoType> PartInfo;
739  vtkstd::vector<MaterialInfoType> MaterialInfo;
740  vtkstd::vector<AssemblyInfoType> AssemblyInfo;
741 
746  vtkstd::map<int,vtkstd::vector<int> > SortedObjectIndices;
748  // defined on that type.
749  vtkstd::map<int,vtkstd::vector<ArrayInfoType> > ArrayInfo;
750 
755  vtkstd::map<int,vtkstd::vector<ArrayInfoType> > InitialArrayInfo;
756 
761  vtkstd::map<int,vtkstd::vector<ObjectInfoType> > InitialObjectInfo;
762 
766 
771 
773  int Exoid;
774 
776  struct ex_init_params ModelParameters;
777 
779  vtkstd::vector<double> Times;
780 
782  int TimeStep;
783 
788 
796 
800  int FileId;
801 
804 
809 
810  // Specify how to decorate edge and face variables.
813 
814  // Meshes to support edge and face glyph decorations.
817 
830 
835 
837 
841 
843 private:
844  vtkExodusIIReaderPrivate( const vtkExodusIIReaderPrivate& ); // Not implemented.
845  void operator = ( const vtkExodusIIReaderPrivate& ); // Not implemented.
846 };
847 
848 #endif // __vtkExodusIIReaderPrivate_h
void InsertSetCells(int otyp, int obj, int conn_type, int timeStep, SetInfoType *sinfop)
Insert cells from a specified set into a mesh.
Wrapper around vtkstd::string to keep symbols short.
Definition: vtkStdString.h:45
The array is procedurally generated (e.g., BlockId)
int GetUnsortedObjectStatus(int otype, int i)
For a given object type, returns the status of the i-th object, where i is an index into the unsorted...
int Components
The number of components in the array.
static const char * GetObjectIdArrayName()
vtkstd::vector< int > ObjectTruth
A map describing which objects the variable is defined on.
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:60
A struct to hold information about Exodus objects (blocks, sets, maps)
int GetNumberOfObjectArraysOfType(int otype)
Returns the number of arrays defined over objects of a given type (e.g., EX_ELEM_BLOCK, EX_NODE_SET, ...).
int GetObjectAttributeStatus(int objectType, int objectIndex, int attribIndex)
void InsertSetSides(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a side set.
vtkstd::map< vtkIdType, vtkIdType > ReversePointMap
A map from nodal ids in the output mesh to those in an Exodus file.
void SetFastPathObjectId(vtkIdType id)
const char * GetObjectArrayName(int otype, int i)
For a given object type, returns the name of the i-th array.
int GetNumberOfTimeSteps()
Return the number of time steps in the open file.
The array is composed of results variables.
const char * GetObjectAttributeName(int objectType, int objectIndex, int attributeIndex)
int OpenFile(const char *filename)
Open an ExodusII file for reading. Returns 0 on success.
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...
vtkstd::map< int, vtkstd::vector< MapInfoType > > MapInfo
Maps a map type (EX_ELEM_MAP, ..., EX_NODE_MAP) to a list of maps of that type.
int GetNumberOfNodes()
Return the number of nodes in the output (depends on SqueezePoints)
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:33
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...
The array is composed of attributes.
void RemoveBeginningAndTrailingSpaces(int len, char **names)
Function to trim space from names retrieved with ex_get_var_names.
vtkstd::map< int, vtkstd::vector< ObjectInfoType > > InitialObjectInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of objects defined on that type...
void Reset()
Clear all the structure members.
void SetObjectAttributeStatus(int objectType, int objectIndex, int attribIndex, int status)
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)
void SetSqueezePoints(int sp)
Set whether subsequent RequestData() calls will produce the minimal point set required to represent t...
vtkstd::vector< vtkStdString > AttributeNames
vtkstd::map< int, vtkstd::vector< ArrayInfoType > > InitialArrayInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of arrays defined on that type...
int vtkIdType
Definition: vtkType.h:255
This class holds metadata for an Exodus file.
vtkUnstructuredGrid * CachedConnectivity
Cached cell connectivity arrays for mesh.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:81
vtkMutableDirectedGraph * GetSIL()
Returns the SIL. This valid only after BuildSIL() has been called.
int CloseFile()
Close any ExodusII file currently open for reading. Returns 0 on success.
void Broadcast(vtkMultiProcessController *controller)
Send metadata to other processes in a parallel job.
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...
int GetObjectSize(int otype, int i)
For a given object type, return the size of the i-th object.
void SetObjectStatus(int otype, int i, int stat)
For a given object type, sets the status of the i-th object.
void PrintData(ostream &os, vtkIndent indent)
static const char * GetGlobalVariableValuesArrayName()
vtkstd::map< vtkIdType, vtkIdType > PointMap
A map from nodal IDs in an Exodus file to nodal IDs in the output mesh.
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)
int GetObjectStatus(int otype, int i)
For a given object type, returns the status of the i-th object.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:42
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.
vtkStdString Name
The name of the array.
a simple class to control print indentation
Definition: vtkIndent.h:37
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...
GlomTypes
Tags to indicate how single-component Exodus arrays are glommed (aggregated) into multi-component VTK...
void ResetCache()
Clears out any data in the cache and restores it to its initial state.
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:53
static const char * GetGlobalElementIdArrayName()
void SetAssemblyStatus(int idx, int on)
const struct ex_init_params * GetModelParams() const
int TimeStep
The current time step.
An editable directed graph.
int IsObjectTypeBlock(int otyp)
Does the specified object type match? Avoid using these...
int RequestInformation()
Get metadata for an open file with handle exoid.
void Receive(vtkMultiProcessController *controller)
Receive metadata from the rank 0 process in a parallel job.
The array is a set of integration point values.
int GetPartStatus(int idx)
vtkExodusIIReader::ObjectType FastPathObjectType
int Status
Whether or not the array should be loaded by RequestData.
vtkstd::map< int, vtkstd::vector< SetInfoType > > SetInfo
Maps a set type (EX_ELEM_SET, ..., EX_NODE_SET) to a list of sets of that type.
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.
The array has a corresponding entry in MapInfo.
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) ...
vtkDataArray * FindDisplacementVectors(int timeStep)
virtual void SetApplyDisplacements(int d)
static const char * GetImplicitElementIdArrayName()
void SetObjectArrayStatus(int otype, int i, int stat)
For a given object type, sets the status of the i-th array.
internal parser used by vtkExodusIIReader.
vtkstd::vector< AssemblyInfoType > AssemblyInfo
int GetNumberOfObjectsOfType(int otype)
Returns the number of objects of a given type (e.g., EX_ELEM_BLOCK, EX_NODE_SET, ...).
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.
int GetObjectAttributeIndex(int objectType, int objectIndex, const char *attribName)
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...
void Reset()
Reset the class so that another file may be read.
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)
static vtkExodusIIReaderPrivate * New()
vtkstd::vector< vtkStdString > OriginalNames
The name of each component of the array as defined by the Exodus file.
int GetNumberOfObjectArrayComponents(int otype, int i)
For a given object type, returns the number of components of the i-th array.
int GetNumberOfObjectAttributes(int objectType, int objectIndex)
Unlike object arrays, attributes are only defined over blocks (not sets) and are defined on a per-blo...
virtual void SetDisplacementMagnitude(double s)
int Status
Should the reader load this block?
void ResetSettings()
Return user-specified variables to their default values.
A struct to hold information about Exodus sets.
vtkstd::vector< PartInfoType > PartInfo
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.
const char * GetObjectName(int otype, int i)
For a given object type, returns the name of the i-th object.
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).
vtkstd::vector< MaterialInfoType > MaterialInfo
void SetUnsortedObjectStatus(int otype, int i, int stat)
For a given object type, sets the status of the i-th object, where i is an index into the unsorted ob...
vtkstd::vector< double > Times
A list of time steps for which results variables are stored.
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 SetUpEmptyGrid(vtkMultiBlockDataSet *output)
int GetObjectId(int otype, int i)
For a given object type, return the user-assigned ID of the i-th object.
int GetObjectArrayStatus(int otype, int i)
For a given object type, returns the status of the i-th array.
int Exoid
The handle of the currently open file.
struct ex_init_params ModelParameters
Parameters describing the currently open Exodus file.
const char * GetPartBlockInfo(int idx)
vtkstd::map< int, vtkstd::vector< BlockInfoType > > BlockInfo
Maps a block type (EX_ELEM_BLOCK, EX_FACE_BLOCK, ...) to a list of blocks of that type...
vtkIdType NextSqueezePoint
The next vtk ID to use for a connectivity entry when point squeezing is on and no point ID exists...
int RequestData(vtkIdType timeStep, vtkMultiBlockDataSet *output)
Read requested data and store in unstructured grid.
int Size
Number of entries in this block.
int IsObjectTypeMap(int otyp)
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.
vtkstd::vector< int > OriginalIndices
The index of each component of the array as ordered by the Exodus file.
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...
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...
vtkstd::map< int, vtkstd::vector< int > > SortedObjectIndices
Maps an object type to vector of indices that reorder objects of that type by their IDs...
int AssembleArraysOverTime(vtkMultiBlockDataSet *output)
Add fast-path time-varying data to field data of an output block or set.
const char * GetMaterialName(int idx)
vtkstd::map< int, vtkstd::vector< ArrayInfoType > > ArrayInfo
Maps an object type (EX_ELEM_BLOCK, EX_NODE_SET, ...) to a list of arrays.
void InsertSetNodeCopies(vtkIntArray *refs, int otyp, int obj, SetInfoType *sinfo)
Insert cells referenced by a node set.
Multiprocessing communication superclass.