[原創]Abaqus中材料參數不為常數的Python處理方法
[原創]Abaqus中材料參數不為常數的Python處理方法
在有限元計算中,可能會碰到材料參數(這里以線彈性材料彈性模量E為例)在模型中并不為常值的情況,例如,E與某一坐標相關。大家知道,abaqus材料中材料是在*section對截面屬性定義的時候對單元組進行賦值的。并且GUI中也沒有提供變參數的接口(這里順路提一下,載荷是可以通過函數給出變載荷的,GUI中有接口)。這就需要我們采取一些特殊的措施。在CAE-lab前文《Abaqus中計材料參數不為常數的兩種處理方法》中, 給大家介紹了‘編輯inp文件’和‘使用Umat’兩種方法,這里就給大家介紹一下用python腳本實現的方法。
方法 |
要求 |
難度 |
編輯inp |
會一門編程語言,能夠完成對文本文件的讀取和寫入 |
4星 |
使用Umat |
會使用abaqus的Umat用戶子程序,計算文件中不需要使用其它的用戶子程序 |
3星(如果對abaqus用戶子程序不熟悉,則為5星) |
Python腳本 |
會python基礎,對python編寫abaqus腳本了解 |
3星(如果對python腳本不熟悉,則為5星) |
Python大法在abaqus前后處理中具有舉足輕重地位和天然的優勢,通過python給單元賦材料屬性非常簡單,本例中,假設每個單元的彈性模量不一樣,并且是一個函數,我們的思路就是遍歷所有的單元,給每一個單元定義一種材料。具體實現如下:
1.模型
以簡單的Cube模型為例,如圖1,注意由于我們是遍歷單元賦材料,Abaqus中模型必須在劃分好網格后在進行賦材料屬性。
![clip_image002.jpg [原創]Abaqus中材料參數不為常數的Python處理方法的圖1](http://img.jishulink.com/upload/201702/1487676551570_clip_image002.jpg@!jslnk)
圖1 網格模型圖
2. python腳本
下面的代碼較為簡單,注釋也比較清楚,本例中的E的變化是貼主隨意給的,實際中E可能是各種形式,具體案例具體分析。
mymodel=mdb.models['Cube'] # 獲取模型 mypart=mdb.models['Cube'].parts['Cube'] #獲取part for ele_index in mypart.elements: #單元循環 ele=ele_index.label #單元編號 node=ele_index.getNodes() #單元節點坐標 Matname='Steel'+str(ele) #材料名 mySteel = mymodel.Material(name=Matname) #創建材料 EE=ele*1000+100.E3 # 變化的材料參數 可以是坐標的函數 或者其他 elasticProperties = (EE, 0.3) mySteel.Elastic(table=(elasticProperties, ) ) #設置材料參數 sectionname='CubeSec'+str(ele) mySection = mymodel.HomogeneousSolidSection(name=sectionname,material=Matname, thickness=1.0)#創建section elements=mypart.elements[0] setname='set'+str(ele) region = mypart.Set(elements=mypart.elements[ele-1:ele], name=setname) # 這里elements要為A sequence of MeshElement objects 即類型為tuple mypart.SectionAssignment(region=region, sectionName=sectionname) #賦材料屬性
3.結果
賦材料后,以材料區分來顯示模型,可見每個單元的材料都不一樣,在模型樹菜單也可以看到,python腳本建立了125種材料(共125個單元)
![clip_image008.jpg [原創]Abaqus中材料參數不為常數的Python處理方法的圖3](http://img.jishulink.com/upload/201702/1487676552449_clip_image008.jpg@!jslnk)
圖2 不同單元的材料

圖3 計算結果
4.總結
我們介紹的三種方法都能很好的解決材料參數不為常數的問題,編輯inp和python對單元較少時運行效率較高,但是單元較多時,Umat用起來可能更方便,大家可以都嘗試一下
最后伙伴們可以掃下面二維碼關注我的公眾號‘CAE仿真實驗室’哦,我們將定期給大家分享有限元仿真干貨,謝謝~

工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















