windows系统中abaqus计算文件批处理

3
Windows 系 系 ABAQUS 系系系系系系系 如如如如 input 如 ,一 ABAQUS 如 如 ABAQUS 如如如如如如如如如如 如如如如如如如如如如如 如如如如如如如 一, 如如如如如如 如如如如如如如如如如如如 。一,。 Dynaform如如如如 如如如如 job 如如如 如如如如如如如如如如如如如如 ,。,! 如如如如 ABAQUS 如如如如如如如如 DOS 系系系系系系系系系 如如 dos 如如如 如 如如如如如如如如如如 传一 ,。 如如 1call abaqus job=jobname1 call abaqus job=jobname2 call abaqus job=jobname3 call abaqus job=jobname4 如如 job 如如如如如如 如如如如如如如如如如如如如如如如如 ,一一,。? 如如如如如 abaqus job=jobname1 如如如 如如如如如如如如如如 ,,, 如如如如 如 job如 如 如 如 如 。(), job 如 如如如如如如如如如 如如如如 如如如如如如如如如如 如如 ?一。 2call 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

Upload: sunny-gu

Post on 21-Dec-2015

234 views

Category:

Documents


12 download

DESCRIPTION

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

TRANSCRIPT

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

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

如何实现 input文件批处理,一直是广大ABAQUS初学者关心的问题。在ABAQUS软件中好像并没有提供一个界面来实现这个功能,因而不得不自己想办法来实现。但在其他的一些有限元商业软件中,有的软件有这样的模块。据笔者所知Dynaform就单独有一个程序来实现多个 job的计算,非常方便用户计算多个文件。自力更生,丰衣足食!现在我们来看看自己如何实现ABAQUS计算文件批处理吧。

DOS批处理文件实现方法由于可以在命令行窗口启动计算,于是采用 dos批处理文件实现是网上盛传的一种方法,这里主要有两个版本。版本 1:call abaqus job=jobname1call abaqus job=jobname2call abaqus job=jobname3call abaqus job=jobname4试运行后发现,这些 job是同时进行计算的,并不是一个接一个进行计算,这显然有违我们的初衷。那问题出在哪里呢?问题就在于 abaqus job=jobname1完成后,计算工作也许并没有完成,但这条命令已经完成,批处理文件直接转到下一个 job的运行。这样运行的结果可能是(大部分情况都是如此),你要运行的 job在同时计算。有没有其他办法了呢?网上别一个版本告诉我们答案。版本 2:call abaqus job=jobname1 intcall abaqus job=jobname2 intcall abaqus job=jobname3 intcall 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解除

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

关闭命令。

几个常用 dos下批处理版本好,那现在 dos下批处理加关机的程序应该是:call abaqus job=jobname1 intcall abaqus job=jobname2 intcall abaqus job=jobname3 intcall abaqus job=jobname4 intshutdown –s –f –t 60

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

如果要删除计算中生成的文件:call abaqus j=nonJt23-2-a intcall del nonJt23-2-a.comcall del nonJt23-2-a.datcall del nonJt23-2-a.filcall del nonJt23-2-a.mdlcall del nonJt23-2-a.msgcall del nonJt23-2-a.prtcall del nonJt23-2-a.rescall del nonJt23-2-a.stt

如果下一个文件需要 restart上一个文件:call abaqus job=jobname1 intcall abaqus job=jobname2 oldjob=jobname1 int call abaqus job=jobname3 oldjob=jobname2 intcall 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')

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

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-

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,syso="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.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,syso="c:\\windows\\system32\\shutdown -s -f -t 60"os.system(o)

如何执行呢?比如说将上面的 python文件保存为 python-bat.py。打开 ABAQUS

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

Command 窗口,进入 python-bat.py所在目录,输入以下命令即可运行批处理文件。abaqus cae nogui=python-bat.py