VTK
vtkExodusIIReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExodusIIReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*----------------------------------------------------------------------------
16  Copyright (c) Sandia Corporation
17  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
18 ----------------------------------------------------------------------------*/
19 
39 #ifndef vtkExodusIIReader_h
40 #define vtkExodusIIReader_h
41 
42 #include "vtkIOExodusModule.h" // For export macro
44 
45 class vtkDataArray;
46 class vtkDataSet;
47 class vtkExodusIICache;
49 class vtkFloatArray;
50 class vtkGraph;
51 class vtkIntArray;
52 class vtkPoints;
54 
56 {
57 public:
58  static vtkExodusIIReader *New();
60  void PrintSelf(ostream& os, vtkIndent indent);
61 
63  int CanReadFile(const char* fname);
64 
65  //virtual void Modified();
66 
69  virtual unsigned long GetMTime();
70 
74  virtual unsigned long GetMetadataMTime();
75 
77 
78  virtual void SetFileName( const char* fname );
79  vtkGetStringMacro(FileName);
81 
83 
84  virtual void SetXMLFileName( const char* fname );
85  vtkGetStringMacro(XMLFileName);
87 
89 
90  vtkSetMacro(TimeStep, int);
91  vtkGetMacro(TimeStep, int);
93 
95 
97  void SetModeShape(int val)
98  {
99  this->SetTimeStep(val-1);
100  }
102 
104 
106  virtual int* GetModeShapesRange()
107  {
108  this->ModeShapesRange[0] = this->TimeStepRange[0] + 1;
109  this->ModeShapesRange[1] = this->TimeStepRange[1] + 1;
110  return this->ModeShapesRange;
111  }
113 
115 
116  vtkGetVector2Macro(TimeStepRange,int);
117  vtkSetVector2Macro(TimeStepRange,int);
119 
121 
130  virtual void SetGenerateObjectIdCellArray( int g );
131  int GetGenerateObjectIdCellArray();
132  vtkBooleanMacro(GenerateObjectIdCellArray, int);
133  static const char *GetObjectIdArrayName() { return "ObjectId"; }
135 
136  virtual void SetGenerateGlobalElementIdArray( int g );
137  int GetGenerateGlobalElementIdArray();
138  vtkBooleanMacro(GenerateGlobalElementIdArray, int);
139 
140  virtual void SetGenerateGlobalNodeIdArray( int g );
141  int GetGenerateGlobalNodeIdArray();
142  vtkBooleanMacro(GenerateGlobalNodeIdArray, int);
143 
144  virtual void SetGenerateImplicitElementIdArray( int g );
145  int GetGenerateImplicitElementIdArray();
146  vtkBooleanMacro(GenerateImplicitElementIdArray, int);
147 
148  virtual void SetGenerateImplicitNodeIdArray( int g );
149  int GetGenerateImplicitNodeIdArray();
150  vtkBooleanMacro(GenerateImplicitNodeIdArray, int);
151 
152  virtual void SetGenerateFileIdArray( int f );
153  int GetGenerateFileIdArray();
154  vtkBooleanMacro(GenerateFileIdArray, int);
155  virtual void SetFileId( int f );
156  int GetFileId();
157 
158 //BTX
160 
165  enum {
166  SEARCH_TYPE_ELEMENT=0,
170  ID_NOT_FOUND=-234121312
171  };
172  // NOTE: GetNumberOfObjectTypes must be updated whenever you add an entry to enum ObjectType {...}
173  enum ObjectType {
174  // match Exodus macros from exodusII.h and exodusII_ext.h
175  EDGE_BLOCK = 6,
176  FACE_BLOCK = 8,
177  ELEM_BLOCK = 1,
178  NODE_SET = 2,
179  EDGE_SET = 7,
180  FACE_SET = 9,
181  SIDE_SET = 3,
182  ELEM_SET = 10,
183  NODE_MAP = 5,
184  EDGE_MAP = 11,
185  FACE_MAP = 12,
186  ELEM_MAP = 4,
187  GLOBAL = 13,
188  NODAL = 14,
189  // extended values (not in Exodus headers) for use with SetAllArrayStatus:
190  ASSEMBLY = 60,
191  PART = 61,
192  MATERIAL = 62,
193  HIERARCHY = 63,
194  // extended values (not in Exodus headers) for use in cache keys:
195  QA_RECORDS = 103,
196  INFO_RECORDS = 104,
197  GLOBAL_TEMPORAL = 102,
198  NODAL_TEMPORAL = 101,
199  ELEM_BLOCK_TEMPORAL = 100,
200  GLOBAL_CONN = 99,
201  ELEM_BLOCK_ELEM_CONN = 98,
202  ELEM_BLOCK_FACE_CONN = 97,
203  ELEM_BLOCK_EDGE_CONN = 96,
204  FACE_BLOCK_CONN = 95,
205  EDGE_BLOCK_CONN = 94,
206  ELEM_SET_CONN = 93,
207  SIDE_SET_CONN = 92,
208  FACE_SET_CONN = 91,
209  EDGE_SET_CONN = 90,
210  NODE_SET_CONN = 89,
211  NODAL_COORDS = 88,
212  OBJECT_ID = 87,
213  IMPLICIT_ELEMENT_ID = 108,
214  IMPLICIT_NODE_ID = 107,
215  GLOBAL_ELEMENT_ID = 86,
216  GLOBAL_NODE_ID = 85,
217  ELEMENT_ID = 84,
218  NODE_ID = 83,
219  NODAL_SQUEEZEMAP = 82,
220  ELEM_BLOCK_ATTRIB = 81,
221  FACE_BLOCK_ATTRIB = 80,
222  EDGE_BLOCK_ATTRIB = 79,
223  FACE_ID = 105,
224  EDGE_ID = 106,
225  ENTITY_COUNTS = 109
226  };
227 //ETX
228  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
229  static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; }
230  static int GetGlobalElementID( vtkDataSet *data, int localID );
231  static int GetGlobalElementID ( vtkDataSet *data, int localID,
232  int searchType );
233  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
235 
236  static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; }
237  static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; }
238  static int GetGlobalFaceID( vtkDataSet *data, int localID );
239  static int GetGlobalFaceID ( vtkDataSet *data, int localID,
240  int searchType );
241  static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; }
242 
243  static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; }
244  static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; }
245  static int GetGlobalEdgeID( vtkDataSet *data, int localID );
246  static int GetGlobalEdgeID ( vtkDataSet *data, int localID,
247  int searchType );
248  static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; }
249 
251 
255  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
256  static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; }
257  static int GetGlobalNodeID( vtkDataSet *data, int localID );
258  static int GetGlobalNodeID( vtkDataSet *data, int localID,
259  int searchType );
260  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
262 
265  static const char* GetSideSetSourceElementIdArrayName() { return "SourceElementId"; }
266 
269  static const char* GetSideSetSourceElementSideArrayName() { return "SourceElementSide"; }
271 
275  virtual void SetApplyDisplacements( int d );
276  int GetApplyDisplacements();
277  vtkBooleanMacro(ApplyDisplacements, int);
278  virtual void SetDisplacementMagnitude( float s );
279  float GetDisplacementMagnitude();
281 
283 
286  virtual void SetHasModeShapes( int ms );
287  int GetHasModeShapes();
288  vtkBooleanMacro(HasModeShapes,int);
290 
292 
298  virtual void SetModeShapeTime( double phase );
299  double GetModeShapeTime();
301 
303 
308  virtual void SetAnimateModeShapes(int flag);
309  int GetAnimateModeShapes();
310  vtkBooleanMacro(AnimateModeShapes, int);
312 
314 
315  const char* GetTitle();
316  int GetDimensionality();
317  int GetNumberOfTimeSteps();
319 
320  int GetNumberOfNodesInFile();
321  int GetNumberOfEdgesInFile();
322  int GetNumberOfFacesInFile();
323  int GetNumberOfElementsInFile();
324 
325  int GetObjectTypeFromName( const char* name );
326  const char* GetObjectTypeName( int );
327 
328  int GetNumberOfNodes();
329  int GetNumberOfObjects( int objectType );
330  int GetNumberOfEntriesInObject( int objectType, int objectIndex );
331  int GetObjectId( int objectType, int objectIndex );
332  const char* GetObjectName( int objectType, int objectIndex );
333  int GetObjectIndex( int objectType, const char* objectName );
334  int GetObjectIndex( int objectType, int id );
335  int GetObjectStatus( int objectType, int objectIndex );
336  int GetObjectStatus( int objectType, const char* objectName )
337  { return this->GetObjectStatus( objectType, this->GetObjectIndex( objectType, objectName ) ); }
338  void SetObjectStatus( int objectType, int objectIndex, int status );
339  void SetObjectStatus( int objectType, const char* objectName, int status );
340 
342 
347  int GetNumberOfObjectArrays( int objectType );
348  const char* GetObjectArrayName( int objectType, int arrayIndex );
349  int GetObjectArrayIndex( int objectType, const char* arrayName );
350  int GetNumberOfObjectArrayComponents( int objectType, int arrayIndex );
351  int GetObjectArrayStatus( int objectType, int arrayIndex );
352  int GetObjectArrayStatus( int objectType, const char* arrayName )
353  { return this->GetObjectArrayStatus( objectType, this->GetObjectArrayIndex( objectType, arrayName ) ); }
354  void SetObjectArrayStatus( int objectType, int arrayIndex, int status );
355  void SetObjectArrayStatus( int objectType, const char* arrayName, int status );
357 
359 
364  int GetNumberOfObjectAttributes( int objectType, int objectIndex );
365  const char* GetObjectAttributeName( int objectType, int objectIndex, int attribIndex );
366  int GetObjectAttributeIndex( int objectType, int objectIndex, const char* attribName );
367  int GetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex );
368  int GetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName )
369  { return this->GetObjectAttributeStatus( objectType, objectIndex,
370  this->GetObjectAttributeIndex( objectType, objectIndex, attribName ) ); }
371  void SetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex, int status );
372  void SetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName, int status )
373  { this->SetObjectAttributeStatus( objectType, objectIndex,
374  this->GetObjectAttributeIndex( objectType, objectIndex, attribName ), status ); }
376 
377  virtual vtkIdType GetTotalNumberOfNodes();
378  virtual vtkIdType GetTotalNumberOfEdges();
379  virtual vtkIdType GetTotalNumberOfFaces();
380  virtual vtkIdType GetTotalNumberOfElements();
381 
383 
387  int GetNumberOfPartArrays();
388  const char* GetPartArrayName(int arrayIdx);
389  int GetPartArrayID( const char *name );
390  const char* GetPartBlockInfo(int arrayIdx);
391  void SetPartArrayStatus(int index, int flag);
392  void SetPartArrayStatus(const char*, int flag);
393  int GetPartArrayStatus(int index);
394  int GetPartArrayStatus(const char*);
396 
397 
399 
403  int GetNumberOfMaterialArrays();
404  const char* GetMaterialArrayName(int arrayIdx);
405  int GetMaterialArrayID( const char *name );
406  void SetMaterialArrayStatus(int index, int flag);
407  void SetMaterialArrayStatus(const char*, int flag);
408  int GetMaterialArrayStatus(int index);
409  int GetMaterialArrayStatus(const char*);
411 
413 
417  int GetNumberOfAssemblyArrays();
418  const char* GetAssemblyArrayName(int arrayIdx);
419  int GetAssemblyArrayID( const char *name );
420  void SetAssemblyArrayStatus(int index, int flag);
421  void SetAssemblyArrayStatus(const char*, int flag);
422  int GetAssemblyArrayStatus(int index);
423  int GetAssemblyArrayStatus(const char*);
425 
427 
434  int GetNumberOfHierarchyArrays();
435  const char* GetHierarchyArrayName(int arrayIdx);
436  void SetHierarchyArrayStatus(int index, int flag);
437  void SetHierarchyArrayStatus(const char*, int flag);
438  int GetHierarchyArrayStatus(int index);
439  int GetHierarchyArrayStatus(const char*);
441 
442  vtkGetMacro(DisplayType,int);
443  virtual void SetDisplayType(int type);
444 
446  int IsValidVariable( const char *type, const char *name );
447 
449  int GetVariableID ( const char *type, const char *name );
450 
451  void SetAllArrayStatus( int otype, int status );
452  // Helper functions
453  //static int StringsEqual(const char* s1, char* s2);
454  //static void StringUppercase(const char* str, char* upperstr);
455  //static char *StrDupWithNew(const char *s);
456 
457  // time series query functions
458  int GetTimeSeriesData( int ID, const char *vName, const char *vType,
460 
461 
462 
464  { return this->GetNumberOfObjects(EDGE_BLOCK); }
465  const char* GetEdgeBlockArrayName(int index)
466  { return this->GetObjectName(EDGE_BLOCK, index); }
467  int GetEdgeBlockArrayStatus(const char* name)
468  { return this->GetObjectStatus(EDGE_BLOCK, name); }
469  void SetEdgeBlockArrayStatus(const char* name, int flag)
470  { this->SetObjectStatus(EDGE_BLOCK, name, flag); }
471 
473  { return this->GetNumberOfObjects(FACE_BLOCK); }
474  const char* GetFaceBlockArrayName(int index)
475  { return this->GetObjectName(FACE_BLOCK, index); }
476  int GetFaceBlockArrayStatus(const char* name)
477  { return this->GetObjectStatus(FACE_BLOCK, name); }
478  void SetFaceBlockArrayStatus(const char* name, int flag)
479  { this->SetObjectStatus(FACE_BLOCK, name, flag); }
480 
482  { return this->GetNumberOfObjects(ELEM_BLOCK); }
483  const char* GetElementBlockArrayName(int index)
484  { return this->GetObjectName(ELEM_BLOCK, index); }
485  int GetElementBlockArrayStatus(const char* name)
486  { return this->GetObjectStatus(ELEM_BLOCK, name); }
487  void SetElementBlockArrayStatus(const char* name, int flag)
488  { this->SetObjectStatus(ELEM_BLOCK, name, flag); }
489 
491  { return this->GetNumberOfObjectArrays(GLOBAL); }
492  const char* GetGlobalResultArrayName(int index)
493  { return this->GetObjectArrayName(GLOBAL, index); }
494  int GetGlobalResultArrayStatus(const char* name)
495  { return this->GetObjectArrayStatus(GLOBAL, name); }
496  void SetGlobalResultArrayStatus(const char* name, int flag)
497  { this->SetObjectArrayStatus(GLOBAL, name, flag); }
498 
500  { return this->GetNumberOfObjectArrays(NODAL); }
501  const char* GetPointResultArrayName(int index)
502  { return this->GetObjectArrayName(NODAL, index); }
503  int GetPointResultArrayStatus(const char* name)
504  { return this->GetObjectArrayStatus(NODAL, name); }
505  void SetPointResultArrayStatus(const char* name, int flag)
506  { this->SetObjectArrayStatus(NODAL, name, flag); }
507 
509  { return this->GetNumberOfObjectArrays(EDGE_BLOCK); }
510  const char* GetEdgeResultArrayName(int index)
511  { return this->GetObjectArrayName(EDGE_BLOCK, index); }
512  int GetEdgeResultArrayStatus(const char* name)
513  { return this->GetObjectArrayStatus(EDGE_BLOCK, name); }
514  void SetEdgeResultArrayStatus(const char* name, int flag)
515  { this->SetObjectArrayStatus(EDGE_BLOCK, name, flag); }
516 
518  { return this->GetNumberOfObjectArrays(FACE_BLOCK); }
519  const char* GetFaceResultArrayName(int index)
520  { return this->GetObjectArrayName(FACE_BLOCK, index); }
521  int GetFaceResultArrayStatus(const char* name)
522  { return this->GetObjectArrayStatus(FACE_BLOCK, name); }
523  void SetFaceResultArrayStatus(const char* name, int flag)
524  { this->SetObjectArrayStatus(FACE_BLOCK, name, flag); }
525 
527  { return this->GetNumberOfObjectArrays(ELEM_BLOCK); }
528  const char* GetElementResultArrayName(int index)
529  { return this->GetObjectArrayName(ELEM_BLOCK, index); }
530  int GetElementResultArrayStatus(const char* name)
531  { return this->GetObjectArrayStatus(ELEM_BLOCK, name); }
532  void SetElementResultArrayStatus(const char* name, int flag)
533  { this->SetObjectArrayStatus(ELEM_BLOCK, name, flag); }
534 
535 
537  { return this->GetNumberOfObjects(NODE_MAP); }
538  const char* GetNodeMapArrayName(int index)
539  { return this->GetObjectName(NODE_MAP, index); }
540  int GetNodeMapArrayStatus(const char* name)
541  { return this->GetObjectStatus(NODE_MAP, name); }
542  void SetNodeMapArrayStatus(const char* name, int flag)
543  { this->SetObjectStatus(NODE_MAP, name, flag); }
544 
546  { return this->GetNumberOfObjects(EDGE_MAP); }
547  const char* GetEdgeMapArrayName(int index)
548  { return this->GetObjectName(EDGE_MAP, index); }
549  int GetEdgeMapArrayStatus(const char* name)
550  { return this->GetObjectStatus(EDGE_MAP, name); }
551  void SetEdgeMapArrayStatus(const char* name, int flag)
552  { this->SetObjectStatus(EDGE_MAP, name, flag); }
553 
555  { return this->GetNumberOfObjects(FACE_MAP); }
556  const char* GetFaceMapArrayName(int index)
557  { return this->GetObjectName(FACE_MAP, index); }
558  int GetFaceMapArrayStatus(const char* name)
559  { return this->GetObjectStatus(FACE_MAP, name); }
560  void SetFaceMapArrayStatus(const char* name, int flag)
561  { this->SetObjectStatus(FACE_MAP, name, flag); }
562 
564  { return this->GetNumberOfObjects(ELEM_MAP); }
565  const char* GetElementMapArrayName(int index)
566  { return this->GetObjectName(ELEM_MAP, index); }
567  int GetElementMapArrayStatus(const char* name)
568  { return this->GetObjectStatus(ELEM_MAP, name); }
569  void SetElementMapArrayStatus(const char* name, int flag)
570  { this->SetObjectStatus(ELEM_MAP, name, flag); }
571 
573  { return this->GetNumberOfObjects(NODE_SET); }
574  const char* GetNodeSetArrayName(int index)
575  { return this->GetObjectName(NODE_SET, index); }
576  int GetNodeSetArrayStatus(const char* name)
577  { return this->GetObjectStatus(NODE_SET, name); }
578  void SetNodeSetArrayStatus(const char* name, int flag)
579  { this->SetObjectStatus(NODE_SET, name, flag); }
580 
582  { return this->GetNumberOfObjects(SIDE_SET); }
583  const char* GetSideSetArrayName(int index)
584  { return this->GetObjectName(SIDE_SET, index); }
585  int GetSideSetArrayStatus(const char* name)
586  { return this->GetObjectStatus(SIDE_SET, name); }
587  void SetSideSetArrayStatus(const char* name, int flag)
588  { this->SetObjectStatus(SIDE_SET, name, flag); }
589 
591  { return this->GetNumberOfObjects(EDGE_SET); }
592  const char* GetEdgeSetArrayName(int index)
593  { return this->GetObjectName(EDGE_SET, index); }
594  int GetEdgeSetArrayStatus(const char* name)
595  { return this->GetObjectStatus(EDGE_SET, name); }
596  void SetEdgeSetArrayStatus(const char* name, int flag)
597  { this->SetObjectStatus(EDGE_SET, name, flag); }
598 
600  { return this->GetNumberOfObjects(FACE_SET); }
601  const char* GetFaceSetArrayName(int index)
602  { return this->GetObjectName(FACE_SET, index); }
603  int GetFaceSetArrayStatus(const char* name)
604  { return this->GetObjectStatus(FACE_SET, name); }
605  void SetFaceSetArrayStatus(const char* name, int flag)
606  { this->SetObjectStatus(FACE_SET, name, flag); }
607 
609  { return this->GetNumberOfObjects(ELEM_SET); }
610  const char* GetElementSetArrayName(int index)
611  { return this->GetObjectName(ELEM_SET, index); }
612  int GetElementSetArrayStatus(const char* name)
613  { return this->GetObjectStatus(ELEM_SET, name); }
614  void SetElementSetArrayStatus(const char* name, int flag)
615  { this->SetObjectStatus(ELEM_SET, name, flag); }
616 
617 
619  { return this->GetNumberOfObjectArrays(NODE_SET); }
620  const char* GetNodeSetResultArrayName(int index)
621  { return this->GetObjectArrayName(NODE_SET, index); }
622  int GetNodeSetResultArrayStatus(const char* name)
623  { return this->GetObjectArrayStatus(NODE_SET, name); }
624  void SetNodeSetResultArrayStatus(const char* name, int flag)
625  { this->SetObjectArrayStatus(NODE_SET, name, flag); }
626 
628  { return this->GetNumberOfObjectArrays(SIDE_SET); }
629  const char* GetSideSetResultArrayName(int index)
630  { return this->GetObjectArrayName(SIDE_SET, index); }
631  int GetSideSetResultArrayStatus(const char* name)
632  { return this->GetObjectArrayStatus(SIDE_SET, name); }
633  void SetSideSetResultArrayStatus(const char* name, int flag)
634  { this->SetObjectArrayStatus(SIDE_SET, name, flag); }
635 
637  { return this->GetNumberOfObjectArrays(EDGE_SET); }
638  const char* GetEdgeSetResultArrayName(int index)
639  { return this->GetObjectArrayName(EDGE_SET, index); }
640  int GetEdgeSetResultArrayStatus(const char* name)
641  { return this->GetObjectArrayStatus(EDGE_SET, name); }
642  void SetEdgeSetResultArrayStatus(const char* name, int flag)
643  { this->SetObjectArrayStatus(EDGE_SET, name, flag); }
644 
646  { return this->GetNumberOfObjectArrays(FACE_SET); }
647  const char* GetFaceSetResultArrayName(int index)
648  { return this->GetObjectArrayName(FACE_SET, index); }
649  int GetFaceSetResultArrayStatus(const char* name)
650  { return this->GetObjectArrayStatus(FACE_SET, name); }
651  void SetFaceSetResultArrayStatus(const char* name, int flag)
652  { this->SetObjectArrayStatus(FACE_SET, name, flag); }
653 
655  { return this->GetNumberOfObjectArrays(ELEM_SET); }
656  const char* GetElementSetResultArrayName(int index)
657  { return this->GetObjectArrayName(ELEM_SET, index); }
658  int GetElementSetResultArrayStatus(const char* name)
659  { return this->GetObjectArrayStatus(ELEM_SET, name); }
660  void SetElementSetResultArrayStatus(const char* name, int flag)
661  { this->SetObjectArrayStatus(ELEM_SET, name, flag); }
662 
667  void Reset();
668 
674  void ResetSettings();
675 
677  void ResetCache();
678 
680  void SetCacheSize(double CacheSize);
681 
683  double GetCacheSize();
684 
686 
695  void SetSqueezePoints(bool sp);
696  bool GetSqueezePoints();
698 
699 
702  virtual void UpdateTimeInformation();
703 
704  virtual void Dump();
705 
708  vtkGraph* GetSIL();
709 
711 
712  vtkGetMacro(SILUpdateStamp, int);
714 
715 protected:
718 
719  // helper for finding IDs
720  static int GetIDHelper ( const char *arrayName, vtkDataSet *data, int localID, int searchType );
721  static int GetGlobalID( const char *arrayName, vtkDataSet *data, int localID, int searchType );
722 
723  virtual void SetMetadata( vtkExodusIIReaderPrivate* );
725 
731  bool FindXMLFile();
732 
733  // Time query function. Called by ExecuteInformation().
734  // Fills the TimestepValues array.
735  void GetAllTimes(vtkInformationVector*);
736 
738  void AdvertiseTimeSteps( vtkInformation* outputInfo );
739 
743  //int RequestDataOverTime( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
744 
745  // Parameters for controlling what is read in.
746  char* FileName;
747  char* XMLFileName;
748  int TimeStep;
749  int TimeStepRange[2];
752 
753  // Information specific for exodus files.
754 
755  //1=display Block names
756  //2=display Part names
757  //3=display Material names
759 
760  // Metadata containing a description of the currently open file.
762 
764 private:
765  vtkExodusIIReader(const vtkExodusIIReader&); // Not implemented
766  void operator=(const vtkExodusIIReader&); // Not implemented
767 
768  void AddDisplacements(vtkUnstructuredGrid* output);
769  int ModeShapesRange[2];
770 };
771 
772 #endif
const char * GetEdgeResultArrayName(int index)
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
static const char * GetGlobalNodeIdArrayName()
GLclampf f
Definition: vtkgl.h:14181
const char * GetSideSetResultArrayName(int index)
GLuint GLuint GLsizei GLenum type
Definition: vtkgl.h:11315
static const char * GetImplicitElementIdArrayName()
const char * GetEdgeSetArrayName(int index)
void SetElementSetResultArrayStatus(const char *name, int flag)
int GetFaceMapArrayStatus(const char *name)
const char * GetEdgeSetResultArrayName(int index)
void SetEdgeResultArrayStatus(const char *name, int flag)
void SetNodeSetArrayStatus(const char *name, int flag)
GLuint index
Definition: vtkgl.h:11983
Store vtkAlgorithm input/output information.
const char * GetEdgeBlockArrayName(int index)
void SetNodeMapArrayStatus(const char *name, int flag)
void SetEdgeSetResultArrayStatus(const char *name, int flag)
abstract class to specify dataset behavior
Definition: vtkDataSet.h:59
int GetGlobalResultArrayStatus(const char *name)
static const char * GetImplicitFaceIdArrayName()
int GetEdgeSetResultArrayStatus(const char *name)
const char * GetNodeSetArrayName(int index)
void SetEdgeBlockArrayStatus(const char *name, int flag)
void SetNodeSetResultArrayStatus(const char *name, int flag)
void SetSideSetArrayStatus(const char *name, int flag)
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:83
record modification and/or execution time
Definition: vtkTimeStamp.h:34
int GetElementSetResultArrayStatus(const char *name)
int GetElementBlockArrayStatus(const char *name)
const char * GetElementSetArrayName(int index)
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:45
int GetNumberOfFaceSetResultArrays()
const char * GetFaceSetResultArrayName(int index)
const char * GetFaceSetArrayName(int index)
int GetNumberOfEdgeSetResultArrays()
int GetNumberOfElementResultArrays()
int GetElementResultArrayStatus(const char *name)
void SetElementResultArrayStatus(const char *name, int flag)
int GetEdgeResultArrayStatus(const char *name)
int vtkIdType
Definition: vtkType.h:281
This class holds metadata for an Exodus file.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
void SetPointResultArrayStatus(const char *name, int flag)
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
const char * GetEdgeMapArrayName(int index)
int GetNodeSetResultArrayStatus(const char *name)
void SetFaceBlockArrayStatus(const char *name, int flag)
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:632
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
const char * GetGlobalResultArrayName(int index)
int GetNumberOfSideSetResultArrays()
int GetElementSetArrayStatus(const char *name)
static vtkMultiBlockDataSetAlgorithm * New()
static const char * GetImplicitNodeIdArrayName()
Base class for graph data types.
Definition: vtkGraph.h:288
int GetNodeSetArrayStatus(const char *name)
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:45
void SetEdgeMapArrayStatus(const char *name, int flag)
int GetNumberOfNodeSetResultArrays()
int GetSideSetArrayStatus(const char *name)
GLuint const GLchar * name
Definition: vtkgl.h:11983
const char * GetNodeSetResultArrayName(int index)
const char * GetElementMapArrayName(int index)
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
void SetElementSetArrayStatus(const char *name, int flag)
static const char * GetObjectIdArrayName()
int GetElementMapArrayStatus(const char *name)
static const char * GetSideSetSourceElementIdArrayName()
const char * GetNodeMapArrayName(int index)
dataset represents arbitrary combinations of all possible cell types
void SetFaceSetArrayStatus(const char *name, int flag)
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
void SetFaceMapArrayStatus(const char *name, int flag)
vtkTimeStamp XMLFileNameMTime
static const char * GetGlobalEdgeIdArrayName()
static const char * GetGlobalFaceIdArrayName()
static const char * GetPedigreeFaceIdArrayName()
#define VTKIOEXODUS_EXPORT
int GetEdgeBlockArrayStatus(const char *name)
int GetObjectArrayStatus(int objectType, const char *arrayName)
static const char * GetPedigreeElementIdArrayName()
#define vtkGetStringMacro(name)
Definition: vtkSetGet.h:120
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:222
const char * GetFaceBlockArrayName(int index)
static const char * GetPedigreeNodeIdArrayName()
const char * GetElementResultArrayName(int index)
void SetSideSetResultArrayStatus(const char *name, int flag)
int GetEdgeSetArrayStatus(const char *name)
const char * GetFaceResultArrayName(int index)
int GetNumberOfElementSetResultArrays()
const char * GetSideSetArrayName(int index)
GLuint64EXT * result
Definition: vtkgl.h:18868
#define vtkGetVector2Macro(name, type)
Definition: vtkSetGet.h:260
int GetNodeMapArrayStatus(const char *name)
static const char * GetPedigreeEdgeIdArrayName()
Read exodus 2 files .ex2.
int GetFaceSetResultArrayStatus(const char *name)
static const char * GetImplicitEdgeIdArrayName()
void SetGlobalResultArrayStatus(const char *name, int flag)
int GetEdgeMapArrayStatus(const char *name)
int GetObjectStatus(int objectType, const char *objectName)
void SetElementBlockArrayStatus(const char *name, int flag)
int GetObjectAttributeStatus(int objectType, int objectIndex, const char *attribName)
void SetObjectAttributeStatus(int objectType, int objectIndex, const char *attribName, int status)
int GetPointResultArrayStatus(const char *name)
const char * GetFaceMapArrayName(int index)
void SetModeShape(int val)
GLboolean GLboolean g
Definition: vtkgl.h:12312
void SetFaceResultArrayStatus(const char *name, int flag)
int GetFaceBlockArrayStatus(const char *name)
GLdouble s
Definition: vtkgl.h:11594
void PrintSelf(ostream &os, vtkIndent indent)
const char * GetPointResultArrayName(int index)
int GetSideSetResultArrayStatus(const char *name)
Store zero or more vtkInformation instances.
#define vtkBooleanMacro(name, type)
Definition: vtkSetGet.h:234
virtual int * GetModeShapesRange()
const char * GetElementBlockArrayName(int index)
int GetFaceSetArrayStatus(const char *name)
void SetElementMapArrayStatus(const char *name, int flag)
static const char * GetGlobalElementIdArrayName()
void SetFaceSetResultArrayStatus(const char *name, int flag)
#define vtkSetVector2Macro(name, type)
Definition: vtkSetGet.h:244
static const char * GetSideSetSourceElementSideArrayName()
represent and manipulate 3D points
Definition: vtkPoints.h:38
const char * GetElementSetResultArrayName(int index)
void SetEdgeSetArrayStatus(const char *name, int flag)
vtkExodusIIReaderPrivate * Metadata
GLuint GLfloat * val
Definition: vtkgl.h:13789
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
#define vtkSetMacro(name, type)
Definition: vtkSetGet.h:69
int GetFaceResultArrayStatus(const char *name)
vtkTimeStamp FileNameMTime