在abaqus中使用python实现的功能

2016-12-01  by:CAE仿真在线  来源:互联网



功能一:实行提交多个job的功能。
对象:Job object
使用:在源文件开始写上import job,源程序用mdb.jobs[name]
使用名字为name的job对象。
建立一个job对象的方法:
l 利用已有的inp文件中建立job:mdb.JobFromInputFile()
l 利用已有的cae中建立job: Job(...)
建议用第一种方法。
设定参数的方法:
ü 利用第一种方法建立job的时候,可以设定很多的参数,比如type,queue,userSubroutine等。格式:mdb.JobFromInputFile(name=,inputFile=,type=,queue=,userSubroutine=,…….)。
ü 也可以先建立一个job,然后利用job对象的setValues来设定参数,格式:job.setValues(type=,queue=,userSubroutine=,…….)。
一个简单的例子:
文件:job.py
from abaqusConstants import *
import job
mdb.JobFromInputFile(name='job-1-1',inputFileName='Job-1.inp')
#基于inp文件Job-1.inp建立名称为job-1-1的job
mdb.jobs['job-1-1'].setValues(waitMinutes=1)
#设定参数
mdb.jobs['job-1-1'].submit()
#提交任务
mdb.jobs['job-1-1'].waitForCompletion()
运行:
在cmd下面运行:Abaqus cae nogui=job.py
如果是多个job,同样道理了,不多说了。
功能二:后处理,提取需要的数据,形成可以用其他软件处理的文件功能:提取odb文件中某个set中的数据(可以是应力、应变和位移、坐标等),建立一个外部文件,把提取的结果写到这个文件中,利用tecplot处理。
1)在Odb对象中提取场变量:
odb-》steps-》frams-》fieldoutputs【变量名称】
具体odb对象中的各个成员如下图
2)在场变量中选取所需要set的变量:
Odb-》rootAssembly-》Sets
或者odb-》rootAssembly-》instances-》Sets
上面两种方法取决了你在inp文件种是在assembly定义了Set还是在Instance中定义了Set。具体的如下图
文件:plot.py
from odbAccess import *
from abaqusConstants import *
import string
print 'begin abaqus python'
print 'today is 10-29'
print 'this code is for 3node_sin.odb'
odb = openOdb(path='3node_sin.odb')
myAssembly = odb.rootAssembly
f=open('plot/3node_sin1.dat','w')
f.write('TITLE = Example: Simple XY Plotn')
f.write('VARIABLES = "X-Coordinate", "Y-Coordinate"n')
#建立一个tecplot的dat文件
i=1
while i<100:
Frame = odb.steps['Step-1'].frames
print odb.steps['Step-1'].frames

coordinate=Frame.fieldOutputs['COORD']
#提取节点坐标数据
center = odb.rootAssembly.nodeSets['Set-1']
centerCoordinate = coordinate.getSubset(region=center)
centerValues = centerCoordinate.values
#提取Set-1集合中的节点坐标
count=len(centerValues)
s='ZONE T=" '+str(i)+' Zone", I='+str(count)+', F=POINTn'
f.write(s)
for v in centerValues:
s2=str(v.data[0])
s3=str(v.data[1])
f.write(s2)
f.write('t')
f.write('t')
f.write(s3)
f.write('t')
f.write('n')
print i;i=i+50
#写入tecplot的dat文件中运行:
Cmd中运行:abaqus scrip=plot.py之所以用python因为abaqus的界面是基于python的,用它来进行批处理或者后处理是比较不错的,希望能和大家分享abaqus的更多功能。

【免责声明】
文章为转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将删除内容或协商版权问题!


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:在abaqus中使用python实现的功能 abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com