添加环境变量
确保系统变量Path
下含有SIMULIA\Commands
路径。
编写bat文件
在XX.bat
文件下编写
cd filepath
call abaqus job='jobname' input=''inputname user='subroutine' cpus=n int ask=off
Abaqus内置python实现批量计算
from abaqusConstants import*
import job
# 使用job-1.inp文件提交job-1的计算任务,numCpus=2设置cpus数,numDomains=2设置线程数
mdb.JobFromInputFile(name='job-1',inputFileName='job-1.inp',numCpus=2,numDomains=2)
# 提交计算任务
mdb.jobs['job-1'].submit()
# 中断python文件的执行,等待计算任务的完成。
# 在这里waitForCompletion相当于dos批处理下的参数interactive
mdb.jobs['job-1'].waitForCompletion()
mdb.JobFromInputFile(name='job-2',inputFileName='job-2.inp',numCpus=2,numDomains=2)
mdb.jobs['job-2'].submit()
mdb.jobs['job-2'].waitForCompletion()
# 导入其他模块
import os,time,sys
# 实现自动关机
o="c:\windows\system32\shutdown -s -f -t 60"
os.system(o)
python subprocess模块并行提交计算
import subprocess
import time
import os
task_list=[]
for volfrac in [0.1,0.2,0.3,0.4,0.5,0.6]:
for R in [4,5,6]:
for num in range(1,11):
for bc in ["Tension_x","Tension_y","Shear"]:
task_list.append([volfrac,R,num,bc])
i=0
for volfrac,R,num,bc in task_list:
file_name="{}_{}_{}_{}.inp".format(volfrac,R,num,bc)
job_name="Job-{}_{}_{}_{}".format(int(volfrac*100),R,num,bc)
subprocess.Popen('abaqus job={} input={} cpus=2 int ask_delete=OFF'.format(job_name,file_name),shell=True)
print("{} submitted.".format(job_name))
i=i+1
if i==10:
i=0
print("Waiting...")
time.sleep(180)
print("Finished")