I know how to read element or element node stress value (unaveraged) using python script.
field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4')
But i want averaged stress values at nodes. FYI, my odb does not contain node position data for stress (i.e., position=NODAL).
this is one of those things that way more cumbersome than it should be. you need to create xydata :
this creates a dictionary with objects for every node of every element and every stress component (ie. huge). Unfortunately the dictionary is keyed by cumbersome descriptor strings, eg:
gives the 11 stress component of node 2 associated with element 15. To make use of the data in a script you need to either construct the strings, or loop over the dictionary and parse the
positionDescriptionfor each object.Edit: if you want the nodal averages its pretty much the same. You do:
and the dictionary objects are keyed like:
note you can issue multiple
session.xyDataListFromFieldcalls and all of the data goes intoxyDataObjects(For example if you want stress and strain you can process both at once. )For completeness, if you only want a specific component(s) you can request as: