VTK  9.7.1
vtkExodusIIReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
4 
25 #ifndef vtkExodusIIReader_h
26 #define vtkExodusIIReader_h
27 
28 #include "vtkIOExodusModule.h" // For export macro
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class vtkDataArray;
33 class vtkDataSet;
34 class vtkExodusIICache;
36 class vtkFloatArray;
37 class vtkGraph;
39 class vtkIntArray;
40 class vtkPoints;
42 
43 class VTKIOEXODUS_EXPORT vtkExodusIIReader : public vtkMultiBlockDataSetAlgorithm
44 {
45 public:
46  static vtkExodusIIReader* New();
48  void PrintSelf(ostream& os, vtkIndent indent) override;
49 
53  virtual int CanReadFile(VTK_FILEPATH const char* fname);
54 
55  // virtual void Modified();
56 
60  vtkMTimeType GetMTime() override;
61 
67  virtual vtkMTimeType GetMetadataMTime();
68 
70 
73  virtual void SetFileName(VTK_FILEPATH const char* fname);
74  vtkGetFilePathMacro(FileName);
76 
78 
81  virtual void SetXMLFileName(VTK_FILEPATH const char* fname);
82  vtkGetFilePathMacro(XMLFileName);
84 
86 
89  vtkSetMacro(TimeStep, int);
90  vtkGetMacro(TimeStep, int);
92 
97  void SetModeShape(int val) { this->SetTimeStep(val - 1); }
98 
100 
106  vtkGetVector2Macro(ModeShapesRange, int);
108 
110 
115  vtkGetVector2Macro(TimeStepRange, int);
117 
119 
130  virtual void SetGenerateObjectIdCellArray(vtkTypeBool g);
131  vtkTypeBool GetGenerateObjectIdCellArray();
132  vtkBooleanMacro(GenerateObjectIdCellArray, vtkTypeBool);
133  static const char* GetObjectIdArrayName() { return "ObjectId"; }
135 
136  virtual void SetGenerateGlobalElementIdArray(vtkTypeBool g);
137  vtkTypeBool GetGenerateGlobalElementIdArray();
138  vtkBooleanMacro(GenerateGlobalElementIdArray, vtkTypeBool);
139 
140  virtual void SetGenerateGlobalNodeIdArray(vtkTypeBool g);
141  vtkTypeBool GetGenerateGlobalNodeIdArray();
142  vtkBooleanMacro(GenerateGlobalNodeIdArray, vtkTypeBool);
143 
144  virtual void SetGenerateImplicitElementIdArray(vtkTypeBool g);
145  vtkTypeBool GetGenerateImplicitElementIdArray();
146  vtkBooleanMacro(GenerateImplicitElementIdArray, vtkTypeBool);
147 
148  virtual void SetGenerateImplicitNodeIdArray(vtkTypeBool g);
149  vtkTypeBool GetGenerateImplicitNodeIdArray();
150  vtkBooleanMacro(GenerateImplicitNodeIdArray, vtkTypeBool);
151 
152  virtual void SetGenerateFileIdArray(vtkTypeBool f);
153  vtkTypeBool GetGenerateFileIdArray();
154  vtkBooleanMacro(GenerateFileIdArray, vtkTypeBool);
155 
156  virtual void SetFileId(int f);
157  int GetFileId();
158 
160 
166  // NOLINTNEXTLINE(readability-enum-initial-value)
167  enum
168  {
169  SEARCH_TYPE_ELEMENT = 0,
173  ID_NOT_FOUND = -234121312
174  };
175  // NOTE: GetNumberOfObjectTypes must be updated whenever you add an entry to enum ObjectType {...}
177  {
178  // match Exodus macros from exodusII.h and exodusII_ext.h
179  EDGE_BLOCK = 6,
180  FACE_BLOCK = 8,
181  ELEM_BLOCK = 1,
182  NODE_SET = 2,
183  EDGE_SET = 7,
184  FACE_SET = 9,
185  SIDE_SET = 3,
186  ELEM_SET = 10,
187  NODE_MAP = 5,
188  EDGE_MAP = 11,
189  FACE_MAP = 12,
190  ELEM_MAP = 4,
191  GLOBAL = 13,
192  NODAL = 14,
193  // extended values (not in Exodus headers) for use with SetAllArrayStatus:
194  ASSEMBLY = 60,
195  PART = 61,
196  MATERIAL = 62,
197  HIERARCHY = 63,
198  // extended values (not in Exodus headers) for use in cache keys:
199  QA_RECORDS = 103,
200  INFO_RECORDS = 104,
201  GLOBAL_TEMPORAL = 102,
202  NODAL_TEMPORAL = 101,
203  ELEM_BLOCK_TEMPORAL = 100,
204  GLOBAL_CONN = 99,
205  ELEM_BLOCK_ELEM_CONN = 98,
206  ELEM_BLOCK_FACE_CONN =
207  97,
208  ELEM_BLOCK_EDGE_CONN =
209  96,
210  FACE_BLOCK_CONN = 95,
211  EDGE_BLOCK_CONN = 94,
212  ELEM_SET_CONN = 93,
213  SIDE_SET_CONN = 92,
214  FACE_SET_CONN = 91,
215  EDGE_SET_CONN = 90,
216  NODE_SET_CONN = 89,
217  NODAL_COORDS = 88,
218  OBJECT_ID = 87,
219  IMPLICIT_ELEMENT_ID = 108,
220  IMPLICIT_NODE_ID = 107,
221  GLOBAL_ELEMENT_ID =
222  86,
223  GLOBAL_NODE_ID =
224  85,
225  ELEMENT_ID = 84,
226  NODE_ID = 83,
227  NODAL_SQUEEZEMAP = 82,
228  ELEM_BLOCK_ATTRIB = 81,
229  FACE_BLOCK_ATTRIB = 80,
230  EDGE_BLOCK_ATTRIB = 79,
231  FACE_ID = 105,
232  EDGE_ID = 106,
233  ENTITY_COUNTS = 109
234  };
236 
237  static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
238  static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; }
239  static int GetGlobalElementID(vtkDataSet* data, int localID);
240  static int GetGlobalElementID(vtkDataSet* data, int localID, int searchType);
241  static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
242 
243  static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; }
244  static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; }
245  static int GetGlobalFaceID(vtkDataSet* data, int localID);
246  static int GetGlobalFaceID(vtkDataSet* data, int localID, int searchType);
247  static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; }
248 
249  static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; }
250  static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; }
251  static int GetGlobalEdgeID(vtkDataSet* data, int localID);
252  static int GetGlobalEdgeID(vtkDataSet* data, int localID, int searchType);
253  static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; }
254 
256 
262  static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
263  static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; }
264  static int GetGlobalNodeID(vtkDataSet* data, int localID);
265  static int GetGlobalNodeID(vtkDataSet* data, int localID, int searchType);
266  static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
268 
273  static const char* GetSideSetSourceElementIdArrayName() { return "SourceElementId"; }
274 
279  static const char* GetSideSetSourceElementSideArrayName() { return "SourceElementSide"; }
281 
288  virtual void SetApplyDisplacements(vtkTypeBool d);
289  vtkTypeBool GetApplyDisplacements();
290  vtkBooleanMacro(ApplyDisplacements, vtkTypeBool);
291  virtual void SetDisplacementMagnitude(float s);
292  float GetDisplacementMagnitude();
294 
296 
301  virtual void SetHasModeShapes(vtkTypeBool ms);
302  vtkTypeBool GetHasModeShapes();
303  vtkBooleanMacro(HasModeShapes, vtkTypeBool);
305 
307 
314  virtual void SetModeShapeTime(double phase);
315  double GetModeShapeTime();
317 
319 
326  virtual void SetAnimateModeShapes(vtkTypeBool flag);
327  vtkTypeBool GetAnimateModeShapes();
328  vtkBooleanMacro(AnimateModeShapes, vtkTypeBool);
330 
332 
338  virtual void SetIgnoreFileTime(bool flag);
339  bool GetIgnoreFileTime();
340  vtkBooleanMacro(IgnoreFileTime, bool);
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);
366  int GetObjectIndex(int objectType, const char* objectName);
367  int GetObjectIndex(int objectType, int id);
368  int GetObjectStatus(int objectType, int objectIndex);
369  int GetObjectStatus(int objectType, const char* objectName)
370  {
371  return this->GetObjectStatus(objectType, this->GetObjectIndex(objectType, objectName));
372  }
373  void SetObjectStatus(int objectType, int objectIndex, int status);
374  void SetObjectStatus(int objectType, const char* objectName, int status);
375 
377 
383  int GetNumberOfObjectArrays(int objectType);
384  const char* GetObjectArrayName(int objectType, int arrayIndex);
385  int GetObjectArrayIndex(int objectType, const char* arrayName);
386  int GetNumberOfObjectArrayComponents(int objectType, int arrayIndex);
387  int GetObjectArrayStatus(int objectType, int arrayIndex);
388  int GetObjectArrayStatus(int objectType, const char* arrayName)
389  {
390  return this->GetObjectArrayStatus(objectType, this->GetObjectArrayIndex(objectType, arrayName));
391  }
392  void SetObjectArrayStatus(int objectType, int arrayIndex, int status);
393  void SetObjectArrayStatus(int objectType, const char* arrayName, int status);
395 
397 
403  int GetNumberOfObjectAttributes(int objectType, int objectIndex);
404  const char* GetObjectAttributeName(int objectType, int objectIndex, int attribIndex);
405  int GetObjectAttributeIndex(int objectType, int objectIndex, const char* attribName);
406  int GetObjectAttributeStatus(int objectType, int objectIndex, int attribIndex);
407  int GetObjectAttributeStatus(int objectType, int objectIndex, const char* attribName)
408  {
409  return this->GetObjectAttributeStatus(
410  objectType, objectIndex, this->GetObjectAttributeIndex(objectType, objectIndex, attribName));
411  }
412  void SetObjectAttributeStatus(int objectType, int objectIndex, int attribIndex, int status);
413  void SetObjectAttributeStatus(int objectType, int objectIndex, const char* attribName, int status)
414  {
415  this->SetObjectAttributeStatus(objectType, objectIndex,
416  this->GetObjectAttributeIndex(objectType, objectIndex, attribName), status);
417  }
419 
420  virtual vtkIdType GetTotalNumberOfNodes();
421  virtual vtkIdType GetTotalNumberOfEdges();
422  virtual vtkIdType GetTotalNumberOfFaces();
423  virtual vtkIdType GetTotalNumberOfElements();
424 
426 
431  int GetNumberOfPartArrays();
432  const char* GetPartArrayName(int arrayIdx);
433  int GetPartArrayID(const char* name);
434  const char* GetPartBlockInfo(int arrayIdx);
435  void SetPartArrayStatus(int index, int flag);
436  void SetPartArrayStatus(const char*, int flag);
437  int GetPartArrayStatus(int index);
438  int GetPartArrayStatus(const char*);
440 
442 
448  int GetNumberOfMaterialArrays();
449  const char* GetMaterialArrayName(int arrayIdx);
450  int GetMaterialArrayID(const char* name);
451  void SetMaterialArrayStatus(int index, int flag);
452  void SetMaterialArrayStatus(const char*, int flag);
453  int GetMaterialArrayStatus(int index);
454  int GetMaterialArrayStatus(const char*);
456 
458 
464  int GetNumberOfAssemblyArrays();
465  const char* GetAssemblyArrayName(int arrayIdx);
466  int GetAssemblyArrayID(const char* name);
467  void SetAssemblyArrayStatus(int index, int flag);
468  void SetAssemblyArrayStatus(const char*, int flag);
469  int GetAssemblyArrayStatus(int index);
470  int GetAssemblyArrayStatus(const char*);
472 
474 
483  int GetNumberOfHierarchyArrays();
484  const char* GetHierarchyArrayName(int arrayIdx);
485  void SetHierarchyArrayStatus(int index, int flag);
486  void SetHierarchyArrayStatus(const char*, int flag);
487  int GetHierarchyArrayStatus(int index);
488  int GetHierarchyArrayStatus(const char*);
490 
491  vtkGetMacro(DisplayType, int);
492  virtual void SetDisplayType(int type);
493 
497  int IsValidVariable(const char* type, const char* name);
498 
502  int GetVariableID(const char* type, const char* name);
503 
504  void SetAllArrayStatus(int otype, int status);
505  // Helper functions
506  // static int StringsEqual(const char* s1, char* s2);
507  // static void StringUppercase(const char* str, char* upperstr);
508  // static char *StrDupWithNew(const char *s);
509 
510  // time series query functions
511  int GetTimeSeriesData(int ID, const char* vName, const char* vType, vtkFloatArray* result);
512 
513  int GetNumberOfEdgeBlockArrays() { return this->GetNumberOfObjects(EDGE_BLOCK); }
514  const char* GetEdgeBlockArrayName(int index) { return this->GetObjectName(EDGE_BLOCK, index); }
515  int GetEdgeBlockArrayStatus(const char* name) { return this->GetObjectStatus(EDGE_BLOCK, name); }
516  void SetEdgeBlockArrayStatus(const char* name, int flag)
517  {
518  this->SetObjectStatus(EDGE_BLOCK, name, flag);
519  }
520 
521  int GetNumberOfFaceBlockArrays() { return this->GetNumberOfObjects(FACE_BLOCK); }
522  const char* GetFaceBlockArrayName(int index) { return this->GetObjectName(FACE_BLOCK, index); }
523  int GetFaceBlockArrayStatus(const char* name) { return this->GetObjectStatus(FACE_BLOCK, name); }
524  void SetFaceBlockArrayStatus(const char* name, int flag)
525  {
526  this->SetObjectStatus(FACE_BLOCK, name, flag);
527  }
528 
529  int GetNumberOfElementBlockArrays() { return this->GetNumberOfObjects(ELEM_BLOCK); }
530  const char* GetElementBlockArrayName(int index) { return this->GetObjectName(ELEM_BLOCK, index); }
532  {
533  return this->GetObjectStatus(ELEM_BLOCK, name);
534  }
535  void SetElementBlockArrayStatus(const char* name, int flag)
536  {
537  this->SetObjectStatus(ELEM_BLOCK, name, flag);
538  }
539 
540  int GetNumberOfGlobalResultArrays() { return this->GetNumberOfObjectArrays(GLOBAL); }
542  {
543  return this->GetObjectArrayName(GLOBAL, index);
544  }
546  {
547  return this->GetObjectArrayStatus(GLOBAL, name);
548  }
549  void SetGlobalResultArrayStatus(const char* name, int flag)
550  {
551  this->SetObjectArrayStatus(GLOBAL, name, flag);
552  }
553 
554  int GetNumberOfPointResultArrays() { return this->GetNumberOfObjectArrays(NODAL); }
555  const char* GetPointResultArrayName(int index) { return this->GetObjectArrayName(NODAL, index); }
557  {
558  return this->GetObjectArrayStatus(NODAL, name);
559  }
560  void SetPointResultArrayStatus(const char* name, int flag)
561  {
562  this->SetObjectArrayStatus(NODAL, name, flag);
563  }
564 
565  int GetNumberOfEdgeResultArrays() { return this->GetNumberOfObjectArrays(EDGE_BLOCK); }
566  const char* GetEdgeResultArrayName(int index)
567  {
568  return this->GetObjectArrayName(EDGE_BLOCK, index);
569  }
571  {
572  return this->GetObjectArrayStatus(EDGE_BLOCK, name);
573  }
574  void SetEdgeResultArrayStatus(const char* name, int flag)
575  {
576  this->SetObjectArrayStatus(EDGE_BLOCK, name, flag);
577  }
578 
579  int GetNumberOfFaceResultArrays() { return this->GetNumberOfObjectArrays(FACE_BLOCK); }
580  const char* GetFaceResultArrayName(int index)
581  {
582  return this->GetObjectArrayName(FACE_BLOCK, index);
583  }
585  {
586  return this->GetObjectArrayStatus(FACE_BLOCK, name);
587  }
588  void SetFaceResultArrayStatus(const char* name, int flag)
589  {
590  this->SetObjectArrayStatus(FACE_BLOCK, name, flag);
591  }
592 
593  int GetNumberOfElementResultArrays() { return this->GetNumberOfObjectArrays(ELEM_BLOCK); }
595  {
596  return this->GetObjectArrayName(ELEM_BLOCK, index);
597  }
599  {
600  return this->GetObjectArrayStatus(ELEM_BLOCK, name);
601  }
602  void SetElementResultArrayStatus(const char* name, int flag)
603  {
604  this->SetObjectArrayStatus(ELEM_BLOCK, name, flag);
605  }
606 
607  int GetNumberOfNodeMapArrays() { return this->GetNumberOfObjects(NODE_MAP); }
608  const char* GetNodeMapArrayName(int index) { return this->GetObjectName(NODE_MAP, index); }
609  int GetNodeMapArrayStatus(const char* name) { return this->GetObjectStatus(NODE_MAP, name); }
610  void SetNodeMapArrayStatus(const char* name, int flag)
611  {
612  this->SetObjectStatus(NODE_MAP, name, flag);
613  }
614 
615  int GetNumberOfEdgeMapArrays() { return this->GetNumberOfObjects(EDGE_MAP); }
616  const char* GetEdgeMapArrayName(int index) { return this->GetObjectName(EDGE_MAP, index); }
617  int GetEdgeMapArrayStatus(const char* name) { return this->GetObjectStatus(EDGE_MAP, name); }
618  void SetEdgeMapArrayStatus(const char* name, int flag)
619  {
620  this->SetObjectStatus(EDGE_MAP, name, flag);
621  }
622 
623  int GetNumberOfFaceMapArrays() { return this->GetNumberOfObjects(FACE_MAP); }
624  const char* GetFaceMapArrayName(int index) { return this->GetObjectName(FACE_MAP, index); }
625  int GetFaceMapArrayStatus(const char* name) { return this->GetObjectStatus(FACE_MAP, name); }
626  void SetFaceMapArrayStatus(const char* name, int flag)
627  {
628  this->SetObjectStatus(FACE_MAP, name, flag);
629  }
630 
631  int GetNumberOfElementMapArrays() { return this->GetNumberOfObjects(ELEM_MAP); }
632  const char* GetElementMapArrayName(int index) { return this->GetObjectName(ELEM_MAP, index); }
633  int GetElementMapArrayStatus(const char* name) { return this->GetObjectStatus(ELEM_MAP, name); }
634  void SetElementMapArrayStatus(const char* name, int flag)
635  {
636  this->SetObjectStatus(ELEM_MAP, name, flag);
637  }
638 
639  int GetNumberOfNodeSetArrays() { return this->GetNumberOfObjects(NODE_SET); }
640  const char* GetNodeSetArrayName(int index) { return this->GetObjectName(NODE_SET, index); }
641  int GetNodeSetArrayStatus(const char* name) { return this->GetObjectStatus(NODE_SET, name); }
642  void SetNodeSetArrayStatus(const char* name, int flag)
643  {
644  this->SetObjectStatus(NODE_SET, name, flag);
645  }
646 
647  int GetNumberOfSideSetArrays() { return this->GetNumberOfObjects(SIDE_SET); }
648  const char* GetSideSetArrayName(int index) { return this->GetObjectName(SIDE_SET, index); }
649  int GetSideSetArrayStatus(const char* name) { return this->GetObjectStatus(SIDE_SET, name); }
650  void SetSideSetArrayStatus(const char* name, int flag)
651  {
652  this->SetObjectStatus(SIDE_SET, name, flag);
653  }
654 
655  int GetNumberOfEdgeSetArrays() { return this->GetNumberOfObjects(EDGE_SET); }
656  const char* GetEdgeSetArrayName(int index) { return this->GetObjectName(EDGE_SET, index); }
657  int GetEdgeSetArrayStatus(const char* name) { return this->GetObjectStatus(EDGE_SET, name); }
658  void SetEdgeSetArrayStatus(const char* name, int flag)
659  {
660  this->SetObjectStatus(EDGE_SET, name, flag);
661  }
662 
663  int GetNumberOfFaceSetArrays() { return this->GetNumberOfObjects(FACE_SET); }
664  const char* GetFaceSetArrayName(int index) { return this->GetObjectName(FACE_SET, index); }
665  int GetFaceSetArrayStatus(const char* name) { return this->GetObjectStatus(FACE_SET, name); }
666  void SetFaceSetArrayStatus(const char* name, int flag)
667  {
668  this->SetObjectStatus(FACE_SET, name, flag);
669  }
670 
671  int GetNumberOfElementSetArrays() { return this->GetNumberOfObjects(ELEM_SET); }
672  const char* GetElementSetArrayName(int index) { return this->GetObjectName(ELEM_SET, index); }
673  int GetElementSetArrayStatus(const char* name) { return this->GetObjectStatus(ELEM_SET, name); }
674  void SetElementSetArrayStatus(const char* name, int flag)
675  {
676  this->SetObjectStatus(ELEM_SET, name, flag);
677  }
678 
679  int GetNumberOfNodeSetResultArrays() { return this->GetNumberOfObjectArrays(NODE_SET); }
681  {
682  return this->GetObjectArrayName(NODE_SET, index);
683  }
685  {
686  return this->GetObjectArrayStatus(NODE_SET, name);
687  }
688  void SetNodeSetResultArrayStatus(const char* name, int flag)
689  {
690  this->SetObjectArrayStatus(NODE_SET, name, flag);
691  }
692 
693  int GetNumberOfSideSetResultArrays() { return this->GetNumberOfObjectArrays(SIDE_SET); }
695  {
696  return this->GetObjectArrayName(SIDE_SET, index);
697  }
699  {
700  return this->GetObjectArrayStatus(SIDE_SET, name);
701  }
702  void SetSideSetResultArrayStatus(const char* name, int flag)
703  {
704  this->SetObjectArrayStatus(SIDE_SET, name, flag);
705  }
706 
707  int GetNumberOfEdgeSetResultArrays() { return this->GetNumberOfObjectArrays(EDGE_SET); }
709  {
710  return this->GetObjectArrayName(EDGE_SET, index);
711  }
713  {
714  return this->GetObjectArrayStatus(EDGE_SET, name);
715  }
716  void SetEdgeSetResultArrayStatus(const char* name, int flag)
717  {
718  this->SetObjectArrayStatus(EDGE_SET, name, flag);
719  }
720 
721  int GetNumberOfFaceSetResultArrays() { return this->GetNumberOfObjectArrays(FACE_SET); }
723  {
724  return this->GetObjectArrayName(FACE_SET, index);
725  }
727  {
728  return this->GetObjectArrayStatus(FACE_SET, name);
729  }
730  void SetFaceSetResultArrayStatus(const char* name, int flag)
731  {
732  this->SetObjectArrayStatus(FACE_SET, name, flag);
733  }
734 
735  int GetNumberOfElementSetResultArrays() { return this->GetNumberOfObjectArrays(ELEM_SET); }
737  {
738  return this->GetObjectArrayName(ELEM_SET, index);
739  }
741  {
742  return this->GetObjectArrayStatus(ELEM_SET, name);
743  }
744  void SetElementSetResultArrayStatus(const char* name, int flag)
745  {
746  this->SetObjectArrayStatus(ELEM_SET, name, flag);
747  }
748 
757  void Reset();
758 
767  void ResetSettings();
768 
772  void ResetCache();
773 
777  void SetCacheSize(double CacheSize);
778 
782  double GetCacheSize();
783 
785 
797  void SetSqueezePoints(bool sp);
798  bool GetSqueezePoints();
800 
801  virtual void Dump();
802 
807  vtkGraph* GetSIL();
808 
810 
813  vtkGetMacro(SILUpdateStamp, int);
815 
817 
821  int GetMaxNameLength();
823 
825 
834  static vtkInformationIntegerKey* GLOBAL_VARIABLE();
835  static vtkInformationIntegerKey* GLOBAL_TEMPORAL_VARIABLE();
837 
839 
846  vtkSetMacro(UseLegacyBlockNames, bool);
847  vtkGetMacro(UseLegacyBlockNames, bool);
848  vtkBooleanMacro(UseLegacyBlockNames, bool);
850 protected:
852  ~vtkExodusIIReader() override;
853 
854  // helper for finding IDs
855  static int GetIDHelper(const char* arrayName, vtkDataSet* data, int localID, int searchType);
856  static int GetGlobalID(const char* arrayName, vtkDataSet* data, int localID, int searchType);
857 
858  virtual void SetMetadata(vtkExodusIIReaderPrivate*);
859  vtkGetObjectMacro(Metadata, vtkExodusIIReaderPrivate);
860 
865  bool FindXMLFile();
866 
867  // Time query function. Called by ExecuteInformation().
868  // Fills the TimestepValues array.
869  void GetAllTimes(vtkInformationVector*);
870 
874  void AdvertiseTimeSteps(vtkInformation* outputInfo);
875 
880  // int RequestDataOverTime( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
881 
882  // Parameters for controlling what is read in.
883  char* FileName;
884  char* XMLFileName;
885  int TimeStep;
886  int TimeStepRange[2];
889 
890  // Information specific for exodus files.
891 
892  // 1=display Block names
893  // 2=display Part names
894  // 3=display Material names
896 
897  // Metadata containing a description of the currently open file.
899 
901 
902  friend class vtkPExodusIIReader;
903 
904 private:
905  vtkExodusIIReader(const vtkExodusIIReader&) = delete;
906  void operator=(const vtkExodusIIReader&) = delete;
907 
908  void AddDisplacements(vtkUnstructuredGrid* output);
909  int ModeShapesRange[2];
910 
911  bool UseLegacyBlockNames;
912 };
913 
914 VTK_ABI_NAMESPACE_END
915 #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:318
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:56
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:24
int GetElementSetResultArrayStatus(const char *name)
int GetElementBlockArrayStatus(const char *name)
const char * GetElementSetArrayName(int index)
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:31
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)
ObjectType
Extra cell data array that can be generated.
int vtkIdType
Definition: vtkType.h:363
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.
int vtkTypeBool
Definition: vtkABI.h:64
Base class for graph data types.
Definition: vtkGraph.h:282
int GetNodeSetArrayStatus(const char *name)
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:35
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:28
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...
Key for integer values in vtkInformation.
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:44
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()
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
static const char * GetPedigreeFaceIdArrayName()
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)
void SetSideSetResultArrayStatus(const char *name, int flag)
int GetEdgeSetArrayStatus(const char *name)
const char * GetFaceResultArrayName(int index)
virtual std::string GetObjectName() const
Set/get the name of this object for reporting purposes.
#define VTK_FILEPATH
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 SetModeShape(int val)
Convenience method to set the mode-shape which is same as this->SetTimeStep(val-1);.
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.
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:30
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