logo资料库

ABAQUS批处理Inp文件.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
DOS批处理文件实现方法
几个常用dos下批处理版本
使用python实现批处理
ABAQUS 批处理 Inp 文件 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 ldjob=jobname1 int call abaqus job=jobname3 ldjob=jobname2 int call abaqus job=jobname4 ldjob=jobname3 int 使用 python 实现批处理 Python 是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构, 简单而有效地实现面向对象编程。Python 简洁的语法和对动态输入的支持,再加 上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语 言,特别适用于快速的应用程序开发。 在 ABAQUS 中,python 不仅可以实现软件界面的开发,还能够从命令行实 现 ABAQUS 所有功能。这里用以实现批处理的 python 语言也就是实现 job 模块 的相关命令。 先看实现 job 批处理的 python 基本代码: from abaqusConstants import * import job p') mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.in 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.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 个 cpu,2 个 domain: mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.in p', 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
分享到:
收藏