💡 Info - this is an utility to read an Abaqus odb and convert the mesh and field data into a vtk format. This is useful to convert data directly on the HPC where the odb is generated for remote visualization through Paraview.
Python 2: for older versions of pvpython (e.g. 5.2.0). Check your paraview installation.Python 3: works in more recent versions of pvpython (e.g. 5.7.0+).- The different versions differ only on the
vtkside of things, specifically onvtkToolsand how printing to console is handled. theodbside of things needs to run in the abaqus python environment which is python 2. Note: TheodbExtractorscript will attempt to run twopvpythoncommands in the end. In some systems this fails. Steps 2 and 3 below are only needed in those systems where the command execution from python is blocked.
abaqus cae noGui=odbExtractor.py -- -o <odbName>.odb -r <requestName>.json -f all -d true[optional - see note above]
pvpython vtkFromOdb.py <odbName>.odb[optional - see note above]
pvpython vtkTimeSeriesBuilder.py <odbName>.odb- Abaqus installation: tested on Abaqus 2019;
- Paraview installation with pvpython: tested on paraview 5.2.0, 5.8.0 and 5.9.1;
-
-o (--odb) :
odbName.odb- specify the name of the odb to extract data from
-
-r (--request):
requestName.json- specify the name of the json file outlining the frames to be extracted. This is specified in the
frameIdListas a list of integer pairs[step number, frame number]. Index -1 can be used to specify last entry.
{ "frameIdList": [ [1, 1], [1, 2], [2, -1], [-1, 3] ] } - specify the name of the json file outlining the frames to be extracted. This is specified in the
-
-f (--fields):
disporall(default:all)- specify the fields to be extracted. Currently supported options are displacement only ("disp") or every supported field ("all" or anyother string value). Currently supported fields are:
-
-d (--duplicate):
trueorfalse(default:true)- specify whether to duplicate the odb leaving a copy intact to avoid data loss in case of odb corruption.
Current feature set is limited, but expanding:
-
supported fields:
scalar = ['SDV', 'FV', 'UVARM'] vector = ['U'] tensor = ['S', 'LE'] contact = ['CSDMG']
-
supported elements:
['SC8R', 'SC6R', 'CSS8', 'S4R'] -
supported stress state:
plane stresswith the following invariants and components['11', '22', '33', '12', 'MAX_INPLANE_PRINCIPAL'] -
filters / post-processing : currently only envelopes are computed for all tensor fields.
-
vector fields are stored with the respective components as
vtkFloatArraywith 3 components - Paraview can make use of this for deformed representations and so on. -
frame times are saved and a seperate
PVDfile is created with the time series data containing thevtkMultiBlockDataSets;
- Post processing steps can be added in
odbFieldExtractor; - Element types can be added in
odbMeshExtractor- note that for different stress states changes need to be made inodbFieldExtractorand for different element geometries (other than hex, wedge and quad) changes need to be made tovtkGridBuilder