
發布
注冊
/
登錄ABAQUS子程序調用的案例
ABAQUS顯式子程序調用規則及nblock變量解釋
ABAQUS在調用VUHARD子程序時,每次向子程序提供136個單元(單元數<136則提供所有單元)進行計算,使用(do k=1,nblock → end do)計算每一個單元的相關變量。因此對于1000單元來說,一共調用8次子程序。
設置全局變量commom /globals/ kdtest,在ABAQUS每一次調用子程序之后,給其加一,統計模擬過程中的總循環數,在(do k=1,nblock → end do) 循環內部輸出變量kdtest的值。(全局變量可以不跟著k的循環而變化,用戶可以根據需求設置其在代碼中的功能),結果截圖如下:
共1000個數據,1~7各重復了136次,8重復了48次,與上述分析一致。
因此在nblock實際代表的是ABAQUS提供給子程序的材料點塊,這個塊區包含的單元數與模型單元數有關,而k則是對該材料點塊實現一個遍歷,確保每個單元都被考慮到。本研究僅針對于單核計算來講,多核模擬將在后續展開介紹。
展開 Abaqus用戶子程序USDFLD調用GETVRM 返回值為0
SDEG云圖是有數值的但是調用一直為零麻煩各位大佬幫忙看看 以下是源代碼 SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT, 1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER, 2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO, 3 LACCFLA) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME,ORNAME CHARACTER*3 FLGRAY(15) DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3), 1 T(3,3),TIME(2) DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*), 1 COORD(*) C real alfa,K0,D,DAMAGED_K,K PARAMETER(TOLER=1.0E-6) alfa=4.0 K0=1.0E-6 C Absolute value of current strain: CALL GETVRM('SDEG',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA) D=ARRAY(1) IF (D.LE.TOLER) THEN D=0 END IF DAMAGED_K=EXP(alfa*D) K=K0*DAMAGED_K C field variable FIELD(1)=D C state variable STATEV(1)=D STATEV(2)=K C If error, write comment to .DAT file: IF(JRCD.NE
展開 Abaqus調用內置子程序模擬形狀記憶合金 ¥19.89
超彈性示意圖如圖2所示
圖2 超彈性示意圖
為了在Abaqus中模擬形狀記憶合金的形狀記憶效應以及超彈性行為,我們可以通過編寫Umat/Vumat子程序來實現。但是由于編寫子程序需要很高的門檻,同時也需要花費大量時間精力,因此本文向大家介紹了一種直接調用Abaqus內部SMA材料本構的方法。
SMA內置本構的調用方法與自編子程序相比更加便捷,無需安裝Fortran開發環境。同時Abaqus內置的SMA子程序適用于隱式分析和顯示分析。
通過Abaqus模擬得到的SMA單向拉伸載荷位移曲線如下所示
展開 調用UMAT子程序
在調用編寫的子程序時出現以下錯誤,請問各位大俠是什么錯誤啊?
ABAQUS Error: Problem during compilation - df.exe not found in PATH.
ABAQUS/Analysis exited with errors

將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數,只好加一條循環判斷語句。
如果誰能找著這樣的函數,請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當ANSYS在運行時,file.err是不可寫的,只有當它運行完畢,此文件才可寫。
數據文件(假設輸出的數據文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標函數
out1(2)=1-eymax !
展開 MARC調用用戶子程序的問題一些技巧
MARC調用用戶子程序的問題.txt
下載地址:
http://www.caenet.cn/data/Data.aspx?ID=309
ansys之——將ANSYS作為子程序調用
將ANSYS作為子程序調用
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。
在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數,只好加一條循環判斷語句。
如果誰能找著這樣的函數,請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當ANSYS在運行時,file.err是不可寫的,只有當它運行完畢,此文件才可寫。
數據文件(假設輸出的數據文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標函數
out1(2)=1-eymax !
展開 設計仿真 | 新版本Dytran 用戶子程序調用及案例分享
Dytran編譯器設置
● 系統及所有程序安裝完成后進行開發環境設置:
進入Dytran Explorer界面,點擊Tools下的Options按鈕,進入選項窗口,設置編譯環境所需的組件路徑。
完成路徑設置后即可進行UDS的提交。
案例說明
在液體晃蕩分析過程中,我們通常需要將液體部分的質心進行輸出,以查看其在晃蕩過程中液體對結構狀態的影響,要實現該功能需要通過其EXOUT子程序接口將所有Euler單元的質量及位置坐標進行處理得到整體質心位置并輸出。
將Dytran安裝目錄下/usr-subrtns/文件夾內的dytran_usersub.f子程序源文件作為模板,編輯該文件下的EXOUT子程序,遍歷每個歐拉單元的質量以及質心,通過數據處理后,實現歐拉單元內液體部分質心輸出的功能。
在Dytran Explorer中,在提交作業時,將UDS路徑指向編輯好的Fortran源代碼,點擊RUN按鈕后即可進行作業提交。
程序會首先將源代碼編譯為動態鏈接庫,并在目錄下生成dytran_usersub.dll文件,該文件可以代替子程序源文件,在沒有編譯器的環境下進行子程序的提交。當采用動態鏈接庫進行作業提交時,只能采用CMD形式,具體命令如下:
文章小結
Dytran UDS接口讓用戶方便的實現求解器的二次開發,大大擴充了Dytran的功能,有效提高了Dytran在工程上的通用性。
展開 在Linux(Centos7)下的用戶子程序調用的環境變量設置 ¥10
目前為止,網絡上依然沒有在linux系統下用戶子程序調用的環境變量設置與關聯,對Linux系統及其命令陌生的部分學生和科研人員而言,是個較大的挑戰。
為此,本文將以Centos 7 這一Linux操作系統為例,列出含用戶子程序調用的調試流程,以便給大家一些指導。
特別聲明,此文僅供學生、科研等人員本人參考、學習使用,請勿他用。
PLC的條件跳轉、子程序調用知識大全,學會了就是老電氣師傅了!
當我們按下X001的時候,指針調用到P11,程序開始從P11這個地方從上往下開始執行,當碰到第一個SRET的時候,程序又返回到主程序中,但是在這個程序中如果X002被接通,那么程序指針則調用到P12,程序開始從上到下運行,當碰到第二個SRET的時候,程序返回到P12這個地方,然后在碰到第一個SRET的時候,返回到主程序。因為P12這個程序是嵌套在P11這個程序中的,所以我們要注意,在PLC中這種程序嵌套最多只能使用5級。
更多電工電氣電路水電裝修專業知識請關注微信公眾號:電工干貨,或者加小編V?:2650502291,感謝!
中斷指令:
中斷指令總共有3條,我們用一個表格來詳細說明:
在這里FEND前面的為主程序,FEND后面的為中斷子程序,中斷子程序能否進行與中斷條件與中斷指針有關,所以在這里我們得給大家說說中斷指針的格式:
中斷指針:
定時中斷:
程序示例:
我們先給大家介紹一下這個程序:FEND前面的程序表示主程序,后面的表示中斷子程序,EI表示允許中斷,IRET表示中斷返回指令,I610指針表示,中斷時間為10mm,6表示最高中斷級別。
當我們按下X000后K1的數據被傳送到D1里面去,K255的數據被傳送D2里面去,M1被置位接通,中斷子程序運行。
展開 基于python語言的ANSA二次開發——如何調用python設計的子程序 ¥2
ANSA的二次開發可以借助強大的python語言來實現,具體的開發流程如下:
(1)用python編寫自己所需的操作程序;
(2)建立對應的調用函數的句柄函數;
(3)在ANSA面板上建立關聯句柄函數的面板按鈕;
(4)設置保存相應的ANSA設置參數;
(5)點擊對應的面板按鈕即可運行相應的程序。
一、如何創建圖形界面控制程序腳本
1.新建程序腳本文件,以函數名命名,格式為.py。例如建立腳本TestButton.py。
腳本程序內容如下圖所示:

一個abaqus用戶材料子程序(UMAT)問題解決說明 附Abaqus用戶子程序專題下載
在開展abaqus用戶子程序的項目時,容易出現很多bug問題,下面是一個比較典型的容易遇到的報錯。
The job input file "Job-1.inp" has been submitted for analysis.
Job Job-1: Analysis Input File Processor aborted due to errors.
Error in job Job-1: Analysis Input File Processor exited with an error.
檢查工作路徑下的log文件(Job-1.log),提示無法識別“ifort”,這就意味著這個命令在系統路徑中無法被識別。實際上,“ifort”適用于編譯Fortran文件的,如果無法使用則無法完成編譯。
log文件內容
為了解決這個問題,在系統文件中找到“ifort.exe”,并將其添加到環境變量path中,然后重啟軟件即可解決。
添加路徑
下載地址:Abaqus用戶子程序專題
展開 Abaqus子程序混凝土和鋼筋材料子程序
用戶子程序(Vumat及Umat)咨詢,率本構
Abaqus內置LaRC05失效準則子程序(附cohesive單元umat子程序開發教程)
Abaqus從2017版本開始,內置了UVARM和DMGINI兩種子程序供用戶調用。UVARM子程序需要以“ABQ_LARC05_DMGCRT”作為材料名的前綴,可以用來評估是否滿足LaRC05強度指標;DMGINI子程序需要以“ABQ_LARC05_DMGINI”作為材料名前綴,可以結合XFEM來分析裂紋萌生和擴展。
在abaqus中可以通過修改關鍵字來進行模型設置
UVARM設置
DMGINI設置
輸出變量的含義
計算結果
此外,如果有小伙伴希望學習cohesive單元的umat子程序開發相關技術,可以關注下圖的教程:
點擊鏈接進入了解詳情:Abaqus Cohesive單元介紹及其本構的Umat子程序開發教程
最后,有ABAQUS子程序開發相關需求歡迎通過微信公眾號聯系我們。
微信公眾號:320科技工作室。
展開 利用abaqus進行激光增材制造仿真(單元生死+DFLUX子程序+python程序)
利用abaqus實現了增材打印的有限元仿真:
(1)實現了單元生死的控制;
(2)編寫了基于高斯熱源的DFLUX子程序,實現了多掃描通道的仿真;
(3)利用python語言實現了分析步和接觸的定義。