Python提取Abaqus ODB中的场变量(Field output)与历史变量(History
output)方法
胡剑桥 (jianqiaohu@)
(1) 创建bat文件,这一步并不是必须的,但是推荐使用。用来提供ODB路径以及写出文件路
径的方法。方便在windows command中提交。也可以直接在Python中提供读写路径。
(2) 关于场变量和历史变量的提取,Python对接odb时有很简单严格的数据结构。具体的ODB
数据结构如下所示:
(3) Field output提取方法。
场变量输出是以一个个set来输出的,如果不选择set,就默认为输出整个模型的对应的场变量,选
择set是为了输出研究者感兴趣区域的场变量。在abaqus model里面创建set时,是有两个地方是
可以用来创建set,所以在选出需要输出场变量区域的时候就涉及到了如下的两种路径:
一是:odb—rootAssembly—Sets
二是:odb—rootAssembly—instances—Sets
用户可以通过相关命令查看对应的集合的名称,以节点集为例。
print 'Node sets = ',odb.rootAssembly.nodeSets.keys()
print 'Node sets = ', odb.rootAssembly.instances['PART-1-1'].nodeSets.keys()
这两种分别能打印出所有节点集合,注意需要预先区分个人定义的节点集合是否在instances上。
定义需要输出区域的语句是:
Region=odb.rootAssembly.nodeSets[‘要研究的Set名’]
而定义相关场变量输出时,语句就非常简单了。
例如,用户想要输出在Step-3,第i个Frame时(也可以写个循环来调用不同Frame)的U3位移
场,这样定义的场变量方式为: