Python提取场输出结果计算平均应力应变

###########################################################################

写在前面,最近回看了一些自己之前编写的和这个py代码,发现自己写的可能和公式表达的有偏差,在我的测试过程中,提取的是单元积分点处的应力应变值,由于只有一个积分点(这个积分点在质心,与centroid提取得到的结果一样),因此自然的把这个值当成了单元的平均应力或平均应变,然后进行计算,但是我现在觉得这并不是获取单元平均应力的方式,也就是代码并没有实现所谓的提取平均应力应变的功能,希望有大神可以指点迷津。

如果是有多个积分点的话,是不是应该对每个积分点权重进行积分,加权平均这样得到单元的平均应力,然后乘单元体积,将所有单元的值求和再除模型的总体积,就得到整个RVE模型的平均应力。

###########################################################################

最近写了一个简单的python读取abaqus结果中的场输出数据,想通过均匀化计算方法来计算所定义集合的平均应力应变曲线,之前是手动提取了各个数据导出,然后用excel、matlab处理,但是很慢,而且很费劲,于是就想着用Python来处理结果。

有需要的同学可以下载附件文件,打开abaqus,file→run script,选择脚本文件即可运行。

Python提取场输出结果计算平均应力应变的图1average.zip

均匀化计算方法:

c9e90b1b6a0378af95cdebebd9103d1.png

参考文献:马思鸣. 精冲用碳钢微观组织对宏观力学性能及精冲性能影响研究[D]. 上海:上海交通大学,2017.

我在网上找了挺久挺多的关于Python提取场输出结果的,
主要对以下几篇帖子进行了参考:
http://forum.simwe.com/forum.php?mod=viewthread&tid=1283175&highlight=%E5%B9%B3%E5%9D%87%E5%BA%94%E5%8A%9B%E5%BA%94%E5%8F%98
http://forum.simwe.com/forum.php?mod=viewthread&tid=1075473&highlight=Python%E5%90%8E%E5%A4%84%E7%90%86

https://www.jishulink.com/content/post/296436

https://www.jishulink.com/content/post/1189653

https://www.jishulink.com/content/post/542728

但是我找到的案例中输出的都是某一帧所有单元的或者某一单元所有帧的结果,
而我要想求的是所有单元每一帧的结果,以第二篇帖子中的简单模型为案例,集合Set-1定义为整个模型,编写程序计算输出了其应力应变数据,结果如下:

1.png
2.png
(14条)
默认 最新
为什么第21行总是报KeyErro的错误
评论 1 点赞 1
回复
没有定义集合名称吧
评论 点赞 1
line 67,in <module>#evoval3=subField3.valuesIndexError: Sequence index out of range,报错代码,这个什么原因
评论 2 点赞
回复
请问解决了这个问题吗
评论 点赞
回复
这个需要针对你的具体问题去分析,应该是你定义的输出数据的个数超出了数组的长度
评论 点赞

查看更多评论 >

点赞 29 评论 36 收藏 26
关注