黑 劍 科 技
用仿真引領人類科技進步

精講Abaqus批處理

發表時間:2018-12-05 09:30作者:黑劍科技來源:原創

如何實現input文件處理,一直是廣大ABAQUS使用者關心的問題。在ABAQUS軟件中好像并沒有提供一個界面來實現這個功能,所以我們只能通過其它方式去實現,今天我們討論一種使用dos的方式實現,以后再討論python實現方法。現在我們開始!

版本說明:如您的電腦只安裝了一個abaqus的版本,那么就和下面的實例都完全相同;如果您的電腦安裝了兩個及以上的abaqus版本,那么請將實例中的abaqus替換成您需要調用的版本,例如abq6111、abq6121等!

20210106

問題一、怎么實現批處理

首先,新建一個記事本文件,將后綴改為bat,如run.bat,在里面輸入如下內容,然后保存文件,雙擊bat文件既可以運行計算。

call abaqus job=jobname1

call abaqus job=jobname2

說明:這種方式創建的批處理文件,是同時計算所列出來的每項任務,一般不是我們想要的結果,我們想要的應該是計算完第一個后計算第二個,依次計算下去,那么就要使用下面的方法了。


問題二、怎么實現交互式批處理

call abaqus job=jobname1 int

call abaqus job=jobname2 int

    說明:這種方式創建的批處理文件每條語句后面帶有int(interactive),意為交互式的,這樣計算機會計算完第一個job后才開始計算第二個job,達到我們的目的了。但新的問題又來了,我們很多情況下需要調用多個cpu進行計算,那么這時應該怎么辦呢?請看下面。


問題三、怎么實現多cpu計算

call abaqus job=jobname1 cpus=20 int

call abaqus job=jobname2 cpus=20 int

說明:加上cpus這條語句后,系統會調用指定的cpu的個數進行計算,節約計算時間。


問題四、怎么保留批處理的dos框

call abaqus job=jobname1 cpus=20 int

call abaqus job=jobname2 cpus=20 int

    pause

    說明:加上最后一條語句后就算出現錯誤dos黑框也不會一閃而過自動關掉,有時可以從這里快速知道問題出在哪里,從而進行必要的修改。


問題五、怎么刪除文件

call abaqus job=jobname1 cpus=20 int

del jobname1.stt    注釋:刪除第一個job的stt文件

call abaqus job=jobname2 cpus=20 int

del jobname2.dat    注釋:刪除第二個job的dat文件

    說明:有時生成的一些文件很大,會占用大量硬盤空間,那么就需要在計算完成時使用上面的語句,刪除不需要的文件,以便為下一個計算多一些硬盤空間。


問題六、如何restart上一個文件

call abaqus job=jobname1 int

call abaqus job=jobname2 oldjob=jobname1 int

call abaqus job=jobname3 oldjob=jobname2 int

說明:有時為節約計算時間,設置重啟動文件,那么批處理文件里面就可以像上面的寫法,在計算第二個job的時候調用第一個job。當然使用這個的前提是已經確保計算時設置了正確的重啟動,并且重啟動需要的文件都在。


問題七、計算完成后怎么自動關機

call abaqus job=jobname1 cpus=20 int

call abaqus job=jobname2 cpus=20 int

    shutdown –s –f –t 1   1秒后自動強制關機

    說明:上面的最后一條語句會在計算完成時執行,強制關閉計算機,如果不指定f的話,有可能在計算機鎖定狀態下不能關機,因此還是將f加上。


問題八、其它幾個不太常用的命令

    call abaqus terminate job=jobname1 int   殺死任務一般不可恢復

    call abaqus suspend job=jobname1 int   暫停任務可恢復

    call abaqus resume job=jobname1 int   “從上次結束的地方恢復計算


問題九、abaqus不是內部命令,不能批處理提交

    解決方案假如你的abaqus.batD:\SIMULIA\Abaqus\Commands那么在dos下輸入命令path=%path%;D:\SIMULIA\Abaqus\Commands即可。


問題十、顯式計算怎么修改計算精度

    解決方案:將批處理的調用語句改為call abaqus job=jobname1 double int則計算時采用雙精度,但這比較費時,沒有必要的話,就不要加了。


問題十一、怎么查看當前計算狀態

    解決方案:根據個人經驗,一般通過查看sta文件、dat文件、msg文件就可以把握當前任務的運行狀態。


以上為本人親測完全可以使用,如有不全或不妥之處,還請各位齊心協力,完善abaqus批處理技巧!!!


分享到:
網站聲明:本公司嚴格遵守《中華人民共和國廣告法》中關于禁止使用“極限化”用語的規定。即日起,本網站所有宣傳內容中涉及“極限化”的宣傳用語,包括不限于“最好”、“唯一”、“僅有”、“頂級”等用語,立即失效。本公司不接受任何以違反《中華人民共和國廣告法》為由向我司威脅索要錢款的違法惡意行為。
您的留言很重要