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 
40 #ifndef vtkExodusIIReader_h
41 #define vtkExodusIIReader_h
42 
43 #include "vtkIOExodusModule.h" // For export macro
45 
46 class vtkDataArray;
47 class vtkDataSet;
48 class vtkExodusIICache;
50 class vtkFloatArray;
51 class vtkGraph;
52 class vtkIntArray;
53 class vtkPoints;
55 
56 class VTKIOEXODUS_EXPORT vtkExodusIIReader : public vtkMultiBlockDataSetAlgorithm
57 {
58 public:
59  static vtkExodusIIReader *New();
61  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
62 
66  virtual int CanReadFile(const char* fname);
67 
68  //virtual void Modified();
69 
73  vtkMTimeType GetMTime() VTK_OVERRIDE;
74 
80  virtual vtkMTimeType GetMetadataMTime();
81 
83 
86  virtual void SetFileName( const char* fname );
87  vtkGetStringMacro(FileName);
89 
91 
94  virtual void SetXMLFileName( const char* fname );
95  vtkGetStringMacro(XMLFileName);
97 
99 
102  vtkSetMacro(TimeStep, int);
103  vtkGetMacro(TimeStep, int);
105 
110  void SetModeShape(int val)
111  {
112  this->SetTimeStep(val-1);
113  }
114 
116 
122  vtkGetVector2Macro(ModeShapesRange, int);
124 
126 
131  vtkGetVector2Macro(TimeStepRange,int);
133 
135 
146  virtual void SetGenerateObjectIdCellArray( int g );
147  int GetGenerateObjectIdCellArray();
148  vtkBooleanMacro(GenerateObjectIdCellArray, int);
149  static const char *GetObjectIdArrayName() { return "ObjectId"; }
151 
152  virtual void SetGenerateGlobalElementIdArray( int g );
153  int GetGenerateGlobalElementIdArray();
154  vtkBooleanMacro(GenerateGlobalElementIdArray, int);
155 
156  virtual void SetGenerateGlobalNodeIdArray( int g );
157  int GetGenerateGlobalNodeIdArray();
158  vtkBooleanMacro(GenerateGlobalNodeIdArray, int);
159 
160  virtual void SetGenerateImplicitElementIdArray( int g );
161  int GetGenerateImplicitElementIdArray();
162  vtkBooleanMacro(GenerateImplicitElementIdArray, int);
163 
164  virtual void SetGenerateImplicitNodeIdArray( int g );
165  int GetGenerateImplicitNodeIdArray();
166  vtkBooleanMacro(GenerateImplicitNodeIdArray, int);
167 
168  virtual void SetGenerateFileIdArray( int f );
169  int GetGenerateFileIdArray();
170  vtkBooleanMacro(GenerateFileIdArray, int);
171  virtual void SetFileId( int f );
172  int GetFileId();
173 
175 
181  enum {
182  SEARCH_TYPE_ELEMENT=0,
186  ID_NOT_FOUND=-234121312
187  };
188  // NOTE: GetNumberOfObjectTypes must be updated whenever you add an entry to enum ObjectType {...}
189  enum ObjectType {
190  // match Exodus macros from exodusII.h and exodusII_ext.h
191  EDGE_BLOCK = 6,
192  FACE_BLOCK = 8,
193  ELEM_BLOCK = 1,
194  NODE_SET = 2,
195  EDGE_SET = 7,
196  FACE_SET = 9,
197  SIDE_SET = 3,
198  ELEM_SET = 10,
199  NODE_MAP = 5,
200  EDGE_MAP = 11,
201  FACE_MAP = 12,
202  ELEM_MAP = 4,
203  GLOBAL = 13,
204  NODAL = 14,
205  // extended values (not in Exodus headers) for use with SetAllArrayStatus:
206  ASSEMBLY = 60,
207  PART = 61,
208  MATERIAL = 62,
209  HIERARCHY = 63,
210  // extended values (not in Exodus headers) for use in cache keys:
211  QA_RECORDS = 103,
212  INFO_RECORDS = 104,
213  GLOBAL_TEMPORAL = 102,
214  NODAL_TEMPORAL = 101,
215  ELEM_BLOCK_TEMPORAL = 100,
216  GLOBAL_CONN = 99,
217  ELEM_BLOCK_ELEM_CONN = 98,
218  ELEM_BLOCK_FACE_CONN = 97,
219  ELEM_BLOCK_EDGE_CONN = 96,
220  FACE_BLOCK_CONN = 95,
221  EDGE_BLOCK_CONN = 94,
222  ELEM_SET_CONN = 93,
223  SIDE_SET_CONN = 92,
224  FACE_SET_CONN = 91,
225  EDGE_SET_CONN = 90,
226  NODE_SET_CONN = 89,
227  NODAL_COORDS = 88,
228  OBJECT_ID = 87,
229  IMPLICIT_ELEMENT_ID = 108,
230  IMPLICIT_NODE_ID = 107,
231  GLOBAL_ELEMENT_ID = 86,
232  GLOBAL_NODE_ID = 85,
233  ELEMENT_ID = 84,
234  NODE_ID = 83,
235  NODAL_SQUEEZEMAP = 82,
236  ELEM_BLOCK_ATTRIB = 81,
237  FACE_BLOCK_ATTRIB = 80,
238  EDGE_BLOCK_ATTRIB = 79,
239  FACE_ID = 105,
240  EDGE_ID = 106,
241  ENTITY_COUNTS = 109
242  };
244 
245  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
246  static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; }
247  static int GetGlobalElementID( vtkDataSet *data, int localID );
248  static int GetGlobalElementID ( vtkDataSet *data, int localID,
249  int searchType );
250  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
251 
252  static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; }
253  static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; }
254  static int GetGlobalFaceID( vtkDataSet *data, int localID );
255  static int GetGlobalFaceID ( vtkDataSet *data, int localID,
256  int searchType );
257  static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; }
258 
259  static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; }
260  static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; }
261  static int GetGlobalEdgeID( vtkDataSet *data, int localID );
262  static int GetGlobalEdgeID ( vtkDataSet *data, int localID,
263  int searchType );
264  static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; }
265 
267 
273  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
274  static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; }
275  static int GetGlobalNodeID( vtkDataSet *data, int localID );
276  static int GetGlobalNodeID( vtkDataSet *data, int localID,
277  int searchType );
278  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
280 
285  static const char* GetSideSetSourceElementIdArrayName() { return "SourceElementId"; }
286 
291  static const char* GetSideSetSourceElementSideArrayName() { return "SourceElementSide"; }
293 
300  virtual void SetApplyDisplacements( int d );
301  int GetApplyDisplacements();
302  vtkBooleanMacro(ApplyDisplacements, int);
303  virtual void SetDisplacementMagnitude( float s );
304  float GetDisplacementMagnitude();
306 
308 
313  virtual void SetHasModeShapes( int ms );
314  int GetHasModeShapes();
315  vtkBooleanMacro(HasModeShapes,int);
317 
319 
326  virtual void SetModeShapeTime( double phase );
327  double GetModeShapeTime();
329 
331 
338  virtual void SetAnimateModeShapes(int flag);
339  int GetAnimateModeShapes();
340  vtkBooleanMacro(AnimateModeShapes, int);
342 
344 
347  const char* GetTitle();
348  int GetDimensionality();
349  int GetNumberOfTimeSteps();
351 
352  int GetNumberOfNodesInFile();
353  int GetNumberOfEdgesInFile();
354  int GetNumberOfFacesInFile();
355  int GetNumberOfElementsInFile();
356 
357  int GetObjectTypeFromName( const char* name );
358  const char* GetObjectTypeName( int );
359 
360  int GetNumberOfNodes();
361  int GetNumberOfObjects( int objectType );
362  int GetNumberOfEntriesInObject( int objectType, int objectIndex );
363  int GetObjectId( int objectType, int objectIndex );
364  const char* GetObjectName( int objectType, int objectIndex );
365  int GetObjectIndex( int objectType, const char* objectName );
366  int GetObjectIndex( int objectType, int id );
367  int GetObjectStatus( int objectType, int objectIndex );
368  int GetObjectStatus( int objectType, const char* objectName )
369  { return this->GetObjectStatus( objectType, this->GetObjectIndex( objectType, objectName ) ); }
370  void SetObjectStatus( int objectType, int objectIndex, int status );
371  void SetObjectStatus( int objectType, const char* objectName, int status );
372 
374 
380  int GetNumberOfObjectArrays( int objectType );
381  const char* GetObjectArrayName( int objectType, int arrayIndex );
382  int GetObjectArrayIndex( int objectType, const char* arrayName );
383  int GetNumberOfObjectArrayComponents( int objectType, int arrayIndex );
384  int GetObjectArrayStatus( int objectType, int arrayIndex );
385  int GetObjectArrayStatus( int objectType, const char* arrayName )
386  { return this->GetObjectArrayStatus( objectType, this->GetObjectArrayIndex( objectType, arrayName ) ); }
387  void SetObjectArrayStatus( int objectType, int arrayIndex, int status );
388  void SetObjectArrayStatus( int objectType, const char* arrayName, int status );
390 
392 
398  int GetNumberOfObjectAttributes( int objectType, int objectIndex );
399  const char* GetObjectAttributeName( int objectType, int objectIndex, int attribIndex );
400  int GetObjectAttributeIndex( int objectType, int objectIndex, const char* attribName );
401  int GetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex );
402  int GetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName )
403  { return this->GetObjectAttributeStatus( objectType, objectIndex,
404  this->GetObjectAttributeIndex( objectType, objectIndex, attribName ) ); }
405  void SetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex, int status );
406  void SetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName, int status )
407  { this->SetObjectAttributeStatus( objectType, objectIndex,
408  this->GetObjectAttributeIndex( objectType, objectIndex, attribName ), status ); }
410 
411  virtual vtkIdType GetTotalNumberOfNodes();
412  virtual vtkIdType GetTotalNumberOfEdges();
413  virtual vtkIdType GetTotalNumberOfFaces();
414  virtual vtkIdType GetTotalNumberOfElements();
415 
417 
422  int GetNumberOfPartArrays();
423  const char* GetPartArrayName(int arrayIdx);
424  int GetPartArrayID( const char *name );
425  const char* GetPartBlockInfo(int arrayIdx);
426  void SetPartArrayStatus(int index, int flag);
427  void SetPartArrayStatus(const char*, int flag);
428  int GetPartArrayStatus(int index);
429  int GetPartArrayStatus(const char*);
431 
432 
434 
440  int GetNumberOfMaterialArrays();
441  const char* GetMaterialArrayName(int arrayIdx);
442  int GetMaterialArrayID( const char *name );
443  void SetMaterialArrayStatus(int index, int flag);
444  void SetMaterialArrayStatus(const char*, int flag);
445  int GetMaterialArrayStatus(int index);
446  int GetMaterialArrayStatus(const char*);
448 
450 
456  int GetNumberOfAssemblyArrays();
457  const char* GetAssemblyArrayName(int arrayIdx);
458  int GetAssemblyArrayID( const char *name );
459  void SetAssemblyArrayStatus(int index, int flag);
460  void SetAssemblyArrayStatus(const char*, int flag);
461  int GetAssemblyArrayStatus(int index);
462  int GetAssemblyArrayStatus(const char*);
464 
466 
475  int GetNumberOfHierarchyArrays();
476  const char* GetHierarchyArrayName(int arrayIdx);
477  void SetHierarchyArrayStatus(int index, int flag);
478  void SetHierarchyArrayStatus(const char*, int flag);
479  int GetHierarchyArrayStatus(int index);
480  int GetHierarchyArrayStatus(const char*);
482 
483  vtkGetMacro(DisplayType,int);
484  virtual void SetDisplayType(int type);
485 
489  int IsValidVariable( const char *type, const char *name );
490 
494  int GetVariableID ( const char *type, const char *name );
495 
496  void SetAllArrayStatus( int otype, int status );
497  // Helper functions
498  //static int StringsEqual(const char* s1, char* s2);
499  //static void StringUppercase(const char* str, char* upperstr);
500  //static char *StrDupWithNew(const char *s);
501 
502  // time series query functions
503  int GetTimeSeriesData( int ID, const char *vName, const char *vType,
504  vtkFloatArray *result );
505 
506 
507 
509  { return this->GetNumberOfObjects(EDGE_BLOCK); }
510  const char* GetEdgeBlockArrayName(int index)
511  { return this->GetObjectName(EDGE_BLOCK, index); }
512  int GetEdgeBlockArrayStatus(const char* name)
513  { return this->GetObjectStatus(EDGE_BLOCK, name); }
514  void SetEdgeBlockArrayStatus(const char* name, int flag)
515  { this->SetObjectStatus(EDGE_BLOCK, name, flag); }
516 
518  { return this->GetNumberOfObjects(FACE_BLOCK); }
519  const char* GetFaceBlockArrayName(int index)
520  { return this->GetObjectName(FACE_BLOCK, index); }
521  int GetFaceBlockArrayStatus(const char* name)
522  { return this->GetObjectStatus(FACE_BLOCK, name); }
523  void SetFaceBlockArrayStatus(const char* name, int flag)
524  { this->SetObjectStatus(FACE_BLOCK, name, flag); }
525 
527  { return this->GetNumberOfObjects(ELEM_BLOCK); }
528  const char* GetElementBlockArrayName(int index)
529  { return this->GetObjectName(ELEM_BLOCK, index); }
530  int GetElementBlockArrayStatus(const char* name)
531  { return this->GetObjectStatus(ELEM_BLOCK, name); }
532  void SetElementBlockArrayStatus(const char* name, int flag)
533  { this->SetObjectStatus(ELEM_BLOCK, name, flag); }
534 
536  { return this->GetNumberOfObjectArrays(GLOBAL); }
537  const char* GetGlobalResultArrayName(int index)
538  { return this->GetObjectArrayName(GLOBAL, index); }
539  int GetGlobalResultArrayStatus(const char* name)
540  { return this->GetObjectArrayStatus(GLOBAL, name); }
541  void SetGlobalResultArrayStatus(const char* name, int flag)
542  { this->SetObjectArrayStatus(GLOBAL, name, flag); }
543 
545  { return this->GetNumberOfObjectArrays(NODAL); }
546  const char* GetPointResultArrayName(int index)
547  { return this->GetObjectArrayName(NODAL, index); }
548  int GetPointResultArrayStatus(const char* name)
549  { return this->GetObjectArrayStatus(NODAL, name); }
550  void SetPointResultArrayStatus(const char* name, int flag)
551  { this->SetObjectArrayStatus(NODAL, name, flag); }
552 
554  { return this->GetNumberOfObjectArrays(EDGE_BLOCK); }
555  const char* GetEdgeResultArrayName(int index)
556  { return this->GetObjectArrayName(EDGE_BLOCK, index); }
557  int GetEdgeResultArrayStatus(const char* name)
558  { return this->GetObjectArrayStatus(EDGE_BLOCK, name); }
559  void SetEdgeResultArrayStatus(const char* name, int flag)
560  { this->SetObjectArrayStatus(EDGE_BLOCK, name, flag); }
561 
563  { return this->GetNumberOfObjectArrays(FACE_BLOCK); }
564  const char* GetFaceResultArrayName(int index)
565  { return this->GetObjectArrayName(FACE_BLOCK, index); }
566  int GetFaceResultArrayStatus(const char* name)
567  { return this->GetObjectArrayStatus(FACE_BLOCK, name); }
568  void SetFaceResultArrayStatus(const char* name, int flag)
569  { this->SetObjectArrayStatus(FACE_BLOCK, name, flag); }
570 
572  { return this->GetNumberOfObjectArrays(ELEM_BLOCK); }
573  const char* GetElementResultArrayName(int index)
574  { return this->GetObjectArrayName(ELEM_BLOCK, index); }
575  int GetElementResultArrayStatus(const char* name)
576  { return this->GetObjectArrayStatus(ELEM_BLOCK, name); }
577  void SetElementResultArrayStatus(const char* name, int flag)
578  { this->SetObjectArrayStatus(ELEM_BLOCK, name, flag); }
579 
580 
582  { return this->GetNumberOfObjects(NODE_MAP); }
583  const char* GetNodeMapArrayName(int index)
584  { return this->GetObjectName(NODE_MAP, index); }
585  int GetNodeMapArrayStatus(const char* name)
586  { return this->GetObjectStatus(NODE_MAP, name); }
587  void SetNodeMapArrayStatus(const char* name, int flag)
588  { this->SetObjectStatus(NODE_MAP, name, flag); }
589 
591  { return this->GetNumberOfObjects(EDGE_MAP); }
592  const char* GetEdgeMapArrayName(int index)
593  { return this->GetObjectName(EDGE_MAP, index); }
594  int GetEdgeMapArrayStatus(const char* name)
595  { return this->GetObjectStatus(EDGE_MAP, name); }
596  void SetEdgeMapArrayStatus(const char* name, int flag)
597  { this->SetObjectStatus(EDGE_MAP, name, flag); }
598 
600  { return this->GetNumberOfObjects(FACE_MAP); }
601  const char* GetFaceMapArrayName(int index)
602  { return this->GetObjectName(FACE_MAP, index); }
603  int GetFaceMapArrayStatus(const char* name)
604  { return this->GetObjectStatus(FACE_MAP, name); }
605  void SetFaceMapArrayStatus(const char* name, int flag)
606  { this->SetObjectStatus(FACE_MAP, name, flag); }
607 
609  { return this->GetNumberOfObjects(ELEM_MAP); }
610  const char* GetElementMapArrayName(int index)
611  { return this->GetObjectName(ELEM_MAP, index); }
612  int GetElementMapArrayStatus(const char* name)
613  { return this->GetObjectStatus(ELEM_MAP, name); }
614  void SetElementMapArrayStatus(const char* name, int flag)
615  { this->SetObjectStatus(ELEM_MAP, name, flag); }
616 
618  { return this->GetNumberOfObjects(NODE_SET); }
619  const char* GetNodeSetArrayName(int index)
620  { return this->GetObjectName(NODE_SET, index); }
621  int GetNodeSetArrayStatus(const char* name)
622  { return this->GetObjectStatus(NODE_SET, name); }
623  void SetNodeSetArrayStatus(const char* name, int flag)
624  { this->SetObjectStatus(NODE_SET, name, flag); }
625 
627  { return this->GetNumberOfObjects(SIDE_SET); }
628  const char* GetSideSetArrayName(int index)
629  { return this->GetObjectName(SIDE_SET, index); }
630  int GetSideSetArrayStatus(const char* name)
631  { return this->GetObjectStatus(SIDE_SET, name); }
632  void SetSideSetArrayStatus(const char* name, int flag)
633  { this->SetObjectStatus(SIDE_SET, name, flag); }
634 
636  { return this->GetNumberOfObjects(EDGE_SET); }
637  const char* GetEdgeSetArrayName(int index)
638  { return this->GetObjectName(EDGE_SET, index); }
639  int GetEdgeSetArrayStatus(const char* name)
640  { return this->GetObjectStatus(EDGE_SET, name); }
641  void SetEdgeSetArrayStatus(const char* name, int flag)
642  { this->SetObjectStatus(EDGE_SET, name, flag); }
643 
645  { return this->GetNumberOfObjects(FACE_SET); }
646  const char* GetFaceSetArrayName(int index)
647  { return this->GetObjectName(FACE_SET, index); }
648  int GetFaceSetArrayStatus(const char* name)
649  { return this->GetObjectStatus(FACE_SET, name); }
650  void SetFaceSetArrayStatus(const char* name, int flag)
651  { this->SetObjectStatus(FACE_SET, name, flag); }
652 
654  { return this->GetNumberOfObjects(ELEM_SET); }
655  const char* GetElementSetArrayName(int index)
656  { return this->GetObjectName(ELEM_SET, index); }
657  int GetElementSetArrayStatus(const char* name)
658  { return this->GetObjectStatus(ELEM_SET, name); }
659  void SetElementSetArrayStatus(const char* name, int flag)
660  { this->SetObjectStatus(ELEM_SET, name, flag); }
661 
662 
664  { return this->GetNumberOfObjectArrays(NODE_SET); }
665  const char* GetNodeSetResultArrayName(int index)
666  { return this->GetObjectArrayName(NODE_SET, index); }
667  int GetNodeSetResultArrayStatus(const char* name)
668  { return this->GetObjectArrayStatus(NODE_SET, name); }
669  void SetNodeSetResultArrayStatus(const char* name, int flag)
670  { this->SetObjectArrayStatus(NODE_SET, name, flag); }
671 
673  { return this->GetNumberOfObjectArrays(SIDE_SET); }
674  const char* GetSideSetResultArrayName(int index)
675  { return this->GetObjectArrayName(SIDE_SET, index); }
676  int GetSideSetResultArrayStatus(const char* name)
677  { return this->GetObjectArrayStatus(SIDE_SET, name); }
678  void SetSideSetResultArrayStatus(const char* name, int flag)
679  { this->SetObjectArrayStatus(SIDE_SET, name, flag); }
680 
682  { return this->GetNumberOfObjectArrays(EDGE_SET); }
683  const char* GetEdgeSetResultArrayName(int index)
684  { return this->GetObjectArrayName(EDGE_SET, index); }
685  int GetEdgeSetResultArrayStatus(const char* name)
686  { return this->GetObjectArrayStatus(EDGE_SET, name); }
687  void SetEdgeSetResultArrayStatus(const char* name, int flag)
688  { this->SetObjectArrayStatus(EDGE_SET, name, flag); }
689 
691  { return this->GetNumberOfObjectArrays(FACE_SET); }
692  const char* GetFaceSetResultArrayName(int index)
693  { return this->GetObjectArrayName(FACE_SET, index); }
694  int GetFaceSetResultArrayStatus(const char* name)
695  { return this->GetObjectArrayStatus(FACE_SET, name); }
696  void SetFaceSetResultArrayStatus(const char* name, int flag)
697  { this->SetObjectArrayStatus(FACE_SET, name, flag); }
698 
700  { return this->GetNumberOfObjectArrays(ELEM_SET); }
701  const char* GetElementSetResultArrayName(int index)
702  { return this->GetObjectArrayName(ELEM_SET, index); }
703  int GetElementSetResultArrayStatus(const char* name)
704  { return this->GetObjectArrayStatus(ELEM_SET, name); }
705  void SetElementSetResultArrayStatus(const char* name, int flag)
706  { this->SetObjectArrayStatus(ELEM_SET, name, flag); }
707 
716  void Reset();
717 
726  void ResetSettings();
727 
731  void ResetCache();
732 
736  void SetCacheSize(double CacheSize);
737 
741  double GetCacheSize();
742 
744 
756  void SetSqueezePoints(bool sp);
757  bool GetSqueezePoints();
759 
760  virtual void Dump();
761 
766  vtkGraph* GetSIL();
767 
769 
772  vtkGetMacro(SILUpdateStamp, int);
774 
776 
780  int GetMaxNameLength();
782 
783 protected:
785  ~vtkExodusIIReader() VTK_OVERRIDE;
786 
787  // helper for finding IDs
788  static int GetIDHelper ( const char *arrayName, vtkDataSet *data, int localID, int searchType );
789  static int GetGlobalID( const char *arrayName, vtkDataSet *data, int localID, int searchType );
790 
791  virtual void SetMetadata( vtkExodusIIReaderPrivate* );
792  vtkGetObjectMacro(Metadata,vtkExodusIIReaderPrivate);
793 
803  bool FindXMLFile();
804 
805  // Time query function. Called by ExecuteInformation().
806  // Fills the TimestepValues array.
807  void GetAllTimes(vtkInformationVector*);
808 
812  void AdvertiseTimeSteps( vtkInformation* outputInfo );
813 
817  //int RequestDataOverTime( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
818 
819  // Parameters for controlling what is read in.
820  char* FileName;
821  char* XMLFileName;
822  int TimeStep;
823  int TimeStepRange[2];
826 
827  // Information specific for exodus files.
828 
829  //1=display Block names
830  //2=display Part names
831  //3=display Material names
833 
834  // Metadata containing a description of the currently open file.
836 
838 
839  friend class vtkPExodusIIReader;
840 private:
841  vtkExodusIIReader(const vtkExodusIIReader&) VTK_DELETE_FUNCTION;
842  void operator=(const vtkExodusIIReader&) VTK_DELETE_FUNCTION;
843 
844  void AddDisplacements(vtkUnstructuredGrid* output);
845  int ModeShapesRange[2];
846 };
847 
848 #endif
const char * GetEdgeResultArrayName(int index)
static const char * GetGlobalNodeIdArrayName()
Extra point data array that can be generated.
const char * GetSideSetResultArrayName(int index)
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)
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300
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:62
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)
record modification and/or execution time
Definition: vtkTimeStamp.h:35
int GetElementSetResultArrayStatus(const char *name)
int GetElementBlockArrayStatus(const char *name)
const char * GetElementSetArrayName(int index)
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:41
int GetNumberOfFaceSetResultArrays()
const char * GetFaceSetResultArrayName(int index)
const char * GetFaceSetArrayName(int index)
int GetNumberOfEdgeSetResultArrays()
int GetNumberOfElementResultArrays()
int GetElementResultArrayStatus(const char *name)
int ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
void SetElementResultArrayStatus(const char *name, int flag)
int GetEdgeResultArrayStatus(const char *name)
ObjectType
Extra cell data array that can be generated.
int vtkIdType
Definition: vtkType.h:345
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 *)
This is called by the superclass.
const char * GetEdgeMapArrayName(int index)
int GetNodeSetResultArrayStatus(const char *name)
void SetFaceBlockArrayStatus(const char *name, int flag)
const char * GetGlobalResultArrayName(int index)
int GetNumberOfSideSetResultArrays()
int GetElementSetArrayStatus(const char *name)
static vtkMultiBlockDataSetAlgorithm * New()
static const char * GetImplicitNodeIdArrayName()
Extra point data array that can be generated.
Base class for graph data types.
Definition: vtkGraph.h:287
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)
const char * GetNodeSetResultArrayName(int index)
const char * GetElementMapArrayName(int index)
a simple class to control print indentation
Definition: vtkIndent.h:39
void SetElementSetArrayStatus(const char *name, int flag)
static const char * GetObjectIdArrayName()
Extra cell data array that can be generated.
Read Exodus II files (.exii)
int GetElementMapArrayStatus(const char *name)
static const char * GetSideSetSourceElementIdArrayName()
Get the name of the array that stores the mapping from side set cells back to the global id of the el...
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:54
virtual vtkMTimeType GetMTime()
Return this object's modified time.
void SetFaceMapArrayStatus(const char *name, int flag)
vtkTimeStamp XMLFileNameMTime
static const char * GetGlobalEdgeIdArrayName()
static const char * GetGlobalFaceIdArrayName()
static const char * GetPedigreeFaceIdArrayName()
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int GetEdgeBlockArrayStatus(const char *name)
int GetObjectArrayStatus(int objectType, const char *arrayName)
By default arrays are not loaded.
static const char * GetPedigreeElementIdArrayName()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const char * GetFaceBlockArrayName(int index)
static const char * GetPedigreeNodeIdArrayName()
Extra point data array that can be generated.
const char * GetElementResultArrayName(int index)
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetSideSetResultArrayStatus(const char *name, int flag)
int GetEdgeSetArrayStatus(const char *name)
const char * GetFaceResultArrayName(int index)
int GetNumberOfElementSetResultArrays()
const char * GetSideSetArrayName(int index)
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)
By default attributes are not loaded.
void SetObjectAttributeStatus(int objectType, int objectIndex, const char *attribName, int status)
By default attributes are not loaded.
int GetPointResultArrayStatus(const char *name)
const char * GetFaceMapArrayName(int index)
void SetFaceResultArrayStatus(const char *name, int flag)
int GetFaceBlockArrayStatus(const char *name)
const char * GetPointResultArrayName(int index)
int GetSideSetResultArrayStatus(const char *name)
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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)
static const char * GetSideSetSourceElementSideArrayName()
Get the name of the array that stores the mapping from side set cells back to the canonical side of t...
represent and manipulate 3D points
Definition: vtkPoints.h:39
const char * GetElementSetResultArrayName(int index)
void SetEdgeSetArrayStatus(const char *name, int flag)
vtkExodusIIReaderPrivate * Metadata
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
int GetFaceResultArrayStatus(const char *name)
vtkTimeStamp FileNameMTime