不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

在abaqus中如何將損耗模量的值代入子程序中?

瀏覽:2499 回答:3

abaqus擬合prony級數來表示材料的粘彈性,也會自動的生成損耗模量和儲存模量。如果我要在子程序中使用損耗模量參與計算,請問該如何調用這個材料屬性?

邀請回答 我來回答

全部回答

(1)
默認 最新
Hertz Ho

你這個問法有點問題啊,得先理清楚Abaqus里粘彈性參數的底層邏輯。Prony級數本來就是時間域的松弛模量展開,而損耗模量是頻域里的概念,這倆不是直接等價的。你要在子程序里調用損耗模量,得先搞明白兩件事:


第一,Abaqus自動生成的損耗模量存哪了?在材料庫里選好Prony級數后,軟件確實會根據你輸入的瞬時模量E0和各Prony項系數,通過傅里葉變換算出存儲模量E'和損耗模量E''。但這些頻域參數不會直接塞進材料屬性數組里,而是藏在材料定義的后臺數據里。你要在子程序里調用,得通過*MATERIAL定義里手動輸入的參數名來索引,比如用props(1)到props(n)傳你自定義的模量值。

第二,你確定要用損耗模量參與計算?如果子程序是UMAT或VUMAT,默認處理的是應力更新,而粘彈性本構在時間域里用松弛模量更直接。要是非得用損耗模量,得先做頻時轉換。這時候得在子程序里自己實現Prony級數到復模量的轉換公式:E*(ω)=E'+iE''=E0[1+Σ(gi/(1+iωτj))],其中gi和τj是Prony項的系數和松弛時間。

不過這里有個坑——Abaqus生成的E'和E''是基于你指定的頻率范圍離散計算的,直接調用的話得先搞清楚軟件用了多少個頻率點。你檢查過.inp文件里*VISCOELASTIC選項卡的FREQUENCY參數沒?要是沒指定,軟件默認用10個對數等分頻率點,從1e-3到1e3 rad/s。這時候你的子程序里得預先知道這些頻率點,或者動態獲取頻率數組。

再問個關鍵問題:你寫的子程序是用于顯式還是隱式分析?隱式求解器(Standard)里可以用*FREQUENCY提取模量數據,但顯式(Explicit)里得自己處理時間積分。要是用UMATHT做熱粘彈性耦合,那又得考慮溫度場的影響。

最后給你個實操建議:在子程序開頭用GETVRM函數讀取材料參數,像這樣CALL GETVRM('E',ARRAY=e_array,JARRAY=jarray,JRCD=jrcd),但這個只能拿到瞬時模量E0。損耗模量得你自己根據Prony系數算,或者提前在材料定義里用*USER MATERIAL把E''作為自定義參數傳進去。比如:

*USER MATERIAL, CONSTANTS=3

1.0, 0.3, 0.1 ! 這里第三個參數就是E''

然后在子程序里通過props(3)調用。不過這么做就繞開了Abaqus自動生成的E'',你得自己保證參數一致性。

2025年5月11日
評論 2 點贊 3

沒解決?試試專家一對一服務

換一批
    App下載
    技術鄰APP
    工程師必備
    • 項目客服
    • 培訓客服
    • 平臺客服

    TOP