Abaqus - evaluate stress at point (x, y, z)
Submitted by geotech on Fri, 2010-07-02 14:07.
Hi everyone,
I would like to evaluate the stress value (e.g Mises) at a given point (x, y, z) within a 3D model. I cannot force this point to be a node. The problem is modeled with Element Type (C3D4).
Is there a built-in command I can issue in the input file of Abaqus to have Abaqus output the desired value to the output file?
Or, is there a python script I can use for this purpose?
Thank you,
-Ramin

Re: Abaqus - evaluate stress at point (x, y, z)
The first option is to create an element set (LocElem) for the element containing the point of interest and then saving the data in that element set. The odb can then be probed using a script that looks like
#
# get field
#
odb = openOdb(path='your_odb_name.odb')
locSet = odb.rootAssembly.elementSets['LocElem']
field = odb.steps.values()[-1].frames[-1].fieldOutputs['S']
subField = field.getSubset(region=locSet)
The values can be obtained from the memebers of the subField variable.
Another possible solution using the CAE is to use a short path around the point of interest and to probe that path.
#
# Import required packages
#
from caeModules import *
import odbAccess
#
# Open the output database
#
odb1 = session.openOdb(name='your_odb_file_name.odb')
#
# Set the variable of interest
#
session.viewports['Viewport: 1'].odbDisplay.setPrimaryVariable(
variableLabel='U', outputPosition=NODAL, refinement=(COMPONENT, 'U3'))
#
# Create a path at the location of interest
# (Assume locx, locy, loz given, eps is a small offset)
# (Also assume that the offset points lie inside model - change as necessary)
#
x1 = locx - eps
y1 = locy - eps
z1 = locz - eps
x2 = locx + eps
y2 = locy + eps
z2 = locz + eps
pathPts = ((x1, y1, z1), (x2, y2, z2))
session.Path(name='PtLocNbd', type=POINT_LIST, expression=pathPts)
locPath = session.paths['PtLocNbd']
#
# Probe data on path
# (This example looks at the displacement, you can look at other variables too)
#
session.XYDataFromPath(name='U3LocNbd', path=locPath, includeIntersections=False,
shape=DEFORMED, labelType=TRUE_DISTANCE)
#
# Plot the data
#
xyp = session.XYPlot('U3-Disp')
chartName = xyp.charts.keys()[0]
chart = xyp.charts[chartName]
session.viewports['Viewport: 1'].setValues(displayedObject=xyp)
#
# Save the data to a file
#
x0 = session.xyDataObjects['U3LocNbd']
session.writeXYReport(fileName='your_file_name.rpt', xyData=(x0, ))