找回密码
 注册
Simdroid-非首页
查看: 11781|回复: 138

[精华汇总] [原创总结]Windows 系统下实现input文件批处理

[复制链接]
发表于 2007-4-27 18:43:57 | 显示全部楼层 |阅读模式 来自 浙江杭州
本帖最后由 garethz 于 2020-9-16 15:07 编辑


v1.3

支持所有Windows的ABAQUS版本。

自动保存最后一次设置,因为大部分任务的设置基本相同。

可以通过拖动文件的方法选择文件夹,大大提高效率。

优化计算输入显示方式,在计算完成后更容易地观看各个任务结果。


绿色,无需安装其他文件,直接执行。

1.3版本软件下载及详细介绍见
http://forum.simwe.com/thread-894456-1-1.html


常见问题:

1,软件是否支持6.10及以上版本?多版本ABAQUS共存系统如何选择运行的版本?
本软件是利用ABAQUS命令行提交方法来实现的,理论上提交方式不变都能够支持任何版本。我曾经在XP上测试过610版本没有问题。
如果在系统中有多个版本,用特定的命令字可以设定不同的版本,如abq691是表示6.9版本,这也是软件中可选项目。
关于安装多版本ABAQUS软件使用问题的一些讨论
http://forum.simwe.com/viewthread.php?tid=863860&highlight=%2Bgarethz
另外提示一下,“程序版本”和“CPU数量”是可编辑框。什么意思?想想吧。


2, 为什么批处理用于子程序总是出错?
jordan2323 大侠给出解决方案
http://forum.simwe.com/viewthread.php?tid=980911&

3,能否在Vista,Win7系统上使用该程序
说实话,我没怎么用过win7, 曾经试过,没有问题。但没有长时间测试过。Win7的兼容性较好,应该可以使用。
Vista有同学反映不能用。

4,运行程序后出现“abaqus不是内部或外部命令,也不是可运行的程序或批处理文件”?
首先,系统内要安装ABAQUS软件,(废话不是)
如果已经安装,则是相关路径变量没有设置好,请按照下帖的说明重新进行设置
http://forum.simwe.com/thread-905097-1-1.html


5,程序为什么不能运行?
1.2版本以前(含1.2)要安装微软提供的VC2005配置文件,本贴有下载。1.3版后不再需要安装该软件,可直接运行。


6,为什么我的inp文件名有%就会出错?
因为软件是通过批处理文件来实现的,所以在批处理文件中使用的关键字符号,都不能做为inp文件名,如%@等。

7,设定了算完了关机。现在算完了,可是我想不关机了,可是还是硬把我的电脑关了。
如果你看到关机的提示,但又不想马上关闭计算机的话,请进入命令行窗口,输入shutdown –a解除关机命令。


下载:











Windows系统中ABAQUS计算文件批处理



如何实现input文件批处理,一直是广大ABAQUS初学者关心的问题。在ABAQUS软件中好像并没有提供一个界面来实现这个功能,因而不得不自己想办法来实现。但在其他的一些有限元商业软件中,有的软件有这样的模块。据笔者所知Dynaform就单独有一个程序来实现多个job的计算,非常方便用户计算多个文件。自力更生,丰衣足食!现在我们来看看自己如何实现ABAQUS计算文件批处理吧。
DOS批处理文件实现方法
由于可以在命令行窗口启动计算,于是采用dos批处理文件实现是网上盛传的一种方法,这里主要有两个版本。
版本1
call abaqus job=jobname1
call abaqus job=jobname2
call abaqus job=jobname3
call abaqus job=jobname4
试运行后发现,这些job是同时进行计算的,并不是一个接一个进行计算,这显然有违我们的初衷。那问题出在哪里呢?
问题就在于abaqus job=jobname1完成后,计算工作也许并没有完成,但这条命令已经完成,批处理文件直接转到下一个job的运行。这样运行的结果可能是(大部分情况都是如此),你要运行的job在同时计算。
有没有其他办法了呢?网上别一个版本告诉我们答案。版本2
call abaqus job=jobname1 int
call abaqus job=jobname2 int
call abaqus job=jobname3 int
call abaqus job=jobname4 int

