1.DOS 批处理文件实现方法


在txt文件里写入如下内容,另存为bat文件,双击运行就可以批量提交inp文件计算了。

call abaqus job=jobname1 int cpus=4
call abaqus job=jobname2 int cpus=4
call abaqus job=jobname3 int cpus=4
call abaqus job=jobname4 int cpus=4
pause
shutdown -s -f -t 60

(1)“job=”后面写要执行的inp文件名

(2)计算机自动关闭 。-s 关闭本地计算机。 -f 强制关闭计算机。 -t xx 将用于系统关闭的定时器设置为 xx 秒。上面的设置是 60 秒。 需要说明的两点是, -f 参数是用在计算机锁定的时候关闭计算机,如果只使用-s 在锁定的时候就不能自动关闭计算机了。 另外一点是, 如果你看到关机的提示,但又不想马上关闭计算机的话,那只有进入命令行窗口,输入 shutdown –a 解除关闭命令。

(3)这里的 int 其实就是计算执行中的命令参数 interactive。在加上 int 后,只有 在当前计算完成后,才会转入下一个模型的计算。

(4)pause是计算完成不关闭cmd窗口;

(5)cpus=4是多核计算;

(6)如果要删除计算中生成的文件:

call abaqus j=nonJt23-2-a int
call del nonJt23-2-a.com
call del nonJt23-2-a.dat
call del nonJt23-2-a.fil
call del nonJt23-2-a.mdl
call del nonJt23-2-a.msg
call del nonJt23-2-a.prt
call del nonJt23-2-a.res
call del nonJt23-2-a.stt



(7)如果下一个文件需要 restart上一个文件:



call abaqus job=jobname1 int
call abaqus job=jobname2 ldjob=jobname1 int 
call abaqus job=jobname3 ldjob=jobname2 int
call abaqus job=jobname4 ldjob=jobname3 int

2.Python批处理文件实现方法


(1)实现 job 批处理的 python 基本代码



from abaqusConstants import *
import job
mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp')
mdb.jobs['job-1-1'].submit()
mdb.jobs['job-1-1'].waitForCompletion()

(a) import job 导入所需的模块和常量。 mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.in p') 该行通过 input 文件 springback_exp_form.inp生成计算任务 job-1-1。 inputFileName 是 input 文件的名称,而 name是计算任务名称, 也就是生成的 odb 等文件的名称。 mdb.jobs['job-1-1'].submit() 计算文件生成后,提交计算任务。 mdb.jobs['job-1-1'].waitForCompletion() 中断 python 文件的执行,等待计算任务的完成。在这里 waitForCompletion 相当于 dos批处理下的参数 interactive。 如果要在计算完成后自动关机,加入以下 python代码:

import os,time,sys
o="c:\windows\system32\shutdown -s -f -t 60"
os.system(o)

在 python 实现批处理代码中也可以加入命令行中的各个参数,如 numCpus 代表使用的 cpu数量, explicitPrecision 是设定使用 explicit 模块进行计算的精度 等等。下面的代码表示计算任务采用 2 个 cpu,2 个 domain:mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.in p', numCpus=2, numDomains=2)

(2)修改指定参数后再批量执行job文件 ——[没写完,有时间再写]