调用UEL(用户单元)的abaqus模型,如何用Python编写脚本进行后处理? 40
大家好
调用UEL(一个模拟粘结滑移的用户单元)的abaqus模型,如何用Python后处理UEL。
比如如何查看用户单元(4节点平面单元)的积分点的mises应力?
我尝试访问了输出数据库(odb),编写如下script:
#!/usr/bin/python
#-*-coding: UTF-8-*-
from abaqus import*
from odbAccess import*
odb=openOdb(path='verifiedmodel.odb')
#单元集合P1就是用户单元集合
topCenter=odb.rootAssembly.instances['NS-1'].elementSets['P1']
stressField = odb.steps['Step-1'].frames[-1].fieldOutputs['S']
field = stressField.getSubset(region=topCenter,
position=INTEGRATION_POINT, elementType = 'U1')
fieldValues = field.values
for v in fieldValues:
print 'Element label = ', v.elementLabel,
if v.integrationPoint:
print 'Integration Point = ', v.integrationPoint
else:
for component in v.data:
print '%-10.5f' % component
运行没有结果。
但是把单元集合换成C2(混凝土单元)或者是S1(钢筋单元),运行是有结果的。
另外,我试着仅运行下列脚本程序:
stressField = odb.steps['Step-1'].frames[-1].fieldOutputs['S']
print stressField
结果只有T3D2(钢筋的类型),C3D8R(混凝土的类型),就是没有U1(用户单元类型)。这是为什么呢?
整个模型是通过运行INP文件,并且调用用户子程序运行出来的,verifiedmodel.odb是该模型的输出数据库,是不是说这个ODB不包含用户单元的信息。
众所周知,abaqus的CAE界面的可视化窗口是不会显示用户单元模型的。
在书中找了资料,庄茁的有本书上说,STA文件会有显示用户单元信息,我查看了,并没有。
在网上找了一个网名为(窗台上的叔本华),讲了要通过编写python脚本来查看用户单元运行的信息,上面所列的程序就是我的尝试,并没有得到结果。
所以想请教大家,如何得到运行后用户单元的信息呢?用python编写脚本可行吗,是程序出了问题吗,还是ODB根本就不包含用户单元的信息呢?
关于UEL的后处理问题,其实可以用UVARM子程序解决,楼主可以在网上搜搜。