Abaqus(批量)提交計算的幾種方法

Abaqus提交計算最常用的方法就是在Abaqus軟件中通過Submit提交分析(見下圖)。

但如果你的模型文件較大,如采用上述方法,Abaqus軟件界面容易卡死,還有個別問題只能通過命令行提交計算。因此可以通過以下三種方法提交計算,以下方法計算時無需打開Abaqus軟件界面,占用的計算資源相對較小。

開始之前首先檢查有沒有將Abaqus 的Commands添加到環(huán)境變量中,過程如下。
1.右擊我的電腦—屬性

2.高級系統(tǒng)設置

3.高級—環(huán)境變量

4.系統(tǒng)變量—點選Path—編輯

5.看看變量里面有沒有SIMULIA\Commands的路徑,若果有則結束。如果沒有,自己新建一個,找到Abaqus安裝目錄下的SIMULIA\Commands,將其地址復制粘貼到你新建的變量中。


確定好環(huán)境變量后,就可以按以下三種方法提交計算。
第一種:
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=?根據(jù)自己電腦的cpu核心定,如cpu為8核,則一般輸入6即可;
int 表示顯示求解信息,即Abaqus在計算時會在命令行窗口打印一些信息供用戶了解Abaqus現(xiàn)在在干嘛;
ask off 如果之前算過一次,再一次計算,若不加ask off 會讓你確定是否覆蓋上一次計算結果,加上ask off表示默認覆蓋;(在遇到已經(jīng)存在的任務時,abaqus會詢問是否覆蓋先前的 job,如果不想被詢問直接覆蓋先前的任務,可以在上述命令結尾加上ask = off)
在幫助文檔《Abaqus Analysis User's Guide》的3.2.2節(jié)中詳細介紹了inp文件提交過程中的關鍵字用法,如下圖所示:(http://wufengyun.com:888/v6.14/books/usb/default.htm)

如果出現(xiàn)下圖提示,則根據(jù)提示將上面的abaqus換成abq2020(版本不一樣,此處替換也不一樣)

計算完成后會有提示,計算過程中可以在inp計算文件夾下用打開.sta的文件,里面會更新計算到第幾步了



第二種:(win7系統(tǒng)可能不支持)
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算完第一個就出現(xiàn)閃退的話,可以將call換成cmd/c,重新求解。


如果同一文件夾下inp文件過多的話,按上述方法每個inp文件都要創(chuàng)建對應的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文件路徑為:
則可以每次進入一個文件夾,再調用Abaqus進行計算,命令如下:
將上述命令保存為.bat文件,雙擊運行即可。

有時候我們會希望計算機在計算完成后自動關機,可以通過在上述命令的最后面添加關機命令:
-s
?關閉本地計算機
-f
?強制關閉計算機
-t xx
?將用于系統(tǒng)關閉的定時器設置為 xx 秒,例如上面的設置是 30秒。
取消關機命令可以采用:

用python實現(xiàn)
Python語言可以實現(xiàn)ABAQUS前后處理模塊的二次開發(fā),同時也可以采用Python實現(xiàn)ABAQUS所用功能,這里采用Python實現(xiàn)不同job的連續(xù)計算。
實現(xiàn)job批處理的Python基本代碼如下:
將上面的python文件保存為?run.py?,進入?run.py?所在目錄,打開cmd窗口輸入以下命令即可運行批處理文件:

之前在網(wǎng)上查到的ABAQUS inp文件任務批量提交方法,如用批處理命令或利用ABAQUS內置Python環(huán)境提交,有一定局限性,比如如果批量提交的任務中,某個任務由于計算不收斂而終止,會造成整個提交隊列終止,而不能繼續(xù)進行。本程序利用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窗口;


2.將目錄切換到需要計算的inp文件夾內

3.輸入上方的命令,回車,開始求解


4.打開sta文件查看求解進度


5.求解完成會有提示!


至于包含子程序的批量計算(把上面的看一遍再看這個)
1.將不同的inp文件和子程序文件放在不同的文件夾下

2.同樣安裝上述方法打開Fortran的DOS窗口,將下方命令復制進去,回車
3.軟件會自動從上往下執(zhí)行計算,直到所有inp都計算完畢。

整理不易,三連一下唄!
END
—祝收斂!
——本文是結合錦衣夜行說UP視頻以及其他網(wǎng)站內容整理而成