Abaqus的Python后处理详解-kxh
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Abaqus中Python后处理详解
By NUAA
Ph.D Kong Xianghong
2013/04/23
下图是Abaqus ODB
文件的数据结构,后处理操作主要对以下两步分进行操作:
1) 对场变量的读取路径:
odb.setps[].frames[].fieldOutputs[]
2) 对历史变量的读取路径:
odb.setps[].historyRegions[].historyOutputs[]
1 Abaqus ODB 文件数据结构
2.1 创建3D实体Part
创建截面为
10×10mm,长度
为20mm的拉伸
体部件。
2.2 对3D实体Part划分单元
模型建得比较小,划分单元也比较少,这样得到的odb文件也比较小,有助于更方便地了解odb文件的数据结构。
2.3 创建材料及截面
2.4 给Part赋材料属性及创建装配实例
2.5 创建分析步
为了输出HistoryOutput,所以分析步的增了步设置了多步(10步)。
2.6 编辑场输出变量
2.7 为历史输出变量创建Node Set
2.8 编辑历史输出变量
2.9 创建边界条件
施加边界条件的Region为Set-1。
2.10 施加载荷
2.11 创建Job
在Job编辑对话框的Parallelization
标签页中也可定义
并行计算的核数。
2.12 在Abaqus/CAE中查看分析结果
3.1 打开关闭odb文件的方法
方法一:
from odbAccess import *
myodb=openOdb('D:/.../Job-1.odb')
myodb.close()
方法二:
import odbAccess
myodb=session.openOdb('D:/.../Job-1.odb')
myodb.close()
方法三:
import visualization
myodb=visualization.openOdb('D:/.../Job-1.odb')
myodb.close()
3.2 使用prettyPrint()方法查看odb 数据结构(1)在Abaqus 命令行借口中输入如下四行Python 程序:>>> from odbAccess import *
>>> from textRepr import *>>> myodb=openOdb('Job-1.odb')
>>> prettyPrint(myodb,1) 程序运行结果如右图所示,prettyPrint()的第2个参数表示打印odb
文件数据的级数,可以
逐渐调大该参数,观察
打印结果。
注:当odb 文件在Abaqus
的工作路径下时,使用
openOdb()打开odb 文件时
可以不用写路径。
3.2 使用prettyPrint()方法查看odb数据结构(1)
prettyPrint()
的第2个参数设
为2时的打印结
果,可以只关注
steps下的数据。
3.3 使用getIndentedRepr()方法查看odb数据结构(1)
在Abaqus/CAE命令行中输入以下Python程序,可以将odb文件数据打印到指定的文本文件中。
>>>from odbAccess import *
>>>from textRepr import *
>>>f1=open('D:/Report2.txt','w')
>>>myodb=openOdb('Job-1.odb')
>>>r=getIndentedRepr(myodb,2)
>>>f1.write(r)
>>>f1.close()
>>>myodb.close()
右图是将
getIndentedRepr()方法
第二个参数设为4时,
打印到Report4.txt 文件
中是odb 文件数据。仔
细观察文本文件中的
数据结构,有助于更
好的理解odb 文件的数
据结构。
3.3 使用getIndentedRepr()方法查看odb 数据结构
(2)
3.4 在命令行接口中查看odb文件数据(1) >>> from odbAccess import * # 导入odbAccess模块>>> myodb=openOdb('Job-1.odb') # 打开odb文件
>>> mystep=myodb.steps # odb.steps
>>> mystep.keys() # 查看steps
['Step-1']
>>> step1=mystep['Step-1'] # 读取Step-1
>>> step1.__members__ # 查看Step-1中的数据['acousticMass', 'acousticMassCenter', 'description', 'domain', 'eliminatedNodalDofs', 'frames', 'historyRegions',
'inertiaAboutCenter', 'inertiaAboutOrigin', 'loadCases', 'mass', 'massCenter', 'name', 'nlgeom', 'number', 'previousStepName', 'procedure', 'retainedEigenModes', 'retainedNodalDofs',
'timePeriod', 'totalTime']