Skip to main content

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

Submitted by geotech on

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

Tue, 07/13/2010 - 03:44 Permalink

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

Thu, 06/12/2014 - 07:49 Permalink