STRESS数组在python脚本Abaqus中为空



我想在每个节点上提取我的模型的上表面的应力,但它不能正常完成。当我使用这个脚本:

odb = visualization.openOdb('My.odb')
frame=odb.steps['AStep'].frames[-1]
dispNode = odb.rootAssembly.nodeSets['UPPER']
STRESS= frame.fieldOutputs['S'].getSubset(region=dispNode).values
COORD= frame.fieldOutputs['COORD'].getSubset(region=dispNode).values
print(STRESS)
print(COORD[1].data)

STRESS返回一个空数组。

我怎么能编辑我的脚本有应力及其相应的坐标??

如果您只计算集成点上的压力值,那么您的代码将无法工作。在节点上根本没有值,所以如果你在节点上请求值,你将得到一个空数组。

它应该是这样工作的:

  • 将集成点结果外推到节点
  • 取elementnode值的平均值。这就是它的工作原理:https://stackoverflow.com/a/43175485/4045774
  • 提取节点坐标(变形或未变形)
  • 从您的点集获取节点标签
  • 使用点集中的节点标签找到相应的唯一节点值https://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html

如果您需要一个小的示例代码,请随时询问。

最新更新