这里的int其实就是计算执行中的命令参数interactive。在加上int后,只有在当前计算完成后,才会转入下一个模型的计算。
计算机自动关闭
在学习使用python实现批处理之前,我们先简要介绍一下,dos中如何实现计算机的自动关闭。在dos命令行关闭计算机的命令是:
shutdown –s –f –t 60
-s 关闭本地计算机。
-f 强制关闭计算机。
-t xx 将用于系统关闭的定时器设置为 xx 秒。上面的设置是 60 秒。
需要说明的两点是,-f参数是用在计算机锁定的时候关闭计算机,如果只使用-s在锁定的时候就不能自动关闭计算机了。另外一点是,如果你看到关机的提示,但又不想马上关闭计算机的话,那只有进入命令行窗口,输入shutdown –a解除关闭命令。
几个常用dos下批处理版本
好,那现在dos下批处理加关机的程序应该是:
call abaqus job=jobname1 int
call abaqus job=jobname2 int
call abaqus job=jobname3 int
call abaqus job=jobname4 int
shutdown –s –f –t 60

如果要加运行参数,和平常一样在第一行加上即可,如下面使用多cpu
call abaqus job=jobname1 cpus=2 int
call abaqus job=jobname2 cpus=2 int
call abaqus job=jobname3 cpus=2 int
call abaqus job=jobname4 cpus=2 int

如果要删除计算中生成的文件:
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

如果下一个文件需要restart上一个文件:
call abaqus job=jobname1 int
call abaqus job=jobname2 oldjob=jobname1 int
call abaqus job=jobname3 oldjob=jobname2 int
call abaqus job=jobname4 oldjob=jobname3 int

使用python实现批处理

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。
ABAQUS中,python不仅可以实现软件界面的开发,还能够从命令行实现ABAQUS所有功能。这里用以实现批处理的python语言也就是实现job模块的相关命令。
先看实现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()

不明白这几行不要紧,只要知道这几行干什么就可以了,这里简单解释一下。
from abaqusConstants import *
import job
导入所需的模块和常量。
mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp')
该行通过input文件springback_exp_form.inp生成计算任务job-1-1inputFileNameinput文件的名称,而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模块进行计算的精度等等。下面的代码表示计算任务采用2cpu2domain
mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp', numCpus=2, numDomains=2)
当然还有更多的其他参数,具体可以参考ABAQUS Scripting Reference Manual
这样我们就有一个批处理python范本了:
from abaqusConstants import *
import job

