User login

Navigation

You are here

Abaqus - evaluate stress at point (x, y, z)

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

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, ))

Hi Biswajit

I'm facing problem while writing a script for a parametric study.
After changing the each parameter the model changes and and the loaction
of the interested element changes based on those parameters.
Also the element number changes.
Is there any command in python script to choose the elements (to create set)based on the location ? 
I need those sets for extracting the history output from the analysis.

Thank you in advance

Rajesh Kumar

Dear Rajesh,

I'm a bit rusty on Abaqus.  Someone who's using it on a regular basis should be able to help you out.

-- Biswajit

Subscribe to Comments for "Abaqus - evaluate stress at point (x, y, z)"

Recent comments

More comments

Syndicate

Subscribe to Syndicate