Windows 系统中生成 ABAQUS 批处理计算文件
提交命令方式
在 Windows 中点击[开始]→[程序]→[ABAQUS 6.x]→[ABAQUS Command],然后在 Dos 窗口中输入命令提交
将命令写入 bat 文件,双击提交
Win+R–>cmd,然后在 Dos 窗口中输入命令提交
对于批处理文件,最好采用方式二,即生成 bat 文件。
**注意:**三种方式都需要将路径“C:\ABAQUS\Commands”加入环境变量,该路径是 abaqus.bat 或 abq201x.bat 所在的文件夹
提交任务命令格式
在 bat 文件中写入以下代码,双击即可提交作业。常用命令格式如下:
1 2 3 4 5 call abaqus job=jobname1 cpus=5 int ask_delete=OFF call abaqus job=jobname2 cpus=5 int ask_delete=OFF call abaqus job=jobname3 cpus=5 int ask_delete=OFF call abaqus job=jobname4 cpus=5 int ask_delete=OFF ...
abaqus:根据安装版本不同而变化,常见的有 abq6144、abq6143、abaqus 等,具体是什么可以在 C:\ABAQUS\Commands 文件夹中查看;一台电脑上装有多个版本时,需要注意改这里。如 ABAQUS2016 与 ABAQUS6.14.4 同时存在,需要调用 ABAQUS6.14.4 进行计算时,提交命令为:
1 2 3 4 5 call abq6144 job =jobname1 cpus =5 user =xxx.obj int ask_delete =OFF call abq6144 job =jobname2 cpus =5 user =xxx.obj int ask_delete =OFF call abq6144 job =jobname3 cpus =5 user =xxx.obj int ask_delete =OFF call abq6144 job =jobname4 cpus =5 user =xxx.obj int ask_delete =OFF .. .
jobname:即需要计算的 inp 的文件名,注意后面不能加后缀名.inp,会报错
cpus:用于计算的处理个数
user: 调用子程序的名称,如果不调用子程序,去掉user命令即可
int:这里的 int 其实就是计算执行中的命令参数 interactive;在加上 int 后,只有在当前计算完成后,才会转入下一个模型的计算
ask_delete=OFF:表示允许覆盖写入,如果不加这句,需要手动删除旧文件才可以分析
有些显式运算,incretment 太多的话(比如多于 30w),建议用双精度提交任务,提交命令为:
1 2 3 4 5 call abaqus job =jobname1 cpus =5 double int ask_delete =OFF call abaqus job =jobname2 cpus =5 double int ask_delete =OFF call abaqus job =jobname3 cpus =5 double int ask_delete =OFF call abaqus job =jobname4 cpus =5 double int ask_delete =OFF .. .
其他常用命令
在dos 窗口输入以下代码可以杀死、暂停、恢复当前任务
1 2 3 4 5 6 7 8 杀死任务:(一般不可恢复) abaqus terminate job=jobname1 int 任务暂停:(可恢复) abaqus suspend job=jobname1 int 恢复运算:(从上次分析结束的地方重新开始分析) abaqus resume job=jobname1 int
在 dos 命令行关闭计算机的命令是:
1 2 3 4 5 6 7 shutdown –s –f –t 60 -s 关闭本地计算机。 -f 强制关闭计算机。 -t xx将用于系统关闭的定时器设置为xx 秒。上面的设置是60 秒。
需要说明的两点是,-f 参数是用在计算机锁定的时候关闭计算机,如果只使用-s 在锁定的时候就不能自动关闭计算机了。另外一点是,如果你看到关机的提示,但又不想马上关闭计算机的话,那只有进入命令行窗口,输入 shutdown –a 解除关闭命令。
查看任务进程
一般就是看 .sta 文件,推荐 UltraEditor,能自动更新文件内容
Python 生成 bat 文件代码
以下代码可以自动获取指定目录下的所有 inp 文件,并生成批处理 bat 文件。此外,该 bat 文件会记录每个任务计算开始的时间和计算结束的时间,可用于分析计算成本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 import osimport timedef file_name (file_dir ): File_Name = [] for files in os.listdir(file_dir): if os.path.splitext(files)[1 ] == '.inp' : File_Name.append(os.path.splitext(files)[0 ]) return File_Name path = input ("请输入存放inp文件的路径:" ) cpus = input ("请输入要使用的CPU数量:" ) abaqusVertion = input ("请输入调用的ABAQUS版本(例如abaqus、abq6144、abq6143等):" ) os.chdir(path) nowpath = os.getcwd() inp_file_name = file_name(nowpath) nowtime = time.strftime("%Y-%m-%d %H:%M:%S" , time.localtime()) jobnumber = len (inp_file_name) headinformation = """echo off echo. echo. echo ------This file is made by Python echo ------This software is programmed by He Xiaoteng echo ------This file is made at {0} echo ------Total {1} jobs in current directory {2} echo ------Job begins! echo. echo. """ .format (nowtime, jobnumber, nowpath)solveinformation = """ echo ------------------------------------Job{a} ------------------------------------ Job{a} echo ----------Start time of {b}---------- >>{d}.txt echo %date% >>{d}.txt echo %time% >>{d}.txt echo. call {e} job={b} cpus={c} interactive ask_delete=OFF echo. echo. echo ----------End time of {b}---------- >>{d}.txt echo %date% >>{d}.txt echo %time% >>{d}.txt """ endinformation = """ echo off echo. echo. echo ------Job ends! Thank you for using ABAQUS-Bat-HXT echo ------Any problems please Call me(公众号:何小藤) """ fp = open (path + '\\ABAQUS-Bat-HXT.bat' , mode='w' , encoding='ANSI' ) fp.write(headinformation) for job in range (1 , jobnumber + 1 ): fp.write(solveinformation.format (a=job, b=inp_file_name[job - 1 ], c=cpus,d=inp_file_name[job - 1 ]+'_AanlyseTime' ,e=abaqusVertion)) fp.write(endinformation) fp.close()
结语
将以上代码打包成了 exe 文件,可以在公众号何小藤
并在后台回复
bat
获取下载链接(免费无套路),链接中包括 Python 安装包、UltraEditor、 Python 生成 bat 文件代码和可执行 exe 文件;也可以自行安装 Python,直接运行即可。
Windows 系统中生成 ABAQUS 批处理计算文件