在abaqus中使用python實(shí)現(xiàn)的功能

2016-12-01  by:CAE仿真在線(xiàn)  來(lái)源:互聯(lián)網(wǎng)



功能一:實(shí)行提交多個(gè)job的功能。
對(duì)象:Job object
使用:在源文件開(kāi)始寫(xiě)上import job,源程序用mdb.jobs[name]
使用名字為name的job對(duì)象。
建立一個(gè)job對(duì)象的方法:
l 利用已有的inp文件中建立job:mdb.JobFromInputFile()
l 利用已有的cae中建立job: Job(...)
建議用第一種方法。
設(shè)定參數(shù)的方法:
ü 利用第一種方法建立job的時(shí)候,可以設(shè)定很多的參數(shù),比如type,queue,userSubroutine等。格式:mdb.JobFromInputFile(name=,inputFile=,type=,queue=,userSubroutine=,…….)。
ü 也可以先建立一個(gè)job,然后利用job對(duì)象的setValues來(lái)設(shè)定參數(shù),格式:job.setValues(type=,queue=,userSubroutine=,…….)。
一個(gè)簡(jiǎn)單的例子:
文件:job.py
from abaqusConstants import *
import job
mdb.JobFromInputFile(name='job-1-1',inputFileName='Job-1.inp')
#基于inp文件Job-1.inp建立名稱(chēng)為job-1-1的job
mdb.jobs['job-1-1'].setValues(waitMinutes=1)
#設(shè)定參數(shù)
mdb.jobs['job-1-1'].submit()
#提交任務(wù)
mdb.jobs['job-1-1'].waitForCompletion()
運(yùn)行:
在cmd下面運(yùn)行:Abaqus cae nogui=job.py
如果是多個(gè)job,同樣道理了,不多說(shuō)了。
功能二:后處理,提取需要的數(shù)據(jù),形成可以用其他軟件處理的文件功能:提取odb文件中某個(gè)set中的數(shù)據(jù)(可以是應(yīng)力、應(yīng)變和位移、坐標(biāo)等),建立一個(gè)外部文件,把提取的結(jié)果寫(xiě)到這個(gè)文件中,利用tecplot處理。
1)在Odb對(duì)象中提取場(chǎng)變量:
odb-》steps-》frams-》fieldoutputs【變量名稱(chēng)】
具體odb對(duì)象中的各個(gè)成員如下圖
2)在場(chǎng)變量中選取所需要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')
#建立一個(gè)tecplot的dat文件
i=1
while i<100:
Frame = odb.steps['Step-1'].frames
print odb.steps['Step-1'].frames

coordinate=Frame.fieldOutputs['COORD']
#提取節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)
center = odb.rootAssembly.nodeSets['Set-1']
centerCoordinate = coordinate.getSubset(region=center)
centerValues = centerCoordinate.values
#提取Set-1集合中的節(jié)點(diǎn)坐標(biāo)
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
#寫(xiě)入tecplot的dat文件中運(yùn)行:
Cmd中運(yùn)行:abaqus scrip=plot.py之所以用python因?yàn)閍baqus的界面是基于python的,用它來(lái)進(jìn)行批處理或者后處理是比較不錯(cuò)的,希望能和大家分享abaqus的更多功能。

【免責(zé)聲明】
文章為轉(zhuǎn)載,版權(quán)歸原作者所有。如涉及作品版權(quán)問(wèn)題,請(qǐng)與我們聯(lián)系,我們將刪除內(nèi)容或協(xié)商版權(quán)問(wèn)題!


開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:在abaqus中使用python實(shí)現(xiàn)的功能 abaqus分析培訓(xùn) abaqus技術(shù)教程 abaqus巖土分析 鋼筋混凝土仿真 abaqus分析理論 abaqus軟件下載 abaqus umat用戶(hù)子程序編程 Abaqus代做 Abaqus基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) 

編輯
在線(xiàn)報(bào)名:
  • 客服在線(xiàn)請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線(xiàn)報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話(huà),謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線(xiàn)

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話(huà):13580329919
          135-8032-9919
培訓(xùn)QQ咨詢(xún):點(diǎn)擊咨詢(xún) 點(diǎn)擊咨詢(xún)
項(xiàng)目QQ咨詢(xún):點(diǎn)擊咨詢(xún)
email:kf@1cae.com