如何使用python脚本从abaqus odb文件读取平均节点应力?

2024-10-01 11:23:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何使用python脚本读取元素或元素节点的应力值(unaverage)。在

field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4')

但我需要节点处的平均应力值。仅供参考,我的odb不包含应力的节点位置数据(即,位置=节点)。在


Tags: 脚本元素field节点positionintegrationregionpoint
1条回答
网友
1楼 · 发布于 2024-10-01 11:23:24

这是其中一个比它应该更麻烦的事情。 您需要创建xydata:

session.xyDataListFromField(odb=odb,
        outputPosition=ELEMENT_NODAL,
        variable=(( 'S', INTEGRATION_POINT), ),
        elementSets=('PART-1-1.SETNAME', ))

这将为每个元素的每个节点和每个应力分量(即巨大的)创建一个包含对象的字典。不幸的是,字典是由繁琐的描述符字符串键入的,例如:

^{pr2}$

给出与元素15相关的节点2的11应力分量。要使用脚本中的数据,您需要构造字符串,或者遍历字典并为每个对象解析positionDescription。在

编辑:如果你想要节点平均值,它几乎是一样的。你需要:

session.xyDataListFromField(odb=odb,
        outputPosition=NODAL,
        variable=(( 'S', INTEGRATION_POINT), ),
        nodeSets=('PART-1-1.SETNAME', ))

字典对象的键控方式如下:

 session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data

注意,您可以发出多个session.xyDataListFromField调用,所有数据都进入xyDataObjects(例如,如果您想要压力和应变,可以同时处理这两个问题)在

为了完整起见,如果您只需要特定组件,您可以请求:

 variable=(( 'S', INTEGRATION_POINT,((COMPONENT, 'S11'),)), )

相关问题 更多 >