Abaqus(批量)提交计算的几种方法 您所在的位置:网站首页 abaqus如何多线程计算 Abaqus(批量)提交计算的几种方法

Abaqus(批量)提交计算的几种方法

2024-02-04 02:00| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有