找回密码
 注册
Simdroid-非首页
查看: 1284|回复: 26

[二次开发] Python脚本提取单元EVOL,做单元积分点Mises应力对体积平均

[复制链接]
发表于 2014-11-15 09:12:35 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 qdx天风海涛 于 2016-12-19 10:48 编辑

from abaqus import*
from abaqusConstants import*
import xlrd
import xlwt
import regionToolset
import math
import material
from odbAccess import*
file=xlwt.Workbook()
table=file.add_sheet('sheet1',cell_overwrite_ok=True)

odb = openOdb(path='single_film_distribution1_boundary.odb')
framesnumber=len(odb.steps['Step-1'].frames)
print "framesnumber=",framesnumber
i=0
while i<framesnumber:
        region = odb.rootAssembly.elementSets['WHOLE']
        field1=odb.steps['Step-1'].frames.fieldOutputs['S']
field2=odb.steps['Step-1'].frames.fieldOutputs['SDV5']
        field3=odb.steps['Step-1'].frames.fieldOutputs['EVOL']
        subField1=field1.getSubset(region=region)
        subField2=field2.getSubset(region=region)
        subField3=field3.getSubset(region=region)
        sum_mises=0
        sum_sdv5=0
        vol=0
        j=0
while j<len(subField1.values):
                val1=subField1.values[j]
                val2=subField2.values[j]
                val3=subField3.values[j]
                mises=val1.mises*val3.data
                sdv5=val2.data*val3.data
                vol=vol+val3.data
                sum_mises=sum_mises+mises
                sum_sdv5=sum_sdv5+sdv5
                j+=1
        ave_sdv5=sum_sdv5/vol
        ave_mises=sum_mises/vol
        table.write(i,0,ave_sdv5)
        table.write(i,1,ave_mises)
        i+=1
file.save('demo1.xls')
#
#
#
上面是我写的一个脚本用来提取Mises应力和VUMAT程序里面的一个变量SDV5,提取的时候是按每个积分点来提取的,同时对单元的体积进行平均,但是在我输出val3的时候发现所有的值都是0,有没有人了解这一方面的人给解答一下###########################################################################后来修改过了,确定运行没有问题;其中的SDV5是我子程序里面的一个变量,不需要的人可以把关于它的句子删掉。


发表于 2017-4-17 21:53:54 | 显示全部楼层 来自 四川成都
Simdroid开发平台
楼主,怎么判断这个S是单元应力还是节点应力呢?
回复 1 不支持 0

使用道具 举报

 楼主| 发表于 2014-11-15 09:14:15 | 显示全部楼层 来自 江苏南京
我上面的东西主要是参考了wuweide127做的一个类似的脚本写的,http://forum.simwe.com/forum.php ... 3%E4%BD%93%E7%A7%AF
回复 不支持

使用道具 举报

发表于 2015-2-2 15:40:01 | 显示全部楼层 来自 浙江杭州
是不是需要打开几何大变形?

另外请问一下,这样取数据 能保证s  和 Evol  单元顺序一致么?
回复 不支持

使用道具 举报

 楼主| 发表于 2015-2-3 15:37:56 | 显示全部楼层 来自 河北保定
cartographer 发表于 2015-2-2 15:40
是不是需要打开几何大变形?

另外请问一下,这样取数据 能保证s  和 Evol  单元顺序一致么?

顺序是没有问题的,比如val1=subField1.values[j],里面的j代表的就是单元编号
回复 不支持

使用道具 举报

发表于 2015-2-3 16:18:13 | 显示全部楼层 来自 浙江杭州
qdx天风海涛 发表于 2015-2-3 15:37
顺序是没有问题的,比如val1=subField1.values[j],里面的j代表的就是单元编号

好的
多谢!^^
回复 不支持

使用道具 举报

发表于 2015-2-4 11:12:59 | 显示全部楼层 来自 辽宁沈阳
里程碑有限元工作室长期招聘CAE兼职待遇优厚,工作时间自由:主要涵盖以下软件ANSYS / FLUENT / ANSOFT / LS-DYNA/ABAQUS / MATLAB / DEFORM / MARC/UG / CATIA / ANSA / HyperMesh / ProCAST。如果您熟悉任意一款软件请联系我们,我们欢迎您的加入。QQ群号:223669838!!!
回复 不支持

