首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python脚本从abaqus odb文件中读取平均节点应力?

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

Stack Overflow用户
提问于 2016-09-22 13:40:05
回答 1查看 3.6K关注 0票数 1

我知道如何使用python脚本读取元素或元素节点应力值(非平均值)。

代码语言:javascript
复制
field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4')

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

EN

回答 1

Stack Overflow用户

发布于 2016-09-23 04:05:52

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

代码语言:javascript
复制
session.xyDataListFromField(odb=odb,
        outputPosition=ELEMENT_NODAL,
        variable=(( 'S', INTEGRATION_POINT), ),
        elementSets=('PART-1-1.SETNAME', ))

这将为每个元素的每个节点和每个应力分量(即,巨大的)。不幸的是,字典是由繁琐的描述符串组成的,例如:

代码语言:javascript
复制
 session.xyDataObjects['S:S11 PI:PART-1-1 E: 15 N:2'].data

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

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

代码语言:javascript
复制
session.xyDataListFromField(odb=odb,
        outputPosition=NODAL,
        variable=(( 'S', INTEGRATION_POINT), ),
        nodeSets=('PART-1-1.SETNAME', ))

字典对象的键值如下:

代码语言:javascript
复制
 session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data

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

为了完整性,如果你只想要一个特定的组件,你可以这样请求:

代码语言:javascript
复制
 variable=(( 'S', INTEGRATION_POINT,((COMPONENT, 'S11'),)), )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39631065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档