Abaqus(批量)提交计算的几种方法 | 您所在的位置:网站首页 › abaqus如何多线程计算 › Abaqus(批量)提交计算的几种方法 |
Abaqus提交计算最常用的方法就是在Abaqus软件中通过Submit提交分析(见下图)。 Abaqus提交计算最常用方法但如果你的模型文件较大,如采用上述方法,Abaqus软件界面容易卡死,还有个别问题只能通过命令行提交计算。因此可以通过以下三种方法提交计算,以下方法计算时无需打开Abaqus软件界面,占用的计算资源相对较小。 开始之前首先检查有没有将Abaqus 的Commands添加到环境变量中,过程如下。 1.右击我的电脑—属性 2.高级系统设置 3.高级—环境变量 4.系统变量—点选Path—编辑 5.看看变量里面有没有SIMULIA\Commands的路径,若果有则结束。如果没有,自己新建一个,找到Abaqus安装目录下的SIMULIA\Commands,将其地址复制粘贴到你新建的变量中。 确定好环境变量后,就可以按以下三种方法提交计算。 第一种: 1.Abaqus中在Job模块下,点击Write Input ,将在工作目录下生成inp文件(如已有inp文件的则跳过此步骤); 2.Win+R键,输入cmd,回车 3.进入到求解文件所在的盘符,如需要计算的inp文件在G盘,则输入G:,回车 4.进入需要计算的inp文件夹下,复制地址到命令窗口,输入cd+复制的地址,回车 5.输入abaqus job=文件名 cpus=6 int ask=off 回车即可提交计算 注意: 文件名无需加.inp后缀,只需文件名即可,注意大小写; cpus=?根据自己电脑的cpu核心定,如cpu为8核,则一般输入6即可; int 表示显示求解信息,即Abaqus在计算时会在命令行窗口打印一些信息供用户了解Abaqus现在在干嘛; ask off 如果之前算过一次,再一次计算,若不加ask off 会让你确定是否覆盖上一次计算结果,加上ask off表示默认覆盖;(在遇到已经存在的任务时,abaqus会询问是否覆盖先前的 job,如果不想被询问直接覆盖先前的任务,可以在上述命令结尾加上ask = off) 在帮助文档《Abaqus Analysis User's Guide》的3.2.2节中详细介绍了inp文件提交过程中的关键字用法,如下图所示:(http://wufengyun.com:888/v6.14/books/usb/default.htm) 如果出现下图提示,则根据提示将上面的abaqus换成abq2020(版本不一样,此处替换也不一样) 计算完成后会有提示,计算过程中可以在inp计算文件夹下用打开.sta的文件,里面会更新计算到第几步了 实时观察计算步骤第二种:(win7系统可能不支持) 1.进入需要计算的inp文件夹下,按住Shift,点击鼠标右键,选择在此处打开Powershell窗口 2.输入第一种方法第五步的命令回车即可 第三种: 1.进入需要计算的inp文件夹下,新建一个文本文档txt,将文档以英文命名,将第一种方法里的第五步命令输入,保存关闭; 2.将扩展名.txt修改为.bat,确定;(若看不到后缀.txt,则点击查看,勾选文件扩展名) 3.双击运行这个bat文件,即可进入求解。 批量提交计算 如果有好几个inp文件需要计算,我们不可能一个提交计算在那等着结束再提交另一个,这样费时费力,通过批量提交计算,一个计算结束自动进入下一个计算,计算完成自动关机。这样就可以前一天晚上提交计算,第二天查看结果了! 第一种:不同inp文件放置在同一文件夹下 1.将需要计算的inp文件放在同一个文件夹下,新建一个文本文档txt,将文档以英文命名,参考上述第一种方法里的第五步命令输入,保存关闭; 放在同一文件夹下输入命令2.将扩展名.txt修改为.bat,确定; 修改扩展名3.双击bat文件,即可进行顺序提交计算。 如果按上述方法启动Abaqus算完第一个就出现闪退的话,可以将call换成cmd/c,重新求解。 如果同一文件夹下inp文件过多的话,按上述方法每个inp文件都要创建对应的call命令,比较繁琐。下面就介绍一种简化命令,两句命令就可以求解多个inp文件。 1.将需要计算的inp文件放在同一个文件夹下,新建一个文本文档txt,将文档以英文命名,输入下图所示命令,保存关闭; 2.将扩展名.txt修改为.bat,确定; 3.双击bat文件,即可对该文件夹下的所有inp文件提交计算。 第二种:不同inp文件位放置在不同文件夹下 (以下内容参考自http://www.feaworks.org/ 和 https://geomatlab.com/abaqus-job-command/) 如果按第一种方法将不同inp文件放在同一文件夹下提交计算,计算后的结果都会如下图一样放在同一文件夹内,不是很清爽。 于是可以将不同inp文件分别放在不同文件夹下,这样求解的结果就会放在对应的文件夹下。 不同inp放在不同文件夹下假设不同inp文件路径为: 则可以每次进入一个文件夹,再调用Abaqus进行计算,命令如下: 将上述命令保存为.bat文件,双击运行即可。 有时候我们会希望计算机在计算完成后自动关机,可以通过在上述命令的最后面添加关机命令: -s 关闭本地计算机 -f 强制关闭计算机 -t xx 将用于系统关闭的定时器设置为 xx 秒,例如上面的设置是 30秒。 取消关机命令可以采用: 用python实现 Python语言可以实现ABAQUS前后处理模块的二次开发,同时也可以采用Python实现ABAQUS所用功能,这里采用Python实现不同job的连续计算。 实现job批处理的Python基本代码如下: 将上面的python文件保存为 run.py ,进入 run.py 所在目录,打开cmd窗口输入以下命令即可运行批处理文件: 之前在网上查到的ABAQUS inp文件任务批量提交方法,如用批处理命令或利用ABAQUS内置Python环境提交,有一定局限性,比如如果批量提交的任务中,某个任务由于计算不收敛而终止,会造成整个提交队列终止,而不能继续进行。本程序利用Python subprocess模块并行提交任务,任务间不会互相干扰,即使某个任务报错或不收敛,不会影响整个队列。在inp文件所在目录下,运行下面Python程序,即可批量提交任务。 最后,如何通过命令提交带有子程序的inp文件进行计算呢? 首先将inp与子程序文件放在同一文件夹内,命令如下: 放入同一文件夹内user = 子程序文件名 如果我们直接用bat文件的方法提交,会有下方提示,直接出错无法运行。 正确操作方法如下: 1.在安装程序中找到【Intel Parallel Studio XE 2020】,点击【Compiler 19.1 Update 3 for Intel 64 Visual Studio 2019 environment】(不同 Fortran 版本名字不一样),打开Fortran的DOS窗口; Fortran的DOS窗口2.将目录切换到需要计算的inp文件夹内 切换目录3.输入上方的命令,回车,开始求解 输入命令开始求解4.打开sta文件查看求解进度 5.求解完成会有提示! 至于包含子程序的批量计算(把上面的看一遍再看这个) 1.将不同的inp文件和子程序文件放在不同的文件夹下 放在不同的文件夹下2.同样安装上述方法打开Fortran的DOS窗口,将下方命令复制进去,回车 3.软件会自动从上往下执行计算,直到所有inp都计算完毕。 整理不易,三连一下呗! END —祝收敛! ——本文是结合锦衣夜行说UP视频以及其他网站内容整理而成 |
CopyRight 2018-2019 实验室设备网 版权所有 |