批量执行ABAQUS的inp文件——整理

参考链接
【1】《ABAQUS批处理技巧》 https://www.doc88.com/p-1925428610474.html
【2】《python实现批量存储文件信息到指定文件》 https://blog.csdn.net/gf_lvah/article/details/79470328?locationNum=14&fps=1
【4】《利用Python对Abaqus进行后处理结果输出》 https://wenku.baidu.com/view/692be0222bf90242a8956bec0975f46527d3a764.html
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 个 cpu2 domain:mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.in p', numCpus=2, numDomains=2)

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

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值