使用道具 举报

发表于 2016-3-17 08:33:01 | 显示全部楼层 来自 北京
Hi 谢谢楼主 我是从File---Run Script 然后出现错误 能告诉我怎么运行么
回复 不支持

使用道具 举报

发表于 2016-3-17 08:34:23 | 显示全部楼层 来自 北京
ImportError: No module named xlrd
回复 不支持

使用道具 举报

发表于 2016-3-30 11:22:54 | 显示全部楼层 来自 辽宁沈阳
为了防止别人出现我出现的问题,来更正一下啊!!!
        field1=odb.steps['Step-1'].frames[i]:).fieldOutputs['S']
        field2=odb.steps['Step-1'].frames:)[i]:).fieldOutputs['SDV5']
        field3=odb.steps['Step-1'].frames:)[i]:).fieldOutputs['EVOL']
笑脸是为了着重啊,请忽略
回复 不支持

使用道具 举报

发表于 2016-3-30 11:24:48 | 显示全部楼层 来自 辽宁沈阳
pangshaobing 发表于 2016-3-17 08:34
ImportError: No module named xlrd

需要自行安装xlrd等库,而且这个库还需要装到abaqus的python文件目录中。
具体方法请自行百度。
虽然时间已经比问题晚了太久,但是希望能对后来者有帮助吧。
回复 不支持

使用道具 举报

发表于 2016-4-8 09:09:25 | 显示全部楼层 来自 北京
GiantRoot 发表于 2016-3-30 11:24
需要自行安装xlrd等库,而且这个库还需要装到abaqus的python文件目录中。
具体方法请自行百度。
虽然时间 ...

已经完成 谢谢lz Good luck
回复 不支持

使用道具 举报

发表于 2016-12-8 09:48:06 | 显示全部楼层 来自 陕西西安
楼主你好,我为什么在运行过程中中总是出现错误,错误如下C:\Users\lph\Desktop\12.JPG
将['whole']删除后,又出现了如下C:\Users\lph\Desktop\123.JPG问题
回复 不支持

使用道具 举报

发表于 2016-12-8 09:49:24 | 显示全部楼层 来自 陕西西安
刚才问题没有输入进去

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2016-12-8 09:54:08 | 显示全部楼层 来自 陕西西安
pangshaobing 发表于 2016-4-8 09:09
已经完成 谢谢lz Good luck

你好,你能调节通吗?为什么我的总是出现问题,请你指教一下,我的问题在楼下
回复 不支持

使用道具 举报

 楼主| 发表于 2016-12-19 10:47:28 | 显示全部楼层 来自 江苏苏州
GiantRoot 发表于 2016-3-30 11:22
为了防止别人出现我出现的问题,来更正一下啊!!!
        field1=odb.steps['Step-1'].frames.field ...

确实出了问题,非常感谢,我修改一下
回复 不支持

使用道具 举报

 楼主| 发表于 2016-12-19 10:51:17 | 显示全部楼层 来自 江苏苏州
海平面 发表于 2016-12-8 09:49
刚才问题没有输入进去

我那个whole是把我需要提取的部分创建了一个set,然后提取的时候对这个set里面的进行操作,对于你这个问题 你看看是不是你这里面中文路径的问题啊
回复 不支持

使用道具 举报

发表于 2016-12-27 21:32:45 | 显示全部楼层 来自 陕西西安
qdx天风海涛 发表于 2016-12-19 10:51
我那个whole是把我需要提取的部分创建了一个set,然后提取的时候对这个set里面的进行操作,对于你这个问 ...

问题已经解决,think you
回复 不支持

使用道具 举报

发表于 2017-1-8 19:05:03 | 显示全部楼层 来自 中国
cartographer 发表于 2015-2-2 15:40
是不是需要打开几何大变形?

另外请问一下,这样取数据 能保证s  和 Evol  单元顺序一致么?

耶耶耶耶耶耶耶耶耶耶耶耶耶耶
回复 不支持

使用道具 举报

发表于 2017-2-10 14:42:36 | 显示全部楼层 来自 四川成都
楼主,如果要提取11方向的平均应力怎么办?把S改成S11不行啊
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 03:47 , Processed in 0.048618 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表