功能一:實行提交多個job的功能。
物件:Job object
使用:在原始檔開始寫上import job,源程式用mdb.jobs[name]
使用名字為name的job物件。
建立一個job物件的方法:
l
利用已有的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 *
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 = "X-Coordinate", "Y-Coordinate"\n")
#建立一個tecplot的dat檔案
i=1
while i
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=POINT\n"
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(s3)
f.write("\n")
print i;i=i+50
#寫入tecplot的dat檔案中
Cmd中執行:abaqus scrip=plot.py
功能一:實行提交多個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 Plot\n")
f.write("VARIABLES = "X-Coordinate", "Y-Coordinate"\n")
#建立一個tecplot的dat檔案
i=1
while i
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=POINT\n"
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