00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00039 #ifndef __vtkExodusIIReader_h
00040 #define __vtkExodusIIReader_h
00041
00042 #include "vtkMultiBlockDataSetAlgorithm.h"
00043
00044 class vtkDataArray;
00045 class vtkDataSet;
00046 class vtkExodusIICache;
00047 class vtkExodusIIReaderPrivate;
00048 class vtkExodusModel;
00049 class vtkFloatArray;
00050 class vtkGraph;
00051 class vtkIntArray;
00052 class vtkPoints;
00053 class vtkUnstructuredGrid;
00054
00055 class VTK_HYBRID_EXPORT vtkExodusIIReader : public vtkMultiBlockDataSetAlgorithm
00056 {
00057 public:
00058 static vtkExodusIIReader *New();
00059 vtkTypeMacro(vtkExodusIIReader,vtkMultiBlockDataSetAlgorithm);
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00063 int CanReadFile(const char* fname);
00064
00065
00066
00069 virtual unsigned long GetMTime();
00070
00074 virtual unsigned long GetMetadataMTime();
00075
00077
00078 virtual void SetFileName( const char* fname );
00079 vtkGetStringMacro(FileName);
00081
00083
00084 virtual void SetXMLFileName( const char* fname );
00085 vtkGetStringMacro(XMLFileName);
00087
00089
00090 vtkSetMacro(TimeStep, int);
00091 vtkGetMacro(TimeStep, int);
00093
00095
00097 void SetModeShape(int val)
00098 {
00099 this->SetTimeStep(val-1);
00100 }
00102
00104
00105 vtkGetVector2Macro(TimeStepRange,int);
00106 vtkSetVector2Macro(TimeStepRange,int);
00108
00110
00119 virtual void SetGenerateObjectIdCellArray( int g );
00120 int GetGenerateObjectIdCellArray();
00121 vtkBooleanMacro(GenerateObjectIdCellArray, int);
00122 static const char *GetObjectIdArrayName() { return "ObjectId"; }
00124
00125 virtual void SetGenerateGlobalElementIdArray( int g );
00126 int GetGenerateGlobalElementIdArray();
00127 vtkBooleanMacro(GenerateGlobalElementIdArray, int);
00128
00129 virtual void SetGenerateGlobalNodeIdArray( int g );
00130 int GetGenerateGlobalNodeIdArray();
00131 vtkBooleanMacro(GenerateGlobalNodeIdArray, int);
00132
00133 virtual void SetGenerateImplicitElementIdArray( int g );
00134 int GetGenerateImplicitElementIdArray();
00135 vtkBooleanMacro(GenerateImplicitElementIdArray, int);
00136
00137 virtual void SetGenerateImplicitNodeIdArray( int g );
00138 int GetGenerateImplicitNodeIdArray();
00139 vtkBooleanMacro(GenerateImplicitNodeIdArray, int);
00140
00141 virtual void SetGenerateFileIdArray( int f );
00142 int GetGenerateFileIdArray();
00143 vtkBooleanMacro(GenerateFileIdArray, int);
00144 virtual void SetFileId( int f );
00145 int GetFileId();
00146
00148
00153 enum {
00154 SEARCH_TYPE_ELEMENT=0,
00155 SEARCH_TYPE_NODE,
00156 SEARCH_TYPE_ELEMENT_THEN_NODE,
00157 SEARCH_TYPE_NODE_THEN_ELEMENT,
00158 ID_NOT_FOUND=-234121312
00159 };
00160
00161 enum ObjectType {
00162
00163 EDGE_BLOCK = 6,
00164 FACE_BLOCK = 8,
00165 ELEM_BLOCK = 1,
00166 NODE_SET = 2,
00167 EDGE_SET = 7,
00168 FACE_SET = 9,
00169 SIDE_SET = 3,
00170 ELEM_SET = 10,
00171 NODE_MAP = 5,
00172 EDGE_MAP = 11,
00173 FACE_MAP = 12,
00174 ELEM_MAP = 4,
00175 GLOBAL = 13,
00176 NODAL = 14,
00177
00178 ASSEMBLY = 60,
00179 PART = 61,
00180 MATERIAL = 62,
00181 HIERARCHY = 63,
00182
00183 QA_RECORDS = 103,
00184 INFO_RECORDS = 104,
00185 GLOBAL_TEMPORAL = 102,
00186 NODAL_TEMPORAL = 101,
00187 ELEM_BLOCK_TEMPORAL = 100,
00188 GLOBAL_CONN = 99,
00189 ELEM_BLOCK_ELEM_CONN = 98,
00190 ELEM_BLOCK_FACE_CONN = 97,
00191 ELEM_BLOCK_EDGE_CONN = 96,
00192 FACE_BLOCK_CONN = 95,
00193 EDGE_BLOCK_CONN = 94,
00194 ELEM_SET_CONN = 93,
00195 SIDE_SET_CONN = 92,
00196 FACE_SET_CONN = 91,
00197 EDGE_SET_CONN = 90,
00198 NODE_SET_CONN = 89,
00199 NODAL_COORDS = 88,
00200 OBJECT_ID = 87,
00201 IMPLICIT_ELEMENT_ID = 108,
00202 IMPLICIT_NODE_ID = 107,
00203 GLOBAL_ELEMENT_ID = 86,
00204 GLOBAL_NODE_ID = 85,
00205 ELEMENT_ID = 84,
00206 NODE_ID = 83,
00207 NODAL_SQUEEZEMAP = 82,
00208 ELEM_BLOCK_ATTRIB = 81,
00209 FACE_BLOCK_ATTRIB = 80,
00210 EDGE_BLOCK_ATTRIB = 79,
00211 FACE_ID = 105,
00212 EDGE_ID = 106,
00213 ENTITY_COUNTS = 109
00214 };
00216 enum DecorationType {
00217 NONE = 0,
00218 GLYPHS,
00219 CORNER_AVERAGED
00220 };
00222
00223 static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
00224 static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; }
00225 static int GetGlobalElementID( vtkDataSet *data, int localID );
00226 static int GetGlobalElementID ( vtkDataSet *data, int localID,
00227 int searchType );
00228 static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
00229
00230 static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; }
00231 static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; }
00232 static int GetGlobalFaceID( vtkDataSet *data, int localID );
00233 static int GetGlobalFaceID ( vtkDataSet *data, int localID,
00234 int searchType );
00235 static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; }
00236
00237 static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; }
00238 static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; }
00239 static int GetGlobalEdgeID( vtkDataSet *data, int localID );
00240 static int GetGlobalEdgeID ( vtkDataSet *data, int localID,
00241 int searchType );
00242 static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; }
00243
00245
00249 static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
00250 static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; }
00251 static int GetGlobalNodeID( vtkDataSet *data, int localID );
00252 static int GetGlobalNodeID( vtkDataSet *data, int localID,
00253 int searchType );
00254 static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
00256
00258
00262 virtual void SetApplyDisplacements( int d );
00263 int GetApplyDisplacements();
00264 vtkBooleanMacro(ApplyDisplacements, int);
00265 virtual void SetDisplacementMagnitude( float s );
00266 float GetDisplacementMagnitude();
00268
00270
00273 virtual void SetHasModeShapes( int ms );
00274 int GetHasModeShapes();
00275 vtkBooleanMacro(HasModeShapes,int);
00277
00279
00285 virtual void SetModeShapeTime( double phase );
00286 double GetModeShapeTime();
00288
00290
00295 virtual void SetAnimateModeShapes(int flag);
00296 int GetAnimateModeShapes();
00297 vtkBooleanMacro(AnimateModeShapes, int);
00299
00301
00302 virtual void SetEdgeFieldDecorations( int d );
00303 int GetEdgeFieldDecorations();
00304 void EdgeFieldDecorationsNone() { this->SetEdgeFieldDecorations( NONE ); }
00305 void EdgeFieldDecorationsGlyphs() { this->SetEdgeFieldDecorations( GLYPHS ); }
00306 void EdgeFieldDecorationsCornerAveraged() { this->SetEdgeFieldDecorations( CORNER_AVERAGED ); }
00308
00310
00311 virtual void SetFaceFieldDecorations( int d );
00312 int GetFaceFieldDecorations();
00313 void FaceFieldDecorationsNone() { this->SetFaceFieldDecorations( NONE ); }
00314 void FaceFieldDecorationsGlyphs() { this->SetFaceFieldDecorations( GLYPHS ); }
00315 void FaceFieldDecorationsCornerAveraged() { this->SetFaceFieldDecorations( CORNER_AVERAGED ); }
00317
00319
00320 const char* GetTitle();
00321 int GetDimensionality();
00322 int GetNumberOfTimeSteps();
00324
00325 int GetNumberOfNodesInFile();
00326 int GetNumberOfEdgesInFile();
00327 int GetNumberOfFacesInFile();
00328 int GetNumberOfElementsInFile();
00329
00330 int GetObjectTypeFromName( const char* name );
00331 const char* GetObjectTypeName( int );
00332
00333 int GetNumberOfNodes();
00334 int GetNumberOfObjects( int objectType );
00335 int GetNumberOfEntriesInObject( int objectType, int objectIndex );
00336 int GetObjectId( int objectType, int objectIndex );
00337 const char* GetObjectName( int objectType, int objectIndex );
00338 int GetObjectIndex( int objectType, const char* objectName );
00339 int GetObjectIndex( int objectType, int id );
00340 int GetObjectStatus( int objectType, int objectIndex );
00341 int GetObjectStatus( int objectType, const char* objectName )
00342 { return this->GetObjectStatus( objectType, this->GetObjectIndex( objectType, objectName ) ); }
00343 void SetObjectStatus( int objectType, int objectIndex, int status );
00344 void SetObjectStatus( int objectType, const char* objectName, int status );
00345
00347
00352 int GetNumberOfObjectArrays( int objectType );
00353 const char* GetObjectArrayName( int objectType, int arrayIndex );
00354 int GetObjectArrayIndex( int objectType, const char* arrayName );
00355 int GetNumberOfObjectArrayComponents( int objectType, int arrayIndex );
00356 int GetObjectArrayStatus( int objectType, int arrayIndex );
00357 int GetObjectArrayStatus( int objectType, const char* arrayName )
00358 { return this->GetObjectArrayStatus( objectType, this->GetObjectArrayIndex( objectType, arrayName ) ); }
00359 void SetObjectArrayStatus( int objectType, int arrayIndex, int status );
00360 void SetObjectArrayStatus( int objectType, const char* arrayName, int status );
00362
00364
00369 int GetNumberOfObjectAttributes( int objectType, int objectIndex );
00370 const char* GetObjectAttributeName( int objectType, int objectIndex, int attribIndex );
00371 int GetObjectAttributeIndex( int objectType, int objectIndex, const char* attribName );
00372 int GetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex );
00373 int GetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName )
00374 { return this->GetObjectAttributeStatus( objectType, objectIndex,
00375 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ) ); }
00376 void SetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex, int status );
00377 void SetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName, int status )
00378 { this->SetObjectAttributeStatus( objectType, objectIndex,
00379 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ), status ); }
00381
00382 virtual vtkIdType GetTotalNumberOfNodes();
00383 virtual vtkIdType GetTotalNumberOfEdges();
00384 virtual vtkIdType GetTotalNumberOfFaces();
00385 virtual vtkIdType GetTotalNumberOfElements();
00386
00388
00392 int GetNumberOfPartArrays();
00393 const char* GetPartArrayName(int arrayIdx);
00394 int GetPartArrayID( const char *name );
00395 const char* GetPartBlockInfo(int arrayIdx);
00396 void SetPartArrayStatus(int index, int flag);
00397 void SetPartArrayStatus(const char*, int flag);
00398 int GetPartArrayStatus(int index);
00399 int GetPartArrayStatus(const char*);
00401
00402
00404
00408 int GetNumberOfMaterialArrays();
00409 const char* GetMaterialArrayName(int arrayIdx);
00410 int GetMaterialArrayID( const char *name );
00411 void SetMaterialArrayStatus(int index, int flag);
00412 void SetMaterialArrayStatus(const char*, int flag);
00413 int GetMaterialArrayStatus(int index);
00414 int GetMaterialArrayStatus(const char*);
00416
00418
00422 int GetNumberOfAssemblyArrays();
00423 const char* GetAssemblyArrayName(int arrayIdx);
00424 int GetAssemblyArrayID( const char *name );
00425 void SetAssemblyArrayStatus(int index, int flag);
00426 void SetAssemblyArrayStatus(const char*, int flag);
00427 int GetAssemblyArrayStatus(int index);
00428 int GetAssemblyArrayStatus(const char*);
00430
00432
00439 int GetNumberOfHierarchyArrays();
00440 const char* GetHierarchyArrayName(int arrayIdx);
00441 void SetHierarchyArrayStatus(int index, int flag);
00442 void SetHierarchyArrayStatus(const char*, int flag);
00443 int GetHierarchyArrayStatus(int index);
00444 int GetHierarchyArrayStatus(const char*);
00446
00447 vtkGetMacro(DisplayType,int);
00448 virtual void SetDisplayType(int type);
00449
00455 vtkBooleanMacro(ExodusModelMetadata, int);
00456 vtkSetMacro(ExodusModelMetadata, int);
00457 vtkGetMacro(ExodusModelMetadata, int);
00458
00460
00461 vtkGetObjectMacro(ExodusModel,vtkExodusModel);
00463
00471 vtkSetMacro(PackExodusModelOntoOutput, int);
00472 vtkGetMacro(PackExodusModelOntoOutput, int);
00473 vtkBooleanMacro(PackExodusModelOntoOutput, int);
00474
00476 int IsValidVariable( const char *type, const char *name );
00477
00479 int GetVariableID ( const char *type, const char *name );
00480
00481 void SetAllArrayStatus( int otype, int status );
00482
00483
00484
00485
00486
00487
00488 int GetTimeSeriesData( int ID, const char *vName, const char *vType,
00489 vtkFloatArray *result );
00490
00491
00492
00493 int GetNumberOfEdgeBlockArrays()
00494 { return this->GetNumberOfObjects(EDGE_BLOCK); }
00495 const char* GetEdgeBlockArrayName(int index)
00496 { return this->GetObjectName(EDGE_BLOCK, index); }
00497 int GetEdgeBlockArrayStatus(const char* name)
00498 { return this->GetObjectStatus(EDGE_BLOCK, name); }
00499 void SetEdgeBlockArrayStatus(const char* name, int flag)
00500 { this->SetObjectStatus(EDGE_BLOCK, name, flag); }
00501
00502 int GetNumberOfFaceBlockArrays()
00503 { return this->GetNumberOfObjects(FACE_BLOCK); }
00504 const char* GetFaceBlockArrayName(int index)
00505 { return this->GetObjectName(FACE_BLOCK, index); }
00506 int GetFaceBlockArrayStatus(const char* name)
00507 { return this->GetObjectStatus(FACE_BLOCK, name); }
00508 void SetFaceBlockArrayStatus(const char* name, int flag)
00509 { this->SetObjectStatus(FACE_BLOCK, name, flag); }
00510
00511 int GetNumberOfElementBlockArrays()
00512 { return this->GetNumberOfObjects(ELEM_BLOCK); }
00513 const char* GetElementBlockArrayName(int index)
00514 { return this->GetObjectName(ELEM_BLOCK, index); }
00515 int GetElementBlockArrayStatus(const char* name)
00516 { return this->GetObjectStatus(ELEM_BLOCK, name); }
00517 void SetElementBlockArrayStatus(const char* name, int flag)
00518 { this->SetObjectStatus(ELEM_BLOCK, name, flag); }
00519
00520 int GetNumberOfGlobalResultArrays()
00521 { return this->GetNumberOfObjectArrays(GLOBAL); }
00522 const char* GetGlobalResultArrayName(int index)
00523 { return this->GetObjectArrayName(GLOBAL, index); }
00524 int GetGlobalResultArrayStatus(const char* name)
00525 { return this->GetObjectArrayStatus(GLOBAL, name); }
00526 void SetGlobalResultArrayStatus(const char* name, int flag)
00527 { this->SetObjectArrayStatus(GLOBAL, name, flag); }
00528
00529 int GetNumberOfPointResultArrays()
00530 { return this->GetNumberOfObjectArrays(NODAL); }
00531 const char* GetPointResultArrayName(int index)
00532 { return this->GetObjectArrayName(NODAL, index); }
00533 int GetPointResultArrayStatus(const char* name)
00534 { return this->GetObjectArrayStatus(NODAL, name); }
00535 void SetPointResultArrayStatus(const char* name, int flag)
00536 { this->SetObjectArrayStatus(NODAL, name, flag); }
00537
00538 int GetNumberOfEdgeResultArrays()
00539 { return this->GetNumberOfObjectArrays(EDGE_BLOCK); }
00540 const char* GetEdgeResultArrayName(int index)
00541 { return this->GetObjectArrayName(EDGE_BLOCK, index); }
00542 int GetEdgeResultArrayStatus(const char* name)
00543 { return this->GetObjectArrayStatus(EDGE_BLOCK, name); }
00544 void SetEdgeResultArrayStatus(const char* name, int flag)
00545 { this->SetObjectArrayStatus(EDGE_BLOCK, name, flag); }
00546
00547 int GetNumberOfFaceResultArrays()
00548 { return this->GetNumberOfObjectArrays(FACE_BLOCK); }
00549 const char* GetFaceResultArrayName(int index)
00550 { return this->GetObjectArrayName(FACE_BLOCK, index); }
00551 int GetFaceResultArrayStatus(const char* name)
00552 { return this->GetObjectArrayStatus(FACE_BLOCK, name); }
00553 void SetFaceResultArrayStatus(const char* name, int flag)
00554 { this->SetObjectArrayStatus(FACE_BLOCK, name, flag); }
00555
00556 int GetNumberOfElementResultArrays()
00557 { return this->GetNumberOfObjectArrays(ELEM_BLOCK); }
00558 const char* GetElementResultArrayName(int index)
00559 { return this->GetObjectArrayName(ELEM_BLOCK, index); }
00560 int GetElementResultArrayStatus(const char* name)
00561 { return this->GetObjectArrayStatus(ELEM_BLOCK, name); }
00562 void SetElementResultArrayStatus(const char* name, int flag)
00563 { this->SetObjectArrayStatus(ELEM_BLOCK, name, flag); }
00564
00565
00566 int GetNumberOfNodeMapArrays()
00567 { return this->GetNumberOfObjects(NODE_MAP); }
00568 const char* GetNodeMapArrayName(int index)
00569 { return this->GetObjectName(NODE_MAP, index); }
00570 int GetNodeMapArrayStatus(const char* name)
00571 { return this->GetObjectStatus(NODE_MAP, name); }
00572 void SetNodeMapArrayStatus(const char* name, int flag)
00573 { this->SetObjectStatus(NODE_MAP, name, flag); }
00574
00575 int GetNumberOfEdgeMapArrays()
00576 { return this->GetNumberOfObjects(EDGE_MAP); }
00577 const char* GetEdgeMapArrayName(int index)
00578 { return this->GetObjectName(EDGE_MAP, index); }
00579 int GetEdgeMapArrayStatus(const char* name)
00580 { return this->GetObjectStatus(EDGE_MAP, name); }
00581 void SetEdgeMapArrayStatus(const char* name, int flag)
00582 { this->SetObjectStatus(EDGE_MAP, name, flag); }
00583
00584 int GetNumberOfFaceMapArrays()
00585 { return this->GetNumberOfObjects(FACE_MAP); }
00586 const char* GetFaceMapArrayName(int index)
00587 { return this->GetObjectName(FACE_MAP, index); }
00588 int GetFaceMapArrayStatus(const char* name)
00589 { return this->GetObjectStatus(FACE_MAP, name); }
00590 void SetFaceMapArrayStatus(const char* name, int flag)
00591 { this->SetObjectStatus(FACE_MAP, name, flag); }
00592
00593 int GetNumberOfElementMapArrays()
00594 { return this->GetNumberOfObjects(ELEM_MAP); }
00595 const char* GetElementMapArrayName(int index)
00596 { return this->GetObjectName(ELEM_MAP, index); }
00597 int GetElementMapArrayStatus(const char* name)
00598 { return this->GetObjectStatus(ELEM_MAP, name); }
00599 void SetElementMapArrayStatus(const char* name, int flag)
00600 { this->SetObjectStatus(ELEM_MAP, name, flag); }
00601
00602 int GetNumberOfNodeSetArrays()
00603 { return this->GetNumberOfObjects(NODE_SET); }
00604 const char* GetNodeSetArrayName(int index)
00605 { return this->GetObjectName(NODE_SET, index); }
00606 int GetNodeSetArrayStatus(const char* name)
00607 { return this->GetObjectStatus(NODE_SET, name); }
00608 void SetNodeSetArrayStatus(const char* name, int flag)
00609 { this->SetObjectStatus(NODE_SET, name, flag); }
00610
00611 int GetNumberOfSideSetArrays()
00612 { return this->GetNumberOfObjects(SIDE_SET); }
00613 const char* GetSideSetArrayName(int index)
00614 { return this->GetObjectName(SIDE_SET, index); }
00615 int GetSideSetArrayStatus(const char* name)
00616 { return this->GetObjectStatus(SIDE_SET, name); }
00617 void SetSideSetArrayStatus(const char* name, int flag)
00618 { this->SetObjectStatus(SIDE_SET, name, flag); }
00619
00620 int GetNumberOfEdgeSetArrays()
00621 { return this->GetNumberOfObjects(EDGE_SET); }
00622 const char* GetEdgeSetArrayName(int index)
00623 { return this->GetObjectName(EDGE_SET, index); }
00624 int GetEdgeSetArrayStatus(const char* name)
00625 { return this->GetObjectStatus(EDGE_SET, name); }
00626 void SetEdgeSetArrayStatus(const char* name, int flag)
00627 { this->SetObjectStatus(EDGE_SET, name, flag); }
00628
00629 int GetNumberOfFaceSetArrays()
00630 { return this->GetNumberOfObjects(FACE_SET); }
00631 const char* GetFaceSetArrayName(int index)
00632 { return this->GetObjectName(FACE_SET, index); }
00633 int GetFaceSetArrayStatus(const char* name)
00634 { return this->GetObjectStatus(FACE_SET, name); }
00635 void SetFaceSetArrayStatus(const char* name, int flag)
00636 { this->SetObjectStatus(FACE_SET, name, flag); }
00637
00638 int GetNumberOfElementSetArrays()
00639 { return this->GetNumberOfObjects(ELEM_SET); }
00640 const char* GetElementSetArrayName(int index)
00641 { return this->GetObjectName(ELEM_SET, index); }
00642 int GetElementSetArrayStatus(const char* name)
00643 { return this->GetObjectStatus(ELEM_SET, name); }
00644 void SetElementSetArrayStatus(const char* name, int flag)
00645 { this->SetObjectStatus(ELEM_SET, name, flag); }
00646
00647
00648 int GetNumberOfNodeSetResultArrays()
00649 { return this->GetNumberOfObjectArrays(NODE_SET); }
00650 const char* GetNodeSetResultArrayName(int index)
00651 { return this->GetObjectArrayName(NODE_SET, index); }
00652 int GetNodeSetResultArrayStatus(const char* name)
00653 { return this->GetObjectArrayStatus(NODE_SET, name); }
00654 void SetNodeSetResultArrayStatus(const char* name, int flag)
00655 { this->SetObjectArrayStatus(NODE_SET, name, flag); }
00656
00657 int GetNumberOfSideSetResultArrays()
00658 { return this->GetNumberOfObjectArrays(SIDE_SET); }
00659 const char* GetSideSetResultArrayName(int index)
00660 { return this->GetObjectArrayName(SIDE_SET, index); }
00661 int GetSideSetResultArrayStatus(const char* name)
00662 { return this->GetObjectArrayStatus(SIDE_SET, name); }
00663 void SetSideSetResultArrayStatus(const char* name, int flag)
00664 { this->SetObjectArrayStatus(SIDE_SET, name, flag); }
00665
00666 int GetNumberOfEdgeSetResultArrays()
00667 { return this->GetNumberOfObjectArrays(EDGE_SET); }
00668 const char* GetEdgeSetResultArrayName(int index)
00669 { return this->GetObjectArrayName(EDGE_SET, index); }
00670 int GetEdgeSetResultArrayStatus(const char* name)
00671 { return this->GetObjectArrayStatus(EDGE_SET, name); }
00672 void SetEdgeSetResultArrayStatus(const char* name, int flag)
00673 { this->SetObjectArrayStatus(EDGE_SET, name, flag); }
00674
00675 int GetNumberOfFaceSetResultArrays()
00676 { return this->GetNumberOfObjectArrays(FACE_SET); }
00677 const char* GetFaceSetResultArrayName(int index)
00678 { return this->GetObjectArrayName(FACE_SET, index); }
00679 int GetFaceSetResultArrayStatus(const char* name)
00680 { return this->GetObjectArrayStatus(FACE_SET, name); }
00681 void SetFaceSetResultArrayStatus(const char* name, int flag)
00682 { this->SetObjectArrayStatus(FACE_SET, name, flag); }
00683
00684 int GetNumberOfElementSetResultArrays()
00685 { return this->GetNumberOfObjectArrays(ELEM_SET); }
00686 const char* GetElementSetResultArrayName(int index)
00687 { return this->GetObjectArrayName(ELEM_SET, index); }
00688 int GetElementSetResultArrayStatus(const char* name)
00689 { return this->GetObjectArrayStatus(ELEM_SET, name); }
00690 void SetElementSetResultArrayStatus(const char* name, int flag)
00691 { this->SetObjectArrayStatus(ELEM_SET, name, flag); }
00692
00705
00706
00709 void SetFastPathObjectType(const char *type);
00710
00711
00712
00713
00714 void SetFastPathIdType(const char *type);
00715 void SetFastPathObjectId(vtkIdType id);
00717
00718
00723 void Reset();
00724
00730 void ResetSettings();
00731
00733 void ResetCache();
00734
00737 virtual void UpdateTimeInformation();
00738
00739 virtual void Dump();
00740
00743 vtkGraph* GetSIL();
00744
00746
00747 vtkGetMacro(SILUpdateStamp, int);
00749
00751
00753 vtkGetMacro(ProducedFastPathOutput, bool);
00755
00756 protected:
00757 vtkExodusIIReader();
00758 ~vtkExodusIIReader();
00759
00762 virtual void NewExodusModel();
00763
00764
00765 static int GetIDHelper ( const char *arrayName, vtkDataSet *data, int localID, int searchType );
00766 static int GetGlobalID( const char *arrayName, vtkDataSet *data, int localID, int searchType );
00767
00768 virtual void SetMetadata( vtkExodusIIReaderPrivate* );
00769 vtkGetObjectMacro(Metadata,vtkExodusIIReaderPrivate);
00770
00776 bool FindXMLFile();
00777
00778
00779
00780 void GetAllTimes(vtkInformationVector*);
00781
00783 void AdvertiseTimeSteps( vtkInformation* outputInfo );
00784
00785 virtual void SetExodusModel( vtkExodusModel* em );
00786
00787 int ProcessRequest( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00788 int RequestInformation( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00789 int RequestData( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00790
00791
00792
00793 char* FileName;
00794 char* XMLFileName;
00795 int TimeStep;
00796 int TimeStepRange[2];
00797 vtkTimeStamp FileNameMTime;
00798 vtkTimeStamp XMLFileNameMTime;
00799
00800
00801
00802
00803
00804
00805 int DisplayType;
00806
00807
00808 vtkExodusIIReaderPrivate* Metadata;
00809
00810 vtkExodusModel *ExodusModel;
00811 int PackExodusModelOntoOutput;
00812 int ExodusModelMetadata;
00813
00814 int SILUpdateStamp;
00815 bool ProducedFastPathOutput;
00816 private:
00817 vtkExodusIIReader(const vtkExodusIIReader&);
00818 void operator=(const vtkExodusIIReader&);
00819
00820 void AddDisplacements(vtkUnstructuredGrid* output);
00821 };
00822
00823 #endif