Article abstract
This article will introduce the efficient way to use Abaqus python script to access Abaqus odb field outputs. The considerations for Abaqus python scripting are given. A comparison of several unpacking styles to access odb outputs is made. The demonstration code is provided in Github.
Considerations for Abaqus python performance
*Make use of correct Abaqus object model sequence unpacking. The style of sequence unpacking can significantly influence the efficiency of your Python scripts. *Make use python built-in functions. They are usually optimized for performance. *Make use of 3rd-party modules. They are usually optimized for performance. *In general, working with high-level objects is more efficient than working with low-level objects. *Avoid accessing attributes that require the use of computationally intensive methods. For example: minimize the number of calls to getSubset() and addData() methods.
Comparison of unpacking sytels
Below describe the detailed step by step procedure you followed to solve the problem. It is better to also accompany this document with a youtube video.
# Least efficient
for i in range(len(myStress.values))
myStress.valuesi.data
# Moderate efficient tmpStressValues = myStress.values for i in range(len(tmpStressValues)): tmpStressValuesi.data
# Most efficient for value in (myStress.values): value.data
References
- ref 1
- ref 2