Abaqus中材料參數(shù)不為常數(shù)的3種處理方法
2017-03-01 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
1、目地
在有限元計(jì)算中,可能會(huì)碰到材料參數(shù)(這里以線彈性材料彈性模量E為例)在模型中并不為常值的情況,例如,E與某一坐標(biāo)相關(guān)。大家知道,abaqus材料中材料是在*section對(duì)截面屬性定義的時(shí)候?qū)卧M進(jìn)行賦值的。并且GUI中也沒(méi)有提供變參數(shù)的接口(這里順路提一下,載荷是可以通過(guò)函數(shù)給出變載荷的,GUI中有接口)。這就需要我們采取一些特殊的措施。本教程給出3種行之有效的方法,它們分別是:(1)編輯inp文件,(2)使用Umat,(3)Python腳本
2、方法
方法 |
要求 |
難度 |
編輯inp |
會(huì)一門(mén)編程語(yǔ)言,能夠完成對(duì)文本文件的讀取和寫(xiě)入 |
4星 |
使用Umat |
會(huì)使用abaqus的Umat用戶(hù)子程序,計(jì)算文件中不需要使用其它的用戶(hù)子程序 |
3星(如果對(duì)abaqus用戶(hù)子程序不熟悉,則為5星) |
Python腳本 |
會(huì)python基礎(chǔ),對(duì)python編寫(xiě)abaqus腳本了解 |
3星(如果對(duì)python腳本不熟悉,則為5星) |
同樣是根據(jù)坐標(biāo)確定材料參數(shù),使用Umat時(shí),可以直接通過(guò)abaqus用戶(hù)子程序自帶的子函數(shù)直接獲得單元的節(jié)點(diǎn)坐標(biāo),進(jìn)而通過(guò)坐標(biāo)確定材料參數(shù);而使用編輯inp的方法則需要首先通過(guò)編寫(xiě)程序?qū)δ阋呀?jīng)生成的inp文件(包含節(jié)點(diǎn)、單元信息)進(jìn)行讀取,之后對(duì)每一個(gè)單元進(jìn)行材料賦值,而python腳本可以直接通過(guò)命令來(lái)給每個(gè)單元賦材料。從這方面講,對(duì)熟悉Umat和Python的用戶(hù)而言,使用Umat或Python解決這個(gè)問(wèn)題更為方便。上表中給出3兩種方法的一些基本要求,編輯inp文件的方法要求更低,它通過(guò)直接編輯inp文件的方法來(lái)實(shí)現(xiàn)。而使用Umat和Python的方法要求更高,需要用戶(hù)對(duì)子程序和Python有一定的了解,并且也需要會(huì)一門(mén)編程語(yǔ)言。
3、編輯inp方法的簡(jiǎn)單實(shí)施過(guò)程
以Fortran+VS為例,在編輯inp文件時(shí),涉及到了單元節(jié)點(diǎn)信息的讀取、計(jì)算單元(質(zhì)心)坐標(biāo)、計(jì)算彈性模量E、和輸出這幾個(gè)子程序。如圖1所示,prereadnew為讀取節(jié)點(diǎn)、單元信息子程序;processmat為通過(guò)單元坐標(biāo)計(jì)算彈性模量子程序;writeabaqus為輸出子程序。各個(gè)子程序的詳細(xì)信息這里不再贅述,有興趣或者有需求的同學(xué)可以關(guān)注文章最后的公眾號(hào)或者和作者私下聯(lián)系。
圖1 項(xiàng)目及子程序
圖2 inp文件讀取子程序(部分代碼)
圖3 inp文件輸出-材料部分(部分代碼)
通過(guò)以上敘述不難發(fā)現(xiàn),通過(guò)編輯inp文件可以較好的解決材料參數(shù)不為常數(shù)的情況。但是,這需要用戶(hù)具有一定的編程基礎(chǔ),對(duì)abaqus的inp計(jì)算文件有一定的了解。同理,在其它軟件進(jìn)行有限元計(jì)算時(shí),也可以通過(guò)編輯計(jì)算文件的方法來(lái)解決材料參數(shù)不為常值得情況。
4、Umat方法的簡(jiǎn)單實(shí)施過(guò)程
作為Abaqus提供的用戶(hù)自定義子程序中的一種,Umat為用戶(hù)自己定義一種新的材料提供了接口。UMAT子程序具有強(qiáng)大的功能,使用UMAT子程序:
(1)可以定義材料的本構(gòu)關(guān)系,對(duì)ABAQUS 材料庫(kù)進(jìn)行擴(kuò)充;
(2)幾乎可以將任何本構(gòu)關(guān)系運(yùn)用到ABAQUS中的任何單元中;
但是,用戶(hù)必須在UMAT中提供材料本構(gòu)模型的雅可比(Jacobian)矩陣,即應(yīng)力增量對(duì)應(yīng)變?cè)隽康淖兓?而實(shí)際上,這也是Umat子程序最主要的任務(wù)。
承前所述,由于假定彈性模量與坐標(biāo)相關(guān),使用Umat子程序的首要任務(wù)就是找到彈性模量E和坐標(biāo)之間的關(guān)系;之后,才是根據(jù)坐標(biāo)得到彈性模量和泊松比之后對(duì)DDEDDS的編寫(xiě)。這里,依據(jù)Abaqus的幫助文檔,給出了Umat子程序中一些變量的定義:
圖4 Abaqus提供的Umat函數(shù)接口
圖5 部分Umat變量定義
詳細(xì)的參數(shù)介紹大家可以查看abaqus幫助。不難發(fā)現(xiàn)其中并不包含有單元或者節(jié)點(diǎn)的坐標(biāo)信息,但是卻包含有單元的單元編號(hào)信息(NOEL)。而通過(guò)單元編號(hào)又可以關(guān)聯(lián)起來(lái)單元的坐標(biāo)。
圖6 線彈性材料的DDEDDS
圖6中EMOD=PROPS(1)*A(NOEL)/0.125 就是根據(jù)單元NOEL的坐標(biāo)確定其彈性模量的語(yǔ)句,不難看出這個(gè)彈性模量是INP文件中給定的值得A(NOEL)/0.125倍,其中A數(shù)組并不是自定義的數(shù)組,為單元的坐標(biāo)值數(shù)組。
5、imp和Umat算例
對(duì)于如圖8所示的4階魔方結(jié)構(gòu),x軸左端面約束x方向自由度,x軸右端面加載位移。材料彈性模量由約束面到加載面分別為10、30、50、70GPa,而其對(duì)應(yīng)的單元質(zhì)心x軸坐標(biāo)分別為0.125、0.375、0.625、0.875。圖8中所示云圖為單元應(yīng)變E11。
圖7(a) 計(jì)算文件-材料部分-inp編輯方法
圖7(b) 計(jì)算文件-材料部分-Umat方法
圖8 算例結(jié)果
6、Python腳本實(shí)現(xiàn)
Python大法在abaqus前后處理中具有舉足輕重地位和天然的優(yōu)勢(shì),通過(guò)python給單元賦材料屬性非常簡(jiǎn)單,本例中,假設(shè)每個(gè)單元的彈性模量不一樣,并且是一個(gè)函數(shù),我們的思路就是遍歷所有的單元,給每一個(gè)單元定義一種材料。具體實(shí)現(xiàn)如下:
1.模型
以簡(jiǎn)單的Cube模型為例,如圖1,注意由于我們是遍歷單元賦材料,Abaqus中模型必須在劃分好網(wǎng)格后再進(jìn)行賦材料屬性。
圖1 網(wǎng)格模型圖
2. python腳本
下面的代碼較為簡(jiǎn)單,注釋也比較清楚,本例中的E的變化是貼主隨意給的,實(shí)際中E可能是各種形式,具體案例具體分析。
3.結(jié)果
賦材料后,以材料區(qū)分來(lái)顯示模型,可見(jiàn)每個(gè)單元的材料都不一樣,在模型樹(shù)菜單也可以看到,python腳本建立了125種材料(共125個(gè)單元)
圖2 不同單元的材料
圖3 計(jì)算結(jié)果
7、總結(jié)
我們介紹的三種方法都能很好的解決材料參數(shù)不為常數(shù)的問(wèn)題,編輯inp和python對(duì)單元較少時(shí)運(yùn)行效率較高,但是單元較多時(shí),Umat用起來(lái)可能更方便,三種方法大家可以都嘗試一下
最后伙伴們可以長(zhǎng)按掃描下面二維碼關(guān)注我的公眾號(hào)‘CAE仿真實(shí)驗(yàn)室’哦,我們將定期給大家分享有限元仿真干貨,謝謝~
相關(guān)標(biāo)簽搜索:Abaqus中材料參數(shù)不為常數(shù)的3種處理方法 abaqus分析培訓(xùn) abaqus技術(shù)教程 abaqus巖土分析 鋼筋混凝土仿真 abaqus分析理論 abaqus軟件下載 abaqus umat用戶(hù)子程序編程 Abaqus代做 Abaqus基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn)