VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkExodusIIReader.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*---------------------------------------------------------------------------- 00016 Copyright (c) Sandia Corporation 00017 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details. 00018 ----------------------------------------------------------------------------*/ 00019 00039 #ifndef __vtkExodusIIReader_h 00040 #define __vtkExodusIIReader_h 00041 00042 #include "vtkIOExodusModule.h" // For export macro 00043 #include "vtkMultiBlockDataSetAlgorithm.h" 00044 00045 class vtkDataArray; 00046 class vtkDataSet; 00047 class vtkExodusIICache; 00048 class vtkExodusIIReaderPrivate; 00049 class vtkExodusModel; 00050 class vtkFloatArray; 00051 class vtkGraph; 00052 class vtkIntArray; 00053 class vtkPoints; 00054 class vtkUnstructuredGrid; 00055 00056 class VTKIOEXODUS_EXPORT vtkExodusIIReader : public vtkMultiBlockDataSetAlgorithm 00057 { 00058 public: 00059 static vtkExodusIIReader *New(); 00060 vtkTypeMacro(vtkExodusIIReader,vtkMultiBlockDataSetAlgorithm); 00061 void PrintSelf(ostream& os, vtkIndent indent); 00062 00064 int CanReadFile(const char* fname); 00065 00066 //virtual void Modified(); 00067 00070 virtual unsigned long GetMTime(); 00071 00075 virtual unsigned long GetMetadataMTime(); 00076 00078 00079 virtual void SetFileName( const char* fname ); 00080 vtkGetStringMacro(FileName); 00082 00084 00085 virtual void SetXMLFileName( const char* fname ); 00086 vtkGetStringMacro(XMLFileName); 00088 00090 00091 vtkSetMacro(TimeStep, int); 00092 vtkGetMacro(TimeStep, int); 00094 00096 00098 void SetModeShape(int val) 00099 { 00100 this->SetTimeStep(val-1); 00101 } 00103 00105 00106 vtkGetVector2Macro(TimeStepRange,int); 00107 vtkSetVector2Macro(TimeStepRange,int); 00109 00111 00120 virtual void SetGenerateObjectIdCellArray( int g ); 00121 int GetGenerateObjectIdCellArray(); 00122 vtkBooleanMacro(GenerateObjectIdCellArray, int); 00123 static const char *GetObjectIdArrayName() { return "ObjectId"; } 00125 00126 virtual void SetGenerateGlobalElementIdArray( int g ); 00127 int GetGenerateGlobalElementIdArray(); 00128 vtkBooleanMacro(GenerateGlobalElementIdArray, int); 00129 00130 virtual void SetGenerateGlobalNodeIdArray( int g ); 00131 int GetGenerateGlobalNodeIdArray(); 00132 vtkBooleanMacro(GenerateGlobalNodeIdArray, int); 00133 00134 virtual void SetGenerateImplicitElementIdArray( int g ); 00135 int GetGenerateImplicitElementIdArray(); 00136 vtkBooleanMacro(GenerateImplicitElementIdArray, int); 00137 00138 virtual void SetGenerateImplicitNodeIdArray( int g ); 00139 int GetGenerateImplicitNodeIdArray(); 00140 vtkBooleanMacro(GenerateImplicitNodeIdArray, int); 00141 00142 virtual void SetGenerateFileIdArray( int f ); 00143 int GetGenerateFileIdArray(); 00144 vtkBooleanMacro(GenerateFileIdArray, int); 00145 virtual void SetFileId( int f ); 00146 int GetFileId(); 00147 00148 //BTX 00150 00155 enum { 00156 SEARCH_TYPE_ELEMENT=0, 00157 SEARCH_TYPE_NODE, 00158 SEARCH_TYPE_ELEMENT_THEN_NODE, 00159 SEARCH_TYPE_NODE_THEN_ELEMENT, 00160 ID_NOT_FOUND=-234121312 00161 }; 00162 // NOTE: GetNumberOfObjectTypes must be updated whenever you add an entry to enum ObjectType {...} 00163 enum ObjectType { 00164 // match Exodus macros from exodusII.h and exodusII_ext.h 00165 EDGE_BLOCK = 6, 00166 FACE_BLOCK = 8, 00167 ELEM_BLOCK = 1, 00168 NODE_SET = 2, 00169 EDGE_SET = 7, 00170 FACE_SET = 9, 00171 SIDE_SET = 3, 00172 ELEM_SET = 10, 00173 NODE_MAP = 5, 00174 EDGE_MAP = 11, 00175 FACE_MAP = 12, 00176 ELEM_MAP = 4, 00177 GLOBAL = 13, 00178 NODAL = 14, 00179 // extended values (not in Exodus headers) for use with SetAllArrayStatus: 00180 ASSEMBLY = 60, 00181 PART = 61, 00182 MATERIAL = 62, 00183 HIERARCHY = 63, 00184 // extended values (not in Exodus headers) for use in cache keys: 00185 QA_RECORDS = 103, 00186 INFO_RECORDS = 104, 00187 GLOBAL_TEMPORAL = 102, 00188 NODAL_TEMPORAL = 101, 00189 ELEM_BLOCK_TEMPORAL = 100, 00190 GLOBAL_CONN = 99, 00191 ELEM_BLOCK_ELEM_CONN = 98, 00192 ELEM_BLOCK_FACE_CONN = 97, 00193 ELEM_BLOCK_EDGE_CONN = 96, 00194 FACE_BLOCK_CONN = 95, 00195 EDGE_BLOCK_CONN = 94, 00196 ELEM_SET_CONN = 93, 00197 SIDE_SET_CONN = 92, 00198 FACE_SET_CONN = 91, 00199 EDGE_SET_CONN = 90, 00200 NODE_SET_CONN = 89, 00201 NODAL_COORDS = 88, 00202 OBJECT_ID = 87, 00203 IMPLICIT_ELEMENT_ID = 108, 00204 IMPLICIT_NODE_ID = 107, 00205 GLOBAL_ELEMENT_ID = 86, 00206 GLOBAL_NODE_ID = 85, 00207 ELEMENT_ID = 84, 00208 NODE_ID = 83, 00209 NODAL_SQUEEZEMAP = 82, 00210 ELEM_BLOCK_ATTRIB = 81, 00211 FACE_BLOCK_ATTRIB = 80, 00212 EDGE_BLOCK_ATTRIB = 79, 00213 FACE_ID = 105, 00214 EDGE_ID = 106, 00215 ENTITY_COUNTS = 109 00216 }; 00217 //ETX 00218 static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; } 00219 static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; } 00220 static int GetGlobalElementID( vtkDataSet *data, int localID ); 00221 static int GetGlobalElementID ( vtkDataSet *data, int localID, 00222 int searchType ); 00223 static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; } 00225 00226 static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; } 00227 static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; } 00228 static int GetGlobalFaceID( vtkDataSet *data, int localID ); 00229 static int GetGlobalFaceID ( vtkDataSet *data, int localID, 00230 int searchType ); 00231 static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; } 00232 00233 static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; } 00234 static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; } 00235 static int GetGlobalEdgeID( vtkDataSet *data, int localID ); 00236 static int GetGlobalEdgeID ( vtkDataSet *data, int localID, 00237 int searchType ); 00238 static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; } 00239 00241 00245 static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; } 00246 static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; } 00247 static int GetGlobalNodeID( vtkDataSet *data, int localID ); 00248 static int GetGlobalNodeID( vtkDataSet *data, int localID, 00249 int searchType ); 00250 static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; } 00252 00254 00258 virtual void SetApplyDisplacements( int d ); 00259 int GetApplyDisplacements(); 00260 vtkBooleanMacro(ApplyDisplacements, int); 00261 virtual void SetDisplacementMagnitude( float s ); 00262 float GetDisplacementMagnitude(); 00264 00266 00269 virtual void SetHasModeShapes( int ms ); 00270 int GetHasModeShapes(); 00271 vtkBooleanMacro(HasModeShapes,int); 00273 00275 00281 virtual void SetModeShapeTime( double phase ); 00282 double GetModeShapeTime(); 00284 00286 00291 virtual void SetAnimateModeShapes(int flag); 00292 int GetAnimateModeShapes(); 00293 vtkBooleanMacro(AnimateModeShapes, int); 00295 00297 00298 const char* GetTitle(); 00299 int GetDimensionality(); 00300 int GetNumberOfTimeSteps(); 00302 00303 int GetNumberOfNodesInFile(); 00304 int GetNumberOfEdgesInFile(); 00305 int GetNumberOfFacesInFile(); 00306 int GetNumberOfElementsInFile(); 00307 00308 int GetObjectTypeFromName( const char* name ); 00309 const char* GetObjectTypeName( int ); 00310 00311 int GetNumberOfNodes(); 00312 int GetNumberOfObjects( int objectType ); 00313 int GetNumberOfEntriesInObject( int objectType, int objectIndex ); 00314 int GetObjectId( int objectType, int objectIndex ); 00315 const char* GetObjectName( int objectType, int objectIndex ); 00316 int GetObjectIndex( int objectType, const char* objectName ); 00317 int GetObjectIndex( int objectType, int id ); 00318 int GetObjectStatus( int objectType, int objectIndex ); 00319 int GetObjectStatus( int objectType, const char* objectName ) 00320 { return this->GetObjectStatus( objectType, this->GetObjectIndex( objectType, objectName ) ); } 00321 void SetObjectStatus( int objectType, int objectIndex, int status ); 00322 void SetObjectStatus( int objectType, const char* objectName, int status ); 00323 00325 00330 int GetNumberOfObjectArrays( int objectType ); 00331 const char* GetObjectArrayName( int objectType, int arrayIndex ); 00332 int GetObjectArrayIndex( int objectType, const char* arrayName ); 00333 int GetNumberOfObjectArrayComponents( int objectType, int arrayIndex ); 00334 int GetObjectArrayStatus( int objectType, int arrayIndex ); 00335 int GetObjectArrayStatus( int objectType, const char* arrayName ) 00336 { return this->GetObjectArrayStatus( objectType, this->GetObjectArrayIndex( objectType, arrayName ) ); } 00337 void SetObjectArrayStatus( int objectType, int arrayIndex, int status ); 00338 void SetObjectArrayStatus( int objectType, const char* arrayName, int status ); 00340 00342 00347 int GetNumberOfObjectAttributes( int objectType, int objectIndex ); 00348 const char* GetObjectAttributeName( int objectType, int objectIndex, int attribIndex ); 00349 int GetObjectAttributeIndex( int objectType, int objectIndex, const char* attribName ); 00350 int GetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex ); 00351 int GetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName ) 00352 { return this->GetObjectAttributeStatus( objectType, objectIndex, 00353 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ) ); } 00354 void SetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex, int status ); 00355 void SetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName, int status ) 00356 { this->SetObjectAttributeStatus( objectType, objectIndex, 00357 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ), status ); } 00359 00360 virtual vtkIdType GetTotalNumberOfNodes(); 00361 virtual vtkIdType GetTotalNumberOfEdges(); 00362 virtual vtkIdType GetTotalNumberOfFaces(); 00363 virtual vtkIdType GetTotalNumberOfElements(); 00364 00366 00370 int GetNumberOfPartArrays(); 00371 const char* GetPartArrayName(int arrayIdx); 00372 int GetPartArrayID( const char *name ); 00373 const char* GetPartBlockInfo(int arrayIdx); 00374 void SetPartArrayStatus(int index, int flag); 00375 void SetPartArrayStatus(const char*, int flag); 00376 int GetPartArrayStatus(int index); 00377 int GetPartArrayStatus(const char*); 00379 00380 00382 00386 int GetNumberOfMaterialArrays(); 00387 const char* GetMaterialArrayName(int arrayIdx); 00388 int GetMaterialArrayID( const char *name ); 00389 void SetMaterialArrayStatus(int index, int flag); 00390 void SetMaterialArrayStatus(const char*, int flag); 00391 int GetMaterialArrayStatus(int index); 00392 int GetMaterialArrayStatus(const char*); 00394 00396 00400 int GetNumberOfAssemblyArrays(); 00401 const char* GetAssemblyArrayName(int arrayIdx); 00402 int GetAssemblyArrayID( const char *name ); 00403 void SetAssemblyArrayStatus(int index, int flag); 00404 void SetAssemblyArrayStatus(const char*, int flag); 00405 int GetAssemblyArrayStatus(int index); 00406 int GetAssemblyArrayStatus(const char*); 00408 00410 00417 int GetNumberOfHierarchyArrays(); 00418 const char* GetHierarchyArrayName(int arrayIdx); 00419 void SetHierarchyArrayStatus(int index, int flag); 00420 void SetHierarchyArrayStatus(const char*, int flag); 00421 int GetHierarchyArrayStatus(int index); 00422 int GetHierarchyArrayStatus(const char*); 00424 00425 vtkGetMacro(DisplayType,int); 00426 virtual void SetDisplayType(int type); 00427 00433 vtkBooleanMacro(ExodusModelMetadata, int); 00434 vtkSetMacro(ExodusModelMetadata, int); 00435 vtkGetMacro(ExodusModelMetadata, int); 00436 00438 00439 vtkGetObjectMacro(ExodusModel,vtkExodusModel); 00441 00449 vtkSetMacro(PackExodusModelOntoOutput, int); 00450 vtkGetMacro(PackExodusModelOntoOutput, int); 00451 vtkBooleanMacro(PackExodusModelOntoOutput, int); 00452 00454 int IsValidVariable( const char *type, const char *name ); 00455 00457 int GetVariableID ( const char *type, const char *name ); 00458 00459 void SetAllArrayStatus( int otype, int status ); 00460 // Helper functions 00461 //static int StringsEqual(const char* s1, char* s2); 00462 //static void StringUppercase(const char* str, char* upperstr); 00463 //static char *StrDupWithNew(const char *s); 00464 00465 // time series query functions 00466 int GetTimeSeriesData( int ID, const char *vName, const char *vType, 00467 vtkFloatArray *result ); 00468 00469 00470 00471 int GetNumberOfEdgeBlockArrays() 00472 { return this->GetNumberOfObjects(EDGE_BLOCK); } 00473 const char* GetEdgeBlockArrayName(int index) 00474 { return this->GetObjectName(EDGE_BLOCK, index); } 00475 int GetEdgeBlockArrayStatus(const char* name) 00476 { return this->GetObjectStatus(EDGE_BLOCK, name); } 00477 void SetEdgeBlockArrayStatus(const char* name, int flag) 00478 { this->SetObjectStatus(EDGE_BLOCK, name, flag); } 00479 00480 int GetNumberOfFaceBlockArrays() 00481 { return this->GetNumberOfObjects(FACE_BLOCK); } 00482 const char* GetFaceBlockArrayName(int index) 00483 { return this->GetObjectName(FACE_BLOCK, index); } 00484 int GetFaceBlockArrayStatus(const char* name) 00485 { return this->GetObjectStatus(FACE_BLOCK, name); } 00486 void SetFaceBlockArrayStatus(const char* name, int flag) 00487 { this->SetObjectStatus(FACE_BLOCK, name, flag); } 00488 00489 int GetNumberOfElementBlockArrays() 00490 { return this->GetNumberOfObjects(ELEM_BLOCK); } 00491 const char* GetElementBlockArrayName(int index) 00492 { return this->GetObjectName(ELEM_BLOCK, index); } 00493 int GetElementBlockArrayStatus(const char* name) 00494 { return this->GetObjectStatus(ELEM_BLOCK, name); } 00495 void SetElementBlockArrayStatus(const char* name, int flag) 00496 { this->SetObjectStatus(ELEM_BLOCK, name, flag); } 00497 00498 int GetNumberOfGlobalResultArrays() 00499 { return this->GetNumberOfObjectArrays(GLOBAL); } 00500 const char* GetGlobalResultArrayName(int index) 00501 { return this->GetObjectArrayName(GLOBAL, index); } 00502 int GetGlobalResultArrayStatus(const char* name) 00503 { return this->GetObjectArrayStatus(GLOBAL, name); } 00504 void SetGlobalResultArrayStatus(const char* name, int flag) 00505 { this->SetObjectArrayStatus(GLOBAL, name, flag); } 00506 00507 int GetNumberOfPointResultArrays() 00508 { return this->GetNumberOfObjectArrays(NODAL); } 00509 const char* GetPointResultArrayName(int index) 00510 { return this->GetObjectArrayName(NODAL, index); } 00511 int GetPointResultArrayStatus(const char* name) 00512 { return this->GetObjectArrayStatus(NODAL, name); } 00513 void SetPointResultArrayStatus(const char* name, int flag) 00514 { this->SetObjectArrayStatus(NODAL, name, flag); } 00515 00516 int GetNumberOfEdgeResultArrays() 00517 { return this->GetNumberOfObjectArrays(EDGE_BLOCK); } 00518 const char* GetEdgeResultArrayName(int index) 00519 { return this->GetObjectArrayName(EDGE_BLOCK, index); } 00520 int GetEdgeResultArrayStatus(const char* name) 00521 { return this->GetObjectArrayStatus(EDGE_BLOCK, name); } 00522 void SetEdgeResultArrayStatus(const char* name, int flag) 00523 { this->SetObjectArrayStatus(EDGE_BLOCK, name, flag); } 00524 00525 int GetNumberOfFaceResultArrays() 00526 { return this->GetNumberOfObjectArrays(FACE_BLOCK); } 00527 const char* GetFaceResultArrayName(int index) 00528 { return this->GetObjectArrayName(FACE_BLOCK, index); } 00529 int GetFaceResultArrayStatus(const char* name) 00530 { return this->GetObjectArrayStatus(FACE_BLOCK, name); } 00531 void SetFaceResultArrayStatus(const char* name, int flag) 00532 { this->SetObjectArrayStatus(FACE_BLOCK, name, flag); } 00533 00534 int GetNumberOfElementResultArrays() 00535 { return this->GetNumberOfObjectArrays(ELEM_BLOCK); } 00536 const char* GetElementResultArrayName(int index) 00537 { return this->GetObjectArrayName(ELEM_BLOCK, index); } 00538 int GetElementResultArrayStatus(const char* name) 00539 { return this->GetObjectArrayStatus(ELEM_BLOCK, name); } 00540 void SetElementResultArrayStatus(const char* name, int flag) 00541 { this->SetObjectArrayStatus(ELEM_BLOCK, name, flag); } 00542 00543 00544 int GetNumberOfNodeMapArrays() 00545 { return this->GetNumberOfObjects(NODE_MAP); } 00546 const char* GetNodeMapArrayName(int index) 00547 { return this->GetObjectName(NODE_MAP, index); } 00548 int GetNodeMapArrayStatus(const char* name) 00549 { return this->GetObjectStatus(NODE_MAP, name); } 00550 void SetNodeMapArrayStatus(const char* name, int flag) 00551 { this->SetObjectStatus(NODE_MAP, name, flag); } 00552 00553 int GetNumberOfEdgeMapArrays() 00554 { return this->GetNumberOfObjects(EDGE_MAP); } 00555 const char* GetEdgeMapArrayName(int index) 00556 { return this->GetObjectName(EDGE_MAP, index); } 00557 int GetEdgeMapArrayStatus(const char* name) 00558 { return this->GetObjectStatus(EDGE_MAP, name); } 00559 void SetEdgeMapArrayStatus(const char* name, int flag) 00560 { this->SetObjectStatus(EDGE_MAP, name, flag); } 00561 00562 int GetNumberOfFaceMapArrays() 00563 { return this->GetNumberOfObjects(FACE_MAP); } 00564 const char* GetFaceMapArrayName(int index) 00565 { return this->GetObjectName(FACE_MAP, index); } 00566 int GetFaceMapArrayStatus(const char* name) 00567 { return this->GetObjectStatus(FACE_MAP, name); } 00568 void SetFaceMapArrayStatus(const char* name, int flag) 00569 { this->SetObjectStatus(FACE_MAP, name, flag); } 00570 00571 int GetNumberOfElementMapArrays() 00572 { return this->GetNumberOfObjects(ELEM_MAP); } 00573 const char* GetElementMapArrayName(int index) 00574 { return this->GetObjectName(ELEM_MAP, index); } 00575 int GetElementMapArrayStatus(const char* name) 00576 { return this->GetObjectStatus(ELEM_MAP, name); } 00577 void SetElementMapArrayStatus(const char* name, int flag) 00578 { this->SetObjectStatus(ELEM_MAP, name, flag); } 00579 00580 int GetNumberOfNodeSetArrays() 00581 { return this->GetNumberOfObjects(NODE_SET); } 00582 const char* GetNodeSetArrayName(int index) 00583 { return this->GetObjectName(NODE_SET, index); } 00584 int GetNodeSetArrayStatus(const char* name) 00585 { return this->GetObjectStatus(NODE_SET, name); } 00586 void SetNodeSetArrayStatus(const char* name, int flag) 00587 { this->SetObjectStatus(NODE_SET, name, flag); } 00588 00589 int GetNumberOfSideSetArrays() 00590 { return this->GetNumberOfObjects(SIDE_SET); } 00591 const char* GetSideSetArrayName(int index) 00592 { return this->GetObjectName(SIDE_SET, index); } 00593 int GetSideSetArrayStatus(const char* name) 00594 { return this->GetObjectStatus(SIDE_SET, name); } 00595 void SetSideSetArrayStatus(const char* name, int flag) 00596 { this->SetObjectStatus(SIDE_SET, name, flag); } 00597 00598 int GetNumberOfEdgeSetArrays() 00599 { return this->GetNumberOfObjects(EDGE_SET); } 00600 const char* GetEdgeSetArrayName(int index) 00601 { return this->GetObjectName(EDGE_SET, index); } 00602 int GetEdgeSetArrayStatus(const char* name) 00603 { return this->GetObjectStatus(EDGE_SET, name); } 00604 void SetEdgeSetArrayStatus(const char* name, int flag) 00605 { this->SetObjectStatus(EDGE_SET, name, flag); } 00606 00607 int GetNumberOfFaceSetArrays() 00608 { return this->GetNumberOfObjects(FACE_SET); } 00609 const char* GetFaceSetArrayName(int index) 00610 { return this->GetObjectName(FACE_SET, index); } 00611 int GetFaceSetArrayStatus(const char* name) 00612 { return this->GetObjectStatus(FACE_SET, name); } 00613 void SetFaceSetArrayStatus(const char* name, int flag) 00614 { this->SetObjectStatus(FACE_SET, name, flag); } 00615 00616 int GetNumberOfElementSetArrays() 00617 { return this->GetNumberOfObjects(ELEM_SET); } 00618 const char* GetElementSetArrayName(int index) 00619 { return this->GetObjectName(ELEM_SET, index); } 00620 int GetElementSetArrayStatus(const char* name) 00621 { return this->GetObjectStatus(ELEM_SET, name); } 00622 void SetElementSetArrayStatus(const char* name, int flag) 00623 { this->SetObjectStatus(ELEM_SET, name, flag); } 00624 00625 00626 int GetNumberOfNodeSetResultArrays() 00627 { return this->GetNumberOfObjectArrays(NODE_SET); } 00628 const char* GetNodeSetResultArrayName(int index) 00629 { return this->GetObjectArrayName(NODE_SET, index); } 00630 int GetNodeSetResultArrayStatus(const char* name) 00631 { return this->GetObjectArrayStatus(NODE_SET, name); } 00632 void SetNodeSetResultArrayStatus(const char* name, int flag) 00633 { this->SetObjectArrayStatus(NODE_SET, name, flag); } 00634 00635 int GetNumberOfSideSetResultArrays() 00636 { return this->GetNumberOfObjectArrays(SIDE_SET); } 00637 const char* GetSideSetResultArrayName(int index) 00638 { return this->GetObjectArrayName(SIDE_SET, index); } 00639 int GetSideSetResultArrayStatus(const char* name) 00640 { return this->GetObjectArrayStatus(SIDE_SET, name); } 00641 void SetSideSetResultArrayStatus(const char* name, int flag) 00642 { this->SetObjectArrayStatus(SIDE_SET, name, flag); } 00643 00644 int GetNumberOfEdgeSetResultArrays() 00645 { return this->GetNumberOfObjectArrays(EDGE_SET); } 00646 const char* GetEdgeSetResultArrayName(int index) 00647 { return this->GetObjectArrayName(EDGE_SET, index); } 00648 int GetEdgeSetResultArrayStatus(const char* name) 00649 { return this->GetObjectArrayStatus(EDGE_SET, name); } 00650 void SetEdgeSetResultArrayStatus(const char* name, int flag) 00651 { this->SetObjectArrayStatus(EDGE_SET, name, flag); } 00652 00653 int GetNumberOfFaceSetResultArrays() 00654 { return this->GetNumberOfObjectArrays(FACE_SET); } 00655 const char* GetFaceSetResultArrayName(int index) 00656 { return this->GetObjectArrayName(FACE_SET, index); } 00657 int GetFaceSetResultArrayStatus(const char* name) 00658 { return this->GetObjectArrayStatus(FACE_SET, name); } 00659 void SetFaceSetResultArrayStatus(const char* name, int flag) 00660 { this->SetObjectArrayStatus(FACE_SET, name, flag); } 00661 00662 int GetNumberOfElementSetResultArrays() 00663 { return this->GetNumberOfObjectArrays(ELEM_SET); } 00664 const char* GetElementSetResultArrayName(int index) 00665 { return this->GetObjectArrayName(ELEM_SET, index); } 00666 int GetElementSetResultArrayStatus(const char* name) 00667 { return this->GetObjectArrayStatus(ELEM_SET, name); } 00668 void SetElementSetResultArrayStatus(const char* name, int flag) 00669 { this->SetObjectArrayStatus(ELEM_SET, name, flag); } 00670 00686 void SetFastPathObjectType(const char *type); 00688 00691 void SetFastPathIdType(const char *type); 00692 void SetFastPathObjectId(vtkIdType id); 00694 00695 00700 void Reset(); 00701 00707 void ResetSettings(); 00708 00710 void ResetCache(); 00711 00713 void SetCacheSize(double CacheSize); 00714 00716 double GetCacheSize(); 00717 00720 virtual void UpdateTimeInformation(); 00721 00722 virtual void Dump(); 00723 00726 vtkGraph* GetSIL(); 00727 00729 00730 vtkGetMacro(SILUpdateStamp, int); 00732 00734 00736 vtkGetMacro(ProducedFastPathOutput, bool); 00738 00739 protected: 00740 vtkExodusIIReader(); 00741 ~vtkExodusIIReader(); 00742 00745 virtual void NewExodusModel(); 00746 00747 // helper for finding IDs 00748 static int GetIDHelper ( const char *arrayName, vtkDataSet *data, int localID, int searchType ); 00749 static int GetGlobalID( const char *arrayName, vtkDataSet *data, int localID, int searchType ); 00750 00751 virtual void SetMetadata( vtkExodusIIReaderPrivate* ); 00752 vtkGetObjectMacro(Metadata,vtkExodusIIReaderPrivate); 00753 00759 bool FindXMLFile(); 00760 00761 // Time query function. Called by ExecuteInformation(). 00762 // Fills the TimestepValues array. 00763 void GetAllTimes(vtkInformationVector*); 00764 00766 void AdvertiseTimeSteps( vtkInformation* outputInfo ); 00767 00768 virtual void SetExodusModel( vtkExodusModel* em ); 00769 00770 int ProcessRequest( vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00771 int RequestInformation( vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00772 int RequestData( vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00773 //int RequestDataOverTime( vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00774 00775 // Parameters for controlling what is read in. 00776 char* FileName; 00777 char* XMLFileName; 00778 int TimeStep; 00779 int TimeStepRange[2]; 00780 vtkTimeStamp FileNameMTime; 00781 vtkTimeStamp XMLFileNameMTime; 00782 00783 // Information specific for exodus files. 00784 00785 //1=display Block names 00786 //2=display Part names 00787 //3=display Material names 00788 int DisplayType; 00789 00790 // Metadata containing a description of the currently open file. 00791 vtkExodusIIReaderPrivate* Metadata; 00792 00793 vtkExodusModel *ExodusModel; 00794 int PackExodusModelOntoOutput; 00795 int ExodusModelMetadata; 00796 00797 int SILUpdateStamp; 00798 bool ProducedFastPathOutput; 00799 private: 00800 vtkExodusIIReader(const vtkExodusIIReader&); // Not implemented 00801 void operator=(const vtkExodusIIReader&); // Not implemented 00802 00803 void AddDisplacements(vtkUnstructuredGrid* output); 00804 }; 00805 00806 #endif