ODB Extraction
Description
Extract field outputs from ODB files for curing simulation. Invoke when user needs to read ODB results, get displacement data, or inspect field outputs.
Content
Opening ODB
Open an ODB file in read-only mode:
from abaqusConstants import *
odb = session.openOdb(name='odb1', path=odb_path, readOnly=True)
ODB Structure
The curing simulation ODB has the following structure:
- Instances:
['P8-1', 'TOOL-1']P8-1: Composite part instanceTOOL-1: Tool part instance
- Steps:
['vis', 'rub', 'glassy', 'sp']- The
spstep has 7 frames - The last frame of the
spstep contains the final springback result
- The
Available Field Outputs
The following field outputs are available in the sp step last frame:
Standard Field Outputs
U— DisplacementS— StressPE— Plastic strainSDV1toSDV4— State variablesTEMP— TemperatureRF— Reaction forceNT— Nodal temperature
Contact Field Outputs
CDISP— Contact displacementCSTRESS— Contact stressCOPEN— Contact openingCPRESS— Contact pressureCSHEAR1,CSHEAR2— Contact shear stressesCSLIP1,CSLIP2— Contact slip
Note: COORD is NOT available as a field output. To get node coordinates, access them directly from instance.nodes.
Extracting Displacement
Extract displacement data from the last frame of the sp step:
last_frame = odb.steps['sp'].frames[-1]
u_field = last_frame.fieldOutputs['U']
u_map = {}
for val in u_field.values:
u_map[val.nodeLabel] = (val.data[0], val.data[1], val.data[2])
Getting Node Coordinates
Retrieve node coordinates directly from the instance:
inst = odb.rootAssembly.instances['P8-1']
for node in inst.nodes:
x, y, z = node.coordinates
# Process coordinates
Closing ODB
Always close the ODB after extraction to free resources:
odb.close()
Important: After calling odb.close(), do NOT access any instance objects (nodes, elements, field outputs) that were obtained before closing. Doing so will raise an AccessError. Extract all needed data into Python data structures (lists, dicts) before closing the ODB.
Best Practices
- Open ODB in
readOnly=Truemode to prevent accidental modifications - Extract all needed data into local variables before closing
- Use the last frame of the sp step for final springback results
- Node labels from field output values match instance node labels
- Close the ODB promptly after extraction to release file locks