
發布
注冊
/
登錄abaqus任務提交的案例
Abaqus任務提交器
學習python的過程中制作了一個Abaqus的任務提交器,可以方便地提交inp和腳本文件,有需要可以私信
ABAQUS批量提交任務-Python腳本
然后這一個的話,僅僅使用inp文件提交作業,inp文件中是不包含cpu數這樣的信息的,所以需要額外指定你所需要的cpu數。
第五步:當所有分析結束之后,60秒后自動關機。
總結:
首先第一種方法是不推薦的,僅僅說明這也是一個批量提交任務的思路。具體為什么不推薦的原因如下:
1. 任務不在一個模型下,就比較難處理。首先我們需要把幾個模型放在一個ABAQUS界面下,然后遍歷各個模型,最后再各個模型中拿到所需要的Jobs再提交。
2. 當任務提交后,ABAQUS/CAE界面無法做其他操作
第二種方式是比較不錯的,可以很輕松的處理不同模型的job,因為他是使用inp直接提交的,和bat的方式類似。提交的方式也比較相似,將ABAQUS command的路徑轉到存放腳本和inp文件的文件夾。使用abaqus cae nogui=xxx.py提交命令。且可以實現運算結束后自動關機的功能。
【PS】喜歡本文的朋友不妨加一下本人的微信公眾號,不定時會推出技術文章。^_^
展開 命令行提交 Abaqus 任務
解決方案可見《常見問題2.0》:假如你的 abaqus.bat 是在 d:\ABAQUS\Commands 下面,在dos下輸入一下命令:
path=%path%;d:\ABAQUS\Commands
想多 cpu 運算(比如 4cpus):
提交任務:
abaqus job=jobname1 int
改為提交任務:
abaqus job=jobname1 cpus=4 int
有些顯式運算,incretment 太多的話(比如多于 30w ),建議用雙精度提交任務:
abaqus job=jobname1 int
改為提交任務:
abaqus job=jobname1 double int
但是誰都知道雙精度比單精度費時,所以沒有如果必要的話,就不需要加這個了。
如果不加int會怎么樣呢?
提交任務:
abaqus job=jobname1 int
改為提交任務:
abaqus job=jobname1
后面加了 int,dos 窗口會顯示任務進行到哪個階段。比如是 pre.exe,還是 standard explicit.exe,還是conpleted,都會給你提示。不加 int 就沒有這些提示了。
如何看任務進程:
一般就是看 .sta 文件。老手推薦 UltraEditor,能自動更新文件內容,可以試試。
Abaqus warning: The .inp extension has been removed from the job identifirer.
出這個一般是因為有的新手提交 job 的時候添加了 inp 后綴,如
abaqus job=jobname.inp
去掉 inp 后綴即可。即使不去掉,軟件也自動忽略這個后綴,這個只是告示說明,不影響計算。
3.
展開 ABAQUS批量提交任務
ABAQUS可以使用Python代碼進行批量提交任務
第一步:
新建文本.txt,復制Python代碼到文本,代碼如下
# -*-coding:UTF-8-*-
from abaqus import *
from abaqusConstants import *
import time
print "==================== 【開 始】 ====================="
jobs = mdb.jobs.keys() #獲得所有任務名稱
for i in jobs: #遍歷所有任務
myJob = mdb.jobs[i] #獲得任務對象
#判斷任務的狀態是否為None,避免重復提交
if myJob.status == None:
t0=time.time() #記錄提交前的時間
myJob.submit() #提交計算
myJob.waitForCompletion() #等待計算完成
print '【%s】計算完成,耗時 %f 秒'%(i,time.time()-t0)
print "==================== 【結 束】 ====================="
第二步:文本格式.txt 修改為 .py
第三步:創建好任務,且任務顯示狀態為 None,不允許有其他狀態,否則提交不成功(可修改代碼值靈活變化)
批量提交有兩種方式:
1、file>Run Script,打開前面保存的.py文件,任務會自動進行
2、直接復制代碼到Abaqus
展開 
linux 提交任務的命令(ansys lsdyna abaqus fluent)
記錄ansys lsdyna abaqus fluent 的命令提交方式
abaqus 提交命令
abaqus job=input <user=userfile> <cpus=n> inter
ansys (mmp 版本17.2)
ansys172 -b -dis -machines node1:4:node2:4 -i input -o output
LS-dyna(SMP,版本17.2)
lsdyna172 i=input.k ncpu=n memory=XXm
LS-dyna (MMP)
lsdyna172 -dis -machines node1:4:node2:4 i=input.k ncpu=n memory=XXm memory2=YYm
Fluent
fluent -ssh -g 3d -t2 -cnf="node1:2" input.jou
-ssh 使用ssh 協議 -tn 便是用n核計算 -g 便是不啟用圖形界面 -3d 表示3D模式 -i XXX 表示輸入文件
-cnf=“”便是制定某個節點用幾核計算
展開 ABAQUS批量提交任務的兩種方法
相信大家在研究過程中都會有這個需求,進行大量工況的批量運算時,怎么讓其自動的一個一個進行提交,而無需手動提交?
這里介紹兩種方法,兩種方法各有優劣,可以根據自己實際情況進行選擇:
Bat文件提交方法;
Python提交方法。
Bat文件
Abaqus command中有一些基本的程序調取命令,經常使用服務器的小伙伴估計都不陌生。在幫助文檔《Abaqus Analysis User's Guide》的3.2.2節中詳細介紹了inp文件提交過程中的關鍵字用法,如下圖所示:
這里給出一個最簡單的inp文件提交格式如下:
abaqus job=job-name int
其中int 為 interactive的縮寫,幫助文檔解釋:在運行過程中反饋進程,隱式求解輸出log文件;顯式求解則輸出status和log文件。Interactive還有一個重要功能是:讓任務一個一個提交,而不是一次性提交運算。
為了批量提交計算,我們可以將任務提交語句寫入bat文本文件,雙擊bat文件即可提交運算;但經常會由于輸入格式錯誤而無法實現預期效果。
錯誤示例:
這也是網上經常遇到的錯誤答案:使用call作為開始關鍵字,或沒有采用int關鍵字。運行后會發現多個任務同時提交,且僅前幾個任務被提交;
正確示例:
以cmd/c為開始,并包含int或interactive關鍵字,此時任務可以順序提交。
展開 ABAQUS中利用Python批量創建提交多個分析任務
lsdyna 單機并行MMP的任務提交
下面提供一種基于ansys GUI 單機MMP提交任務的一種方式,
物理核心20 ,計算用了10個,50%
物理內存64G 計算用37.2G, 60%
單機MPP并行計算.pdf
該文檔打開需要密碼,我沒有設置收費,我想看下有多少人對此感興趣,需要 密碼的 點贊 ,留言
PS:太多留言我沒有來的急回復,現在把密碼公布如下
whlgdx
即: 武漢理工大學 的漢語首字母
lsdyna 提交多個任務 批處理 小結
DYNA提交多個任務,批處理方法小結(涉及版本和目錄自行修改)
1.最簡單的方法,基于dos 批處理提交
cd E:\LS_DYNA_TEST\case1
path=D:\Program Files\Ansys Inc\v100\ANSYS\bin\intel
ls970.exe i=case1.K memory=200000000 ncpu=3 /n
cd E:\LS_DYNA_TEST\case2
path=D:\Program Files\Ansys Inc\v100\ANSYS\bin\intel
ls970.exe i=case2.K memory=200000000 ncpu=3 /n
將以上代碼寫進一個txt文本文檔,然后對文件進行重命名為calculate.bat,雙擊即可運行。
2. Dyna-Job Submitter(可視化界面,Job-submitter)
非本人原創,尊重作者,標注出處
http://forum.simwe.com/forum.php?mod=viewthread&tid=883186&highlight=批處理
Dyna-Job Submitter.rar
3. 基于C++自編程方法,可自行設計(
非本人原創,尊重作者,標注出處
http://forum.simwe.com/forum.php?mod=viewthread&tid=1056743&highlight=批處理)
LSDYNALSDYNA連續求解程序(含源程序) - 副本.rar
展開 abaqus 金屬切削任務的任務
二維的
設計方案及參數:工件及刀具材料屬性表
材料
[td=13%]
E(Gpa)
[td=8%]
μ
[td=15%]
ρ(kg/m3)
[td=11%]
σs(MPa)
[td=11%]
σb(MPa)
[td=8%]
δs(%)
[td=8%]
ψ(%)
[td=6%]
εmax
工件
[td=8%]
45鋼
[td=13%]
209
[td=8%]
0.269
[td=15%]
7890
[td=11%]
377
[td=11%]
624
[td=8%]
26
[td=8%]
55
[td=6%]
1.6
[td=8%]
A3鋼
[td=13%]
212
[td=8%]
0.288
[td=15%]
7860
[td=11%]
231
[td=11%]
407
[td=8%]
30
[td=8%]
54
[td=6%]
1.8
[td=7%]
刀具
[td=8%]
YT15
[td=13%]
530
[td=8%]
0.300
[td=15%]
11500
[td=11%]
/
[td=11%]
/
[td=8%]
/
[td=8%]
/
[td=6%]
/
設計內容
1、參與完成金屬切削有限元分析建模的總體論述;
2、建立二維切削加工有限元分析模型;
3、完成二維切削的仿真實驗;
4、對金屬切削過程中應立場、應變場的變化及其規律進行定性分析
展開 Abaqus批量提交作業 ¥6
<pre class="ql-syntax" spellcheck="false"># -*- coding: utf-8 -*-
from abaqus import *
from abaqusConstants import *
import os
import time
def clean_residual_files(job_name):
"""清理殘留文件函數"""
residual_ext = ['.lck', '.prt', '.sim', '.sta',
'.abq', '.com', '.dat', '.msg','.odb',
'.log', '.odb', '.inp']
for ext in residual_ext:
file_path = job_name + ext
if os.path.exists(file_path):
try:
os.remove(file_path)
 
展開 
Abaqus批量提交inp文件計算
當有多個模型需要計算時,或者一個模型需要多次修改本構參數計算時,可以使用bat文件批量提交inp文件計算。
在txt文件里寫入如下內容,另存為bat文件,雙擊運行就可以批量提交inp文件計算了。本例是提交1.inp、2.inp和3.inp依次計算,可根據自己需要修改。
call abaqus job=1 int cpus=4
call abaqus job=2 int cpus=4
call abaqus job=3 int cpus=4
pause
shutdown -s -f -t 60
注意:
(1)1、2、3是inp文件的名字;
(2)int是interactive的縮寫,可以讓inp文件依次進行計算;
(3)cpus=4是多核計算;
(4)pause是計算完成不關閉cmd窗口;
(5)shutdown -s -f -t 60是計算完3.inp文件(最后一個)后60秒關機,如不關機刪去即可;
(6)如果使用了子程序的,如pqfiber,則如下call abaqus job=1 user=pqfiber.for cpus=4 int ;
(7)如果多個inp文件在不同的文件夾下,加入cd/d C:\a(a為文件夾名字)進行切換即可。
Abaqus批量提交inp文件計算的視頻操作,可以點擊如下鏈接,觀看視頻的章節11。
http://www.yqgqt.org.cn/college/video/c14934
學土木結構的同學,可以關注我!
有用可以點個贊!
展開 ABAQUS批量提交作業-BAT文件
本文主要介紹關于ABAQUS怎么不使用CAE界面提交作業,以及批量提交作業。那么為什么我們需要用命令行來提交作業而不直接從ABAQUS/GUI中提交?畢竟ABAQUS的GUI界面可以說是有限元分析軟件中做的最好的最人性化的界面。
可能的原因如下(個人感受):
Inp中少數關鍵字不為ABAQUS/CAE識別
多個INP需要被提交,且來自于不同的模型不同的分析任務,這就導致無法在CAE界面中同時提交作業
【01 相關命令的介紹】
首先介紹幾個ABAQUS/命令行的幾個重要命令,以及各個命令的含義和須知事項:
提交任務:abaqus job = jobname1 int/interactive, 這個命令是用作提交Job的,命令行中輸入此命令就會直接調用abaqus求解器進行求解。后面跟上的int或interactive含義一樣,加上DOS窗口會顯示任務運行的階段。另外一個功能就是讓任務一個一個交,而不是一次性全部提交。
殺死任務:abaqus terminate job = jobname int, 終止任務一般不可以恢復,但是如果有restart文件,可以重啟動計算
任務暫停和恢復:abaqus suspend/resume job = jobname int, 暫停任務,以及恢復任務,從上次暫停的地方開始接著算。
展開 ABAQUS批量提交Job與Python讀取ODB結果應力應變數據
批量提交的核心是需要等待當前計算任務的結束,上圖中若干個job的提交代碼如下:
# coding: utf-8
#微信公眾號:ABAQUS二次開發
#作者:阿信老師CAE
#email:axin_cae@163.com
#2022.03.17
from abaqus import *
from abaqusConstants import *
jobList = mdb.jobs.keys() #獲取所有計算任務的jobName
for jobName in jobList:
mdb.jobs[jobName].submit(consistencyChecking=OFF) #提交計算
mdb.jobs[jobName].waitForCompletion() #等待計算完成
print jobName , "is completed"
不過在實際的操作過程中,我們可能會需要避開一些job不提交,或者job窗口事先并沒有建立job,等等,總之實際問題永遠比任何教程都復雜,不過只需要靈活面對就可以了,處理起來并不難。
展開 Abaqus模擬焊接提交作業報錯
焊接溫度場已經算完了,在計算應力的時候,出現The file size exceeds the 16 gb limit on unit 10的錯誤是為什么?