在abaqus中使用python实现功能

2020-05-05 16:10

在abaqus中使用python实现的功能(一、二)

By lxm9977(lxm200501@sina.com)

功能一:实行提交多个job的功能。

对象:Job object

使用:在源文件开始写上import job,源程序用mdb.jobs[name] 使用名字为name的job对象。

建立一个job对象的方法:

? 利用已有的inp文件中建立job:mdb.JobFromInputFile() ? 利用已有的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 Plot\\n')

f.write('VARIABLES = \

#建立一个tecplot的dat文件 i=1

while i<100: Frame = odb.steps['Step-1'].frames[i]

print odb.steps['Step-1'].frames[i] 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=\ 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的更多功能。

参考了simwe上面很多大牛的文章,希望大家指点啊。 Email:lxm200501@sina.com


在abaqus中使用python实现功能.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英汉习语的差异与翻译

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: