中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 1562查看
  • 2回复

Abaqus批处理步骤精讲

[复制链接]

该用户从未签到

发表于 20-6-2014 10:23:25 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


Abaqus批处理步骤精讲
如何实现input文件处理,一直是广大ABAQUS使用者关心的问题。在ABAQUS软件中好像并没有提供一个界面来实现这个功能,所以我们只能通过其它方式去实现,今天我们讨论一种使用dos的方式实现,以后再讨论python实现方法。现在我们开始!
版本说明:如您的电脑只安装了一个abaqus的版本,那么就和下面的实例都完全相同;如果您的电脑安装了两个及以上的abaqus版本,那么请将实例中的abaqus替换成您需要调用的版本,例如abaqus6.11.1、abqus6.12.1等!

问题一、怎么实现批处理
首先,新建一个记事本文件,将后缀改为bat,如run.bat,在里面输入如下内容,然后保存文件,双击bat文件既可以运行计算。
call abaqus job=jobname1
call abaqus job=jobname2
说明:这种方式创建的批处理文件,是同时计算所列出来的每项任务,一般不是我们想要的结果,我们想要的应该是计算完第一个后计算第二个,依次计算下去,那么就要使用下面的方法了。

问题二、怎么实现交互式批处理
call abaqus job=jobname1 int
call abaqus job=jobname2 int
        说明:这种方式创建的批处理文件每条语句后面带有int(interactive),意为交互式的,这样计算机会计算完第一个job后才开始计算第二个job,达到我们的目的了。但新的问题又来了,我们很多情况下需要调用多个cpu进行计算,那么这时应该怎么办呢?请看下面。

问题三、怎么实现多cpu计算
call abaqus job=jobname1 cpus=20 int
call abaqus job=jobname2 cpus=20 int
说明:加上cpus这条语句后,系统会调用指定的cpu的个数进行计算,节约计算时间。

问题四、怎么保留批处理的dos框
call abaqus job=jobname1 cpus=20 int
call abaqus job=jobname2 cpus=20 int
        pause
        说明:加上最后一条语句后就算出现错误dos黑框也不会一闪而过自动关掉,有时可以从这里快速知道问题出在哪里,从而进行必要的修改。

问题五、怎么删除文件
call abaqus job=jobname1 cpus=20 int
del jobname1.stt    “注释:删除第一个job的stt文件”
call abaqus job=jobname2 cpus=20 int
del jobname2.dat    “注释:删除第二个job的dat文件”
        说明:有时生成的一些文件很大,会占用大量硬盘空间,那么就需要在计算完成时使用上面的语句,删除不需要的文件,以便为下一个计算多一些硬盘空间。

问题六、如何restart上一个文件
call abaqus job=jobname1int
call abaqus job=jobname2 oldjob=jobname1 int
call abaqus job=jobname3 oldjob=jobname2 int
说明:有时为节约计算时间,设置重启动文件,那么批处理文件里面就可以像上面的写法,在计算第二个job的时候调用第一个job。当然使用这个的前提是已经确保计算时设置了正确的重启动,并且重启动需要的文件都在。

问题七、计算完成后怎么自动关机
call abaqus job=jobname1 cpus=20 int
call abaqus job=jobname2 cpus=20 int
        shutdown –s –f –t 1   “1秒后自动强制关机”
        说明:上面的最后一条语句会在计算完成时执行,强制关闭计算机,如果不指定f的话,有可能在计算机锁定状态下不能关机,因此还是将f加上。

问题八、其它几个不太常用的命令
        call abaqus terminate job=jobname1 int“杀死任务,一般不可恢复”
        call abaqus suspend job=jobname1 int“暂停任务,可恢复”
        call abaqus resume job=jobname1 int   “从上次结束的地方恢复计算”

问题九、abaqus不是内部命令,不能批处理提交
        解决方案:假如你的abaqus.bat在D:\SIMULIA\Abaqus\Commands下,那么在dos下输入命令path=%path%;D:\SIMULIA\Abaqus\Commands即可。

问题十、显式计算怎么修改计算精度
        解决方案:将批处理的调用语句改为call abaqus job=jobname1 double int,则计算时采用双精度,但这比较费时,没有必要的话,就不要加了。

问题十一、怎么查看当前计算状态
        解决方案:根据个人经验,一般通过查看sta文件、dat文件、msg文件就可以把握当前任务的运行状态。

以上为本人亲测完全可以使用,如有不全或不妥之处,还请各位齐心协力,完善abaqus批处理技巧!!!
  • TA的每日心情
    开心
    27-10-2016 11:25
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    发表于 14-10-2015 10:15:28 | 显示全部楼层
    非常有用,非常感谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    25-4-2016 08:37
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 17-3-2016 14:22:23 | 显示全部楼层
    非常有用,非常感谢
    回复 支持 反对

    使用道具 举报

    快速发帖

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

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 27-4-2024 12:53 , Processed in 0.556760 second(s), 31 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.