155 #ifndef vtkLSDynaReader_h
156 #define vtkLSDynaReader_h
158 #include "vtkIOLSDynaModule.h"
159 #include "vtkLegacy.h"
181 void Dump(ostream& os);
192 virtual int CanReadFile(
VTK_FILEPATH const char* fname);
200 virtual void SetDatabaseDirectory(
VTK_FILEPATH const char*);
201 #ifdef VTK_LEGACY_REMOVE
204 VTK_LEGACY(
VTK_FILEPATH const char* GetDatabaseDirectory());
206 int IsDatabaseValid();
218 #ifdef VTK_LEGACY_REMOVE
237 int GetDimensionality();
327 vtkGetVector2Macro(TimeStepRange,
int);
328 vtkSetVector2Macro(TimeStepRange,
int);
336 int GetNumberOfPointArrays();
337 const char* GetPointArrayName(
int);
338 virtual void SetPointArrayStatus(
int arr,
int status);
339 virtual void SetPointArrayStatus(
const char* arrName,
int status);
340 int GetPointArrayStatus(
int arr);
341 int GetPointArrayStatus(
const char* arrName);
342 int GetNumberOfComponentsInPointArray(
int arr);
343 int GetNumberOfComponentsInPointArray(
const char* arrName);
353 int GetNumberOfCellArrays(
int cellType);
354 const char* GetCellArrayName(
int cellType,
int arr);
355 virtual void SetCellArrayStatus(
int cellType,
int arr,
int status);
356 virtual void SetCellArrayStatus(
int cellType,
const char* arrName,
int status);
357 int GetCellArrayStatus(
int cellType,
int arr);
358 int GetCellArrayStatus(
int cellType,
const char* arrName);
359 int GetNumberOfComponentsInCellArray(
int cellType,
int arr);
360 int GetNumberOfComponentsInCellArray(
int cellType,
const char* arrName);
368 int GetNumberOfSolidArrays();
369 const char* GetSolidArrayName(
int);
370 virtual void SetSolidArrayStatus(
int arr,
int status);
371 virtual void SetSolidArrayStatus(
const char* arrName,
int status);
372 int GetSolidArrayStatus(
int arr);
373 int GetSolidArrayStatus(
const char* arrName);
376 int GetNumberOfComponentsInSolidArray(
int a);
377 int GetNumberOfComponentsInSolidArray(
const char* arrName);
384 int GetNumberOfThickShellArrays();
385 const char* GetThickShellArrayName(
int);
386 virtual void SetThickShellArrayStatus(
int arr,
int status);
387 virtual void SetThickShellArrayStatus(
const char* arrName,
int status);
388 int GetThickShellArrayStatus(
int arr);
389 int GetThickShellArrayStatus(
const char* arrName);
392 int GetNumberOfComponentsInThickShellArray(
int a);
393 int GetNumberOfComponentsInThickShellArray(
const char* arrName);
400 int GetNumberOfShellArrays();
401 const char* GetShellArrayName(
int);
402 virtual void SetShellArrayStatus(
int arr,
int status);
403 virtual void SetShellArrayStatus(
const char* arrName,
int status);
404 int GetShellArrayStatus(
int arr);
405 int GetShellArrayStatus(
const char* arrName);
408 int GetNumberOfComponentsInShellArray(
int a);
409 int GetNumberOfComponentsInShellArray(
const char* arrName);
416 int GetNumberOfRigidBodyArrays();
417 const char* GetRigidBodyArrayName(
int);
418 virtual void SetRigidBodyArrayStatus(
int arr,
int status);
419 virtual void SetRigidBodyArrayStatus(
const char* arrName,
int status);
420 int GetRigidBodyArrayStatus(
int arr);
421 int GetRigidBodyArrayStatus(
const char* arrName);
424 int GetNumberOfComponentsInRigidBodyArray(
int a);
425 int GetNumberOfComponentsInRigidBodyArray(
const char* arrName);
432 int GetNumberOfRoadSurfaceArrays();
433 const char* GetRoadSurfaceArrayName(
int);
434 virtual void SetRoadSurfaceArrayStatus(
int arr,
int status);
435 virtual void SetRoadSurfaceArrayStatus(
const char* arrName,
int status);
436 int GetRoadSurfaceArrayStatus(
int arr);
437 int GetRoadSurfaceArrayStatus(
const char* arrName);
440 int GetNumberOfComponentsInRoadSurfaceArray(
int a);
441 int GetNumberOfComponentsInRoadSurfaceArray(
const char* arrName);
448 int GetNumberOfBeamArrays();
449 const char* GetBeamArrayName(
int);
450 virtual void SetBeamArrayStatus(
int arr,
int status);
451 virtual void SetBeamArrayStatus(
const char* arrName,
int status);
452 int GetBeamArrayStatus(
int arr);
453 int GetBeamArrayStatus(
const char* arrName);
456 int GetNumberOfComponentsInBeamArray(
int a);
457 int GetNumberOfComponentsInBeamArray(
const char* arrName);
464 int GetNumberOfParticleArrays();
465 const char* GetParticleArrayName(
int);
466 virtual void SetParticleArrayStatus(
int arr,
int status);
467 virtual void SetParticleArrayStatus(
const char* arrName,
int status);
468 int GetParticleArrayStatus(
int arr);
469 int GetParticleArrayStatus(
const char* arrName);
472 int GetNumberOfComponentsInParticleArray(
int a);
473 int GetNumberOfComponentsInParticleArray(
const char* arrName);
507 vtkSetMacro(DeletedCellsAsGhostArray,
vtkTypeBool);
508 vtkGetMacro(DeletedCellsAsGhostArray,
vtkTypeBool);
509 vtkBooleanMacro(DeletedCellsAsGhostArray,
vtkTypeBool);
524 vtkSetStringMacro(InputDeck);
525 vtkGetStringMacro(InputDeck);
539 int GetNumberOfPartArrays();
540 const char* GetPartArrayName(
int);
541 virtual void SetPartArrayStatus(
int arr,
int status);
542 virtual void SetPartArrayStatus(
const char* partName,
int status);
543 int GetPartArrayStatus(
int arr);
544 int GetPartArrayStatus(
const char* partName);
570 int TimeStepRange[2];
588 int ReadHeaderInformation(
int currentAdaptLevel);
599 int ScanDatabaseTimeSteps();
614 virtual int ReadTopology();
615 virtual int ReadNodes();
616 virtual int ReadPartSizes();
617 virtual int ReadConnectivityAndMaterial();
618 virtual int ReadUserIds();
620 virtual int ReadNodeStateInfo(
vtkIdType);
621 virtual int ReadCellStateInfo(
vtkIdType);
622 virtual int ReadDeletion();
630 virtual void ResetPartInfo();
636 virtual int ReadInputDeck();
643 virtual int ReadPartTitlesFromRootFile();
650 virtual int ReadUserMaterialIds();
657 int ReadInputDeckXML(istream& deck);
658 int ReadInputDeckKeywords(istream& deck);
665 int WriteInputDeckSummary(
const char* fname);
683 virtual void ReadCellProperties(
const int&
type,
const int& numTuples);
687 void ResetPartsCache();
692 template <
typename T>
694 const vtkIdType& numCells,
const int& deathPos,
const int& cellSize);
696 template <
int wordSize,
typename T>
697 int FillTopology(T* buffer);
699 template <
typename T,
int blockType, vtkIdType numWordsPerCell, vtkIdType cellLength>
700 void ReadBlockCellSizes();
702 template <
typename T>
719 vtkWarningMacro(
"Point array \"" << arrName <<
"\" does not exist");
758 vtkWarningMacro(
"Cell array \"" << arrName <<
"\" (type " << cellType <<
") does not exist");
797 vtkWarningMacro(
"Solid array \"" << arrName <<
"\" does not exist");
836 vtkWarningMacro(
"Thick shell array \"" << arrName <<
"\" does not exist");
875 vtkWarningMacro(
"Shell array \"" << arrName <<
"\" does not exist");
914 vtkWarningMacro(
"Beam array \"" << arrName <<
"\" does not exist");
953 vtkWarningMacro(
"Particle array \"" << arrName <<
"\" does not exist");
992 vtkWarningMacro(
"Rigid body array \"" << arrName <<
"\" does not exist");
1031 vtkWarningMacro(
"Road surface array \"" << arrName <<
"\" does not exist");
1070 vtkWarningMacro(
"Part \"" << arrName <<
"\" does not exist");
1086 #endif // vtkLSDynaReader_h
virtual void SetThickShellArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetShellArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
vtkLSDynaPartCollection * Parts
const char * GetPartArrayName(int)
These methods allow you to load only selected parts of the input.
int GetNumberOfCellArrays(int cellType)
Routines that allow the status of a cell variable to be adjusted or queried independent of the output...
int GetNumberOfPointArrays()
These methods allow you to load only selected subsets of the nodal variables defined over the mesh...
std::string GetFileName(const std::string &fileName) noexcept
Set the appropriate file name based on recognized user input.
int GetThickShellArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
const char * GetPointArrayName(int)
These methods allow you to load only selected subsets of the nodal variables defined over the mesh...
int GetNumberOfComponentsInBeamArray(int a)
int GetNumberOfBeamArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfSolidArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetRoadSurfaceArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
Read LS-Dyna databases (d3plot)
vtkTypeBool DeformedMesh
Should deflected coordinates be used, or should the mesh remain undeflected? By default, this is true.
const char * GetParticleArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
const char * GetThickShellArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfComponentsInCellArray(int cellType, int arr)
Routines that allow the status of a cell variable to be adjusted or queried independent of the output...
virtual void SetRigidBodyArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfComponentsInSolidArray(int a)
int GetNumberOfThickShellArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
const char * GetSolidArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual void SetSolidArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkTypeBool DeletedCellsAsGhostArray
Should cells marked as deleted be removed from the mesh? By default, this is true.
virtual void SetRoadSurfaceArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
static vtkMultiBlockDataSetAlgorithm * New()
int GetPointArrayStatus(int arr)
These methods allow you to load only selected subsets of the nodal variables defined over the mesh...
int GetRigidBodyArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfParticleArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
virtual void SetShellArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetCellArrayStatus(int cellType, int arr)
Routines that allow the status of a cell variable to be adjusted or queried independent of the output...
int GetNumberOfPartArrays()
These methods allow you to load only selected parts of the input.
int GetNumberOfRoadSurfaceArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
const char * GetRigidBodyArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
a simple class to control print indentation
int GetNumberOfRigidBodyArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetSolidArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
int GetNumberOfShellArrays()
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool RemoveDeletedCells
Should cells marked as deleted be removed from the mesh? By default, this is true.
dynamic, self-adjusting array of unsigned char
int GetNumberOfComponentsInShellArray(int a)
int GetNumberOfComponentsInRigidBodyArray(int a)
const char * GetCellArrayName(int cellType, int arr)
Routines that allow the status of a cell variable to be adjusted or queried independent of the output...
int GetPartArrayStatus(int arr)
These methods allow you to load only selected parts of the input.
int GetParticleArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfComponentsInThickShellArray(int a)
int GetBeamArrayStatus(int arr)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
virtual void SetBeamArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
virtual void SetCellArrayStatus(int cellType, int arr, int status)
Routines that allow the status of a cell variable to be adjusted or queried independent of the output...
const char * GetShellArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
char * InputDeck
The name of a file containing part names and IDs.
virtual void SetParticleArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
virtual void SetPartArrayStatus(int arr, int status)
These methods allow you to load only selected parts of the input.
virtual void SetPointArrayStatus(int arr, int status)
These methods allow you to load only selected subsets of the nodal variables defined over the mesh...
int GetNumberOfComponentsInRoadSurfaceArray(int a)
const char * GetBeamArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfComponentsInParticleArray(int a)
represent and manipulate 3D points
const char * GetRoadSurfaceArrayName(int)
These methods allow you to load only selected subsets of the cell variables defined over the mesh...
int GetNumberOfComponentsInPointArray(int arr)
These methods allow you to load only selected subsets of the nodal variables defined over the mesh...
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.