mdb.JobFromInputFile(name=''jobname1',inputFileName='jobname1.inp')
mdb.jobs[' jobname1'].submit()
mdb.jobs[' jobname1'].waitForCompletion()

mdb.JobFromInputFile(name=''jobname2',inputFileName='jobname2.inp')
mdb.jobs[' jobname2'].submit()
mdb.jobs[' jobname2'].waitForCompletion()

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

如何执行呢?比如说将上面的python文件保存为python-bat.py。打开ABAQUS Command 窗口,进入python-bat.py所在目录,输入以下命令即可运行批处理文件。
abaqus cae nogui=python-bat.py
一个input文件批处理小软件
笔者根据以上介绍的dos批处理方法为大家做了一个ABAQUS批处理的小软件,在input文件特别多的情况下非常有用,可以提高工作效率。只要将要进行批处理的input文件放到一个目录当中,在软件中选定这个目录,生成并执行批处理文件即可。计算结果都放在该目录当中。由于在VC2005环境下编程,如果直接执行不能运行,请在运行软件之前,安装一下附带的VC2005配置文件(2.5m)(1.3以后版本不需要)。该软件在Window xp sp2ABAQUS6.6环境测试通过。对于配置文件,如果安装了VS2005,可以在安装目录下的"\SDK\v2.0\BootStrapper\Packages\vcredist_x86"找到vcredist_x86.exe 这个文件,在目标机器上安装后即可运行该程序,当然本帖也有下载。


以往老版本:

ABAQUS-BAT版本1.2

更新(2009116):
1,多CPU选项对explicit和standard算法都有效,
2,增加对所使用ABAQUS版本的选择,并可对使用版本自定义,
3,美化界面为xp界面



ABAQUS-BAT版本1.1


更新(2007-5-15):
1           支持多cpu批处理文件的生成。
2           可以加入自己需要的命令行参数。
3           可以对软件生成的文件进行更个性的编辑处理。
4           加入查看计算目录内容的功能。
5           可以检查是否存在最新版本。
6           增加进入Simwe论坛的链接。

1.1版本详细的说明与下载见(包括上面的word文档):
http://www.simwe.com/forum/thread-778314-1-1.html




以下为旧版本

ABAQUS-BAT版本1.0(2005-4)
只能实现基本的批处理功能。
1.0版本下载






[ 本帖最后由 garethz 于 2009-1-18 10:53 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2007-4-27 21:34:58 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
楼主太有才了,佩服佩服!
dos命令我一直在使用,确实有效。python方式没有用过,开眼界了!
发表于 2007-4-28 08:43:09 | 显示全部楼层 来自 浙江杭州
总结得非常好,谢谢!
发表于 2007-4-28 09:11:42 | 显示全部楼层 来自 英国
这个用处太大了,强力顶!
发表于 2007-4-28 09:41:50 | 显示全部楼层 来自 吉林长春
楼主太有才了,谢谢
发表于 2007-4-28 13:31:19 | 显示全部楼层 来自 浙江杭州
不错,收了
发表于 2007-4-28 14:21:27 | 显示全部楼层 来自 上海松江区
非常感谢楼主提供这么好的资料!!
 楼主| 发表于 2007-4-28 22:23:48 | 显示全部楼层 来自 上海浦东新区
过奖了,很高兴大家喜欢,请多多支持!
发表于 2007-4-29 20:19:59 | 显示全部楼层 来自 浙江台州
太好了,太好了,这个很实用!多谢!
发表于 2007-4-29 21:10:47 | 显示全部楼层 来自 浙江台州
ABAQUS-BAT我运行不了啊,我没有vc2005,我从网上下载了vcredist_x86.exe,但vcredist_x86.exe安装不上,也按照网上的帖子下载并安装了.NET framework 2,但还是运行不了ABAQUS-BAT,这是怎么回事啊?
 楼主| 发表于 2007-4-30 00:38:50 | 显示全部楼层 来自 上海浦东新区
原帖由 tzwjc 于 2007-4-29 21:10 发表
ABAQUS-BAT我运行不了啊,我没有vc2005,我从网上下载了vcredist_x86.exe,但vcredist_x86.exe安装不上,也按照网上的帖子下载并安装了.NET framework 2,但还是运行不了ABAQUS-BAT,这是怎么回事啊?


如果是这个文件应该没有问题的。

这样吧,你留个mail,我给你发个过去吧。
还有谁需要也留个mail.

网上的帖子有问题,安装.NET framework 不能解决安装vcredist_x86.exe的问题,可能和ms不再推动c++有关,现在只大力推动他们的c#,呵呵
发表于 2007-4-30 09:17:47 | 显示全部楼层 来自 浙江杭州

回复 #1 zengguo823 的帖子

很实用,谢谢楼主
发表于 2007-4-30 09:42:16 | 显示全部楼层 来自 浙江台州

回复 #11 zengguo823 的帖子

谢谢啊,我的邮箱wjc1818@126.com,我用你提供的下面的dos命令行,但有个批处理程序更方便
发表于 2007-4-30 10:24:45 | 显示全部楼层 来自 浙江台州
本帖最后由 garethz 于 2010-5-15 22:40 编辑

要么发到公共邮箱:
tmx8888@126.com
密码6个0


[ 本帖最后由 tzwjc 于 2007-4-30 10:27 编辑 ]

这个下载已经不用,谢谢!---garethz
 楼主| 发表于 2007-4-30 11:44:47 | 显示全部楼层 来自 上海浦东新区
原帖由 tzwjc 于 2007-4-30 10:24 发表
要么发到公共邮箱:
tmx8888@126.com
密码6个0
谢谢zengguo823大侠的无私奉献



这个邮箱好!

已经发到这个邮箱里去了。

如果还是不能安装,你换个系统看可以安装否,如果可以的话,就是你系统的原因了。
发表于 2007-4-30 12:01:54 | 显示全部楼层 来自 浙江台州
安装成功,zengguo823大侠是牛人!确实非常方便,这样晚上电脑你就算吧,我就可以舒舒服服地睡觉啦!
 楼主| 发表于 2007-5-1 19:29:07 | 显示全部楼层 来自 浙江杭州
过奖了,其实这个小软件功能简单,只能实现最基本的批处理,加个关机。

还有很多命令不能实现。(还是要一个一个写)

最近准备加个批处理支持多cpu多domain的功能。
发表于 2007-5-1 21:55:06 | 显示全部楼层 来自 浙江台州
zengguo823大虾真是及时雨啊,我今天下午把电脑升级了一下,现在是双核的了,期待zengguo823大虾的大作! :victory: :victory: :victory:
 楼主| 发表于 2007-5-2 10:49:31 | 显示全部楼层 来自 浙江杭州
不会吧,这么巧!不过要过几天了,现在有点事要忙。

[ 本帖最后由 zengguo823 于 2007-5-15 11:42 编辑 ]
 楼主| 发表于 2007-5-15 11:49:59 | 显示全部楼层 来自 浙江杭州

回复 #1 zengguo823 的帖子

ABAQUS-BAT更新为1.1版本,请多提意见,谢谢!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 01:00 , Processed in 0.060497 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表