通过Abaqus python脚本批量获取节点的应力

1. 背景

有限单元法计算单元积分点的应力应变值,而对于节点的应力应变值是通过外插得到的,Abaqus中云图显示的就是经过插值和平均后的节点的值。通过工具栏的Query-Probe values可以查看单元或节点的应力应变结果

对于自动化的后处理场景,通常需自动批量地获取单元/节点的结果,通常都需要通过python脚本来实现。通过类似odb.steps['Step-1'].frames[-1].fieldOutputs['S']的场输出可以比较方便地直接获得单元的积分点应力,但没有直接的API可以获取节点的应力应变等结果。

如果需要获取部件表面节点应力,可以通过创建路径+XYData的方式实现,但想要获得最大节点应力,则该方式不便实现。

2. 通过python脚本获取节点应力结果

本文通过fieldOutput.getSub()函数获取所有单元的节点结果,并对每一节点关联的多个单元节点值进行平均后得到节点结果。以下以某个简单的odb结果进行验证。

1批量获得节点的mises应力值

通过Abaqus python脚本批量获取节点的应力的图1

2批量获得节点的X方向正应力值

通过Abaqus python脚本批量获取节点的应力的图2

3批量获得节点的最大主应力

通过Abaqus python脚本批量获取节点的应力的图3

4)获取节点的最大mises应力及编号

通过Abaqus python脚本批量获取节点的应力的图4

3. 获取节点应变等结果

只需将脚本程序中的应力场改为应变成E等即可,此处不再演示

以下为本文的python脚本代码(代码中作了必要的简单注释)。



该付费内容为:本文的python脚本代码(代码中作了必要的简单注释)。

包含1个附件 44人购买
(11条)
默认 最新
老师,fieldOutput有没有批量导出节点应力结果的方法,只有在可视化才能导出节点应力吗
评论 1 点赞
回复
这篇文章里的脚本程序就可以通过批处理命令的方式调用来后台执行
评论 点赞
实体单元应该可行,但是壳单元验证不可行,暂时没有找到壳单元不可行的原因。 我自己也是同样方法编程的。
评论 1 点赞
回复
壳单元涉及sectionpoint,比实体单元会更复杂些。不过可以直接通过输出rpt文件获取
评论 点赞

查看更多评论 >

点赞 7 评论 19 收藏 31
关注