ABAQUS各向異性超彈性本構UANISOHYPER_INV

這是我第一次實踐各向異性超彈性本構子程序UANISOHYPER_INV,中間走了幾步彎路,好在最後問題都解決了。把這個過程記錄下來,爲後人鑑。

 1 超彈性本構

剛接觸超彈性本構的時候,很不適應。因爲我之前研究的本構,都會給出非常明確的應力應變關係。比如最簡單的:應力=剛度矩陣×彈性應變。

超彈性本構一般不這麼給,給的都是應變能和不變量之間的關係。比如這樣:

對於新的東西,我本能地用原有的知識體系去套。於是開始拼命的去檢索相關文獻,試圖找到超彈性本構應力和應變的關係到底是怎麼表達的。

結果呢就是,撲街。大家都在各種秀張量,秀應變能,秀不變量。我一度認爲這些人閒着沒事,淨搞形式。

但是也不是一無所獲,文獻中的蛛絲馬跡都指向了UANISOHYPER_INV子程序。

2 UANISOHYPER_INV子程序

 

UANISOHYPER_INV子程序是幹啥的?它就是專門用來定義各向異性超彈性本構的。那麼自然的你就會想,是不是還有專門定義各向同性超彈性本構的呢?當然,這個子程序叫UHYPER。

看懂了UANISOHYPER_INV子程序的設定,你就會恍然大悟,原來真的不需要定義應力應變關係,只要知道應變能和不變量的關係就行了啊。

UANISOHYPER_INV子程序的基本結構如下:

其中主要變量的介紹如下:

也就是說,在UANISOHYPER_INV子程序中定義出應變能、應變能對不變量的導數即可。

 於是我按照幫助文檔的提示,一步步完成了子程序編寫。但是在測試的時候,問題接踵而來。

1 無法提交計算

做了一個簡單拉伸算例。但是提交計算時候,總是報錯:

報錯信息告訴我,可壓縮性材料不能用雜交單元。這個確實不能用,但是我好像沒有用啊。

趕緊去檢查網格屬性和材料屬性設置吧:

確認過眼神,我沒設置錯,但是它就是報錯。

乾脆將錯就錯,把網格屬性改成減縮積分。然後它竟然可以算了。。。。

但是沒有能夠完全收斂,算了兩步就死了。更誇張的是,神奇的現象出現了。

2 拉伸膨脹?

 

我拉伸了一個柱子,結果出來一個紡錘體:

職業生涯第一次算出拉伸膨脹的效果,上網一搜,確實有些特殊材料拉伸膨脹,但是橡膠這樣常規材料是不會的。感覺世界觀被刷新了一下。這個時候我開始懷疑,一定是我的本構搞錯了,什麼本構出來結果,妥妥的本構問題。本構主要就是應變能的定義,以及應變能對不變量的求導。爲了找出本構問題,我反覆複驗推導過程。然而無論怎麼複驗,依舊拉伸膨脹。

 

3 自帶子程序好使不?

我開始懷疑當年學了假的微積分,以致於現在的本構算出一個王八結果。後悔當年數學分析課總是睡覺,老師的山東口音至今迴盪耳邊。

沒辦法了,用ABAQUS自帶的UANISOHYPER_INV子程序和試試吧,這個總是不會錯的吧。

從安裝文件夾下面找到子程序和驗證模型。一番操作提交了計算。

結果:

差一點當場砸電腦,還是告訴我可壓縮性材料不能用雜交單元。那我繼續改成減縮積分單元,將錯就錯下去。

結果還是膨脹。。。。

當場崩潰,回想昨夜調到12點程序,轉眼又搞了一天,我心灰意冷。ABAQUS自帶本構和模型,都報錯都算不對,這肯定是在針對我。

 

4 軟件bug害死人

 

冷靜下來之後,我開始想。明明我設置了不可壓和雜交單元,但是報錯告訴我我是可壓,那麼到底可壓還是不可壓?

我決定打開Inp文件看個究竟,這一看不要緊,一看嚇一跳。

Inp文件明明白白顯示,材料屬性可壓縮!!也就是說,在軟件界面勾選了不可壓,但是這是個假象,勾了等於白勾。

激動的心,顫抖的手,我顫顫巍巍把inp文件可壓改成不可壓,單元改成雜交單元。然後再job裏面導入這個inp提交計算。

終於成功了!!

這一切的一切,都是軟件bug作祟。

老淚縱橫,軟件bug害死人。

最後,有仿真相關需求,歡迎通過微信公衆號聯繫我們。

微信公衆號:320科技工作室。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章