39 #ifndef __vtkExodusReader_h
40 #define __vtkExodusReader_h
42 #define ARRAY_TYPE_NAMES_IN_CXX_FILE
51 class vtkExodusMetadata;
53 class vtkExodusXMLParser;
67 int CanReadFile(
const char* fname);
71 vtkSetStringMacro(FileName);
72 vtkGetStringMacro(FileName);
77 vtkSetStringMacro(XMLFileName);
78 vtkGetStringMacro(XMLFileName);
83 vtkSetMacro(TimeStep,
int);
84 vtkGetMacro(TimeStep,
int);
91 vtkSetMacro(GenerateBlockIdCellArray,
int);
92 vtkGetMacro(GenerateBlockIdCellArray,
int);
93 vtkBooleanMacro(GenerateBlockIdCellArray,
int);
102 vtkSetMacro(GenerateGlobalElementIdArray,
int);
103 vtkGetMacro(GenerateGlobalElementIdArray,
int);
104 vtkBooleanMacro(GenerateGlobalElementIdArray,
int);
107 SEARCH_TYPE_ELEMENT=0,
111 ID_NOT_FOUND=-234121312
126 vtkSetMacro(GenerateGlobalNodeIdArray,
int);
127 vtkGetMacro(GenerateGlobalNodeIdArray,
int);
128 vtkBooleanMacro(GenerateGlobalNodeIdArray,
int);
141 vtkSetMacro(ApplyDisplacements,
int);
142 vtkGetMacro(ApplyDisplacements,
int);
143 vtkBooleanMacro(ApplyDisplacements,
int);
144 vtkSetMacro(DisplacementMagnitude,
float);
145 vtkGetMacro(DisplacementMagnitude,
float);
150 vtkGetStringMacro(Title);
151 vtkGetMacro(Dimensionality,
int);
152 vtkGetMacro(NumberOfTimeSteps,
int);
154 vtkGetMacro(NumberOfNodeSets,
int);
155 vtkGetMacro(NumberOfSideSets,
int);
156 vtkGetMacro(NumberOfBlocks,
int);
157 vtkGetVector2Macro(TimeStepRange,
int);
158 vtkSetVector2Macro(TimeStepRange,
int);
160 int GetNumberOfElementsInBlock(
int block_idx);
161 int GetBlockId(
int block_idx);
172 int GetNumberOfPointArrays();
173 const char *GetPointArrayName(
int index);
174 int GetPointArrayID(
const char *
name );
175 int GetPointArrayNumberOfComponents(
int index);
176 void SetPointArrayStatus(
int index,
int flag);
177 void SetPointArrayStatus(
const char*,
int flag);
178 int GetPointArrayStatus(
int index);
179 int GetPointArrayStatus(
const char*);
182 int GetNumberOfCellArrays();
183 const char *GetCellArrayName(
int index);
184 int GetCellArrayID(
const char *
name );
185 int GetCellArrayNumberOfComponents(
int index);
186 void SetCellArrayStatus(
int index,
int flag);
187 void SetCellArrayStatus(
const char*,
int flag);
188 int GetCellArrayStatus(
int index);
189 int GetCellArrayStatus(
const char*);
191 {
return this->NumberOfElementsInFile; }
198 int GetNumberOfBlockArrays();
199 const char *GetBlockArrayName(
int index);
200 int GetBlockArrayID(
const char *
name );
201 void SetBlockArrayStatus(
int index,
int flag);
202 void SetBlockArrayStatus(
const char*,
int flag);
203 int GetBlockArrayStatus(
int index);
204 int GetBlockArrayStatus(
const char*);
217 int GetNodeSetArrayStatus(
int index);
218 int GetNodeSetArrayStatus(
const char*
name);
219 void SetNodeSetArrayStatus(
int index,
int flag);
220 void SetNodeSetArrayStatus(
const char*
name,
int flag);
221 const char *GetNodeSetArrayName(
int index);
225 int GetSideSetArrayStatus(
int index);
226 int GetSideSetArrayStatus(
const char*
name);
227 void SetSideSetArrayStatus(
int index,
int flag);
228 void SetSideSetArrayStatus(
const char*
name,
int flag);
229 const char *GetSideSetArrayName(
int index);
236 int GetNumberOfPartArrays();
237 const char *GetPartArrayName(
int arrayIdx);
238 int GetPartArrayID(
const char *
name );
239 const char *GetPartBlockInfo(
int arrayIdx);
240 void SetPartArrayStatus(
int index,
int flag);
241 void SetPartArrayStatus(
const char*,
int flag);
242 int GetPartArrayStatus(
int index);
243 int GetPartArrayStatus(
const char*);
252 int GetNumberOfMaterialArrays();
253 const char *GetMaterialArrayName(
int arrayIdx);
254 int GetMaterialArrayID(
const char *
name );
255 void SetMaterialArrayStatus(
int index,
int flag);
256 void SetMaterialArrayStatus(
const char*,
int flag);
257 int GetMaterialArrayStatus(
int index);
258 int GetMaterialArrayStatus(
const char*);
266 int GetNumberOfAssemblyArrays();
267 const char *GetAssemblyArrayName(
int arrayIdx);
268 int GetAssemblyArrayID(
const char *
name );
269 void SetAssemblyArrayStatus(
int index,
int flag);
270 void SetAssemblyArrayStatus(
const char*,
int flag);
271 int GetAssemblyArrayStatus(
int index);
272 int GetAssemblyArrayStatus(
const char*);
283 int GetNumberOfHierarchyArrays();
284 const char *GetHierarchyArrayName(
int arrayIdx);
285 void SetHierarchyArrayStatus(
int index,
int flag);
286 void SetHierarchyArrayStatus(
const char*,
int flag);
287 int GetHierarchyArrayStatus(
int index);
288 int GetHierarchyArrayStatus(
const char*);
299 vtkGetMacro(HasModeShapes,
int);
300 vtkSetMacro(HasModeShapes,
int);
301 vtkBooleanMacro(HasModeShapes,
int);
304 vtkGetMacro(DisplayType,
int);
305 virtual void SetDisplayType(
int type);
312 vtkBooleanMacro(ExodusModelMetadata,
int);
313 vtkSetMacro(ExodusModelMetadata,
int);
314 vtkGetMacro(ExodusModelMetadata,
int);
327 vtkSetMacro(PackExodusModelOntoOutput,
int);
328 vtkGetMacro(PackExodusModelOntoOutput,
int);
329 vtkBooleanMacro(PackExodusModelOntoOutput,
int);
349 int IsValidVariable(
const char *
type,
const char *
name );
360 int GetVariableID (
const char *
type,
const char *
name );
362 void SetAllAssemblyArrayStatus(
int status );
363 void SetAllBlockArrayStatus(
int status );
364 void SetAllCellArrayStatus(
int status );
365 void SetAllHierarchyArrayStatus(
int status );
366 void SetAllMaterialArrayStatus(
int status );
367 void SetAllPartArrayStatus(
int status );
368 void SetAllPointArrayStatus(
int status );
376 this->SetArrayStatus( this->GetArrayTypeID(type), name, flag );
383 return this->GetArrayStatus( this->GetArrayTypeID( type ), name );
387 static int StringsEqual(
const char* s1,
char* s2);
388 static void StringUppercase(
const char* str,
char* upperstr);
389 static char *StrDupWithNew(
const char *s);
392 int GetTimeSeriesData(
int ID,
const char *vName,
const char *vType,
397 int GetNumberOfVariableArrays();
398 const char *GetVariableArrayName(
int a_which);
399 void EnableDSPFiltering();
401 void StartAddingFilter();
402 void AddFilterInputVar(
char *
name);
403 void AddFilterOutputVar(
char *
name);
404 void AddFilterNumeratorWeight(
double weight);
405 void AddFilterForwardNumeratorWeight(
double weight);
406 void AddFilterDenominatorWeight(
double weight);
407 void FinishAddingFilter();
408 void RemoveFilter(
char *a_outputVariableName);
413 #ifdef ARRAY_TYPE_NAMES_IN_CXX_FILE
416 static const char *ArrayTypeNames[NUM_ARRAY_TYPES];
420 return ArrayTypeNames[
type];
436 void NewExodusModel();
444 vtkDataArray *ReadPointVector(
int handle,
int varIndex,
int dim);
446 vtkDataArray *ReadCellVector(
int handle,
int varIndex,
int dim);
447 void ReadNodeSetMetadata();
448 void ReadSideSetMetadata();
451 static int GetIDHelper (
const char *arrayName,
vtkDataSet *
data,
int localID,
453 static int GetGlobalID(
const char *arrayName,
vtkDataSet *
data,
int localID,
459 int GetExtraCellCountForNodeSideSets();
478 vtkSetStringMacro(Title);
515 vtkSetStringMacro(CurrentFileName);
516 vtkSetStringMacro(CurrentXMLFileName);
520 int OpenCurrentFile();
523 void CloseCurrentFile();
527 int TimeStepRange[2];
546 void SetUpPointMap(
int num_points);
547 int GetPointMapIndex(
int point_id);
551 void SetGlobalElementIdCache(
int *list);
579 void RemoveBeginningAndTrailingSpaces(
char **names,
int len);
581 void FixMetadataTruthTable(
int *table,
int len);
char * CurrentXMLFileName
static const char * GetPedigreeElementIdArrayName()
int GetNumberOfNodeSetArrays()
vtkIntArray * ReversePointMap
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkExodusXMLParser * Parser
int NumberOfElementsInFile
abstract class to specify dataset behavior
used by the Exodus readers
static vtkUnstructuredGridAlgorithm * New()
dynamic, self-adjusting array of float
int GenerateGlobalElementIdArray
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
int GenerateBlockIdCellArray
virtual int GetTotalNumberOfElements()
dynamic, self-adjusting array of int
void SetArrayStatus(const char *type, const char *name, int flag)
int DSPFilteringIsEnabled
double DisplacementMagnitude
vtkDSPFilterGroup ** DSPFilters
a simple class to control print indentation
used by the Exodus readers
int GetArrayStatus(const char *type, const char *name)
int GenerateGlobalNodeIdArray
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
void PrintSelf(ostream &os, vtkIndent indent)
vtkExodusModel * ExodusModel
Superclass for algorithms that produce only unstructured grid as output.
virtual int GetTotalNumberOfNodes()
vtkExodusModel * GetExodusModel()
vtkDSPFilterDefinition * AddingFilter
static const char * GetPedigreeNodeIdArrayName()
vtkExodusMetadata * MetaData
vtkUnstructuredGrid * DataCache
Read exodus 2 files .ex2.
static const char * GetGlobalElementIdArrayName()
vtkIntArray * CellVarTruthTable
int GetNumberOfElements()
int GetNumberOfSideSetArrays()
const char * GetBlockIdArrayName()
int * GlobalElementIdCache
int PackExodusModelOntoOutput
represent and manipulate 3D points
static const char * GetGlobalNodeIdArrayName()