
發(fā)布
注冊(cè)
/
登錄場輸出的案例
python提取abaqus場輸出結(jié)果
最近寫了一個(gè)簡單的python讀取abaqus結(jié)果中的場輸出數(shù)據(jù),就在這里簡單的講一下整個(gè)流程。后續(xù)采用abaqus讀取場輸出結(jié)果應(yīng)用也挺廣泛。整個(gè)過程的流程圖可以用下圖來概括,因?yàn)椴皇怯?jì)算機(jī)專業(yè),考慮沒那么細(xì)致,很多python函數(shù)也是即查即用,當(dāng)然程序后續(xù)根據(jù)要求也可以不斷更改。
Abaqus二次開發(fā)之Python腳本讀取場輸出位移
本次腳本將要指定數(shù)據(jù)庫文件,并輸出指定位置(set)的位移信息。
編程思路:
寫注釋行,盡量詳細(xì)解釋腳本語句,增強(qiáng)可移植性;
導(dǎo)入相應(yīng)模塊;
本次實(shí)例要輸出場輸出位移信息,必須訪問分析步、幀;
創(chuàng)建對(duì)象時(shí),分步創(chuàng)建多個(gè)變量表示對(duì)象(推薦):
創(chuàng)建變量表示odb對(duì)象,打開輸出數(shù)據(jù)庫;
創(chuàng)建變量表示第一個(gè)分析步;
創(chuàng)建變量表示第一個(gè)分析步的最后一幀;
創(chuàng)建變量表示節(jié)點(diǎn)集;(本次案例節(jié)點(diǎn)集只有一個(gè)節(jié)點(diǎn))
創(chuàng)建變量表示訪問第一個(gè)分析步最后一幀的位移U.
操作腳本如下:
結(jié)果如下:
Node label: 1000
Displacement in X direction: -7.891572e-34
Displacement in Y direction: -76.45553
Displacement: 76.4555282593
注:本文中涉及的模型文件和完整腳本文件可在Up的公眾號(hào):易木木響叮當(dāng),中回復(fù)“讀取場輸出數(shù)據(jù)”自動(dòng)獲取。
展開 abaqus二次開發(fā):后處理批量提取場輸出和歷程輸出結(jié)果(源碼帶注釋) ¥198
abaqus二次開發(fā):后處理批量提取場輸出和歷程輸出結(jié)果(購買后需要加V私聊獲取使用教程)
購買后,請(qǐng)加V:wzd_1021_
更多插件內(nèi)容,請(qǐng)私聊
同時(shí)提供定制hypermesh/hyperview/abaqus前后處理插件開發(fā)。
Python提取場輸出結(jié)果計(jì)算平均應(yīng)力應(yīng)變
###########################################################################
最近寫了一個(gè)簡單的python讀取abaqus結(jié)果中的場輸出數(shù)據(jù),想通過均勻化計(jì)算方法來計(jì)算所定義集合的平均應(yīng)力應(yīng)變曲線,之前是手動(dòng)提取了各個(gè)數(shù)據(jù)導(dǎo)出,然后用excel、matlab處理,但是很慢,而且很費(fèi)勁,于是就想著用Python來處理結(jié)果。
有需要的同學(xué)可以下載附件文件,打開abaqus,file→run script,選擇腳本文件即可運(yùn)行。
average.zip
均勻化計(jì)算方法:
參考文獻(xiàn):馬思鳴. 精沖用碳鋼微觀組織對(duì)宏觀力學(xué)性能及精沖性能影響研究[D]. 上海:上海交通大學(xué),2017.
我在網(wǎng)上找了挺久挺多的關(guān)于Python提取場輸出結(jié)果的,
主要對(duì)以下幾篇帖子進(jìn)行了參考:
http://forum.simwe.com/forum.php?mod=viewthread&tid=1283175&highlight=%E5%B9%B3%E5%9D%87%E5%BA%94%E5%8A%9B%E5%BA%94%E5%8F%98
http://forum.simwe.com/forum.php?
展開 
abaqus 獲取odb場輸出中某一集合的數(shù)據(jù)
contextscope=all
odb = openOdb(path='Job-2.odb') # 打開odb文件
print odb.rootAssembly.elementSets.keys() # 查看odb文件中可用的單元集合
elementset=odb.rootAssembly.elementSets[odb.rootAssembly.elementSets.keys()[1]] # 創(chuàng)建一個(gè)OdbSet
stressField = odb.steps['Step-1'].frames[1].fieldOutputs['S'] # 創(chuàng)建整個(gè)場輸出數(shù)據(jù)
field = stressField.getSubset(region=elementset, position=INTEGRATION_POINT, elementType='C3D6') # 獲取單元集的輸出數(shù)據(jù)
fieldValues = field.values # fieldValues的數(shù)據(jù)類型為 FieldValueArray
for v in fieldValues:
print v
# 想獲取什么內(nèi)容,就輸入對(duì)應(yīng)的名稱,比如v.data=[ 1.71781802177429, 0.00304327975027263, 0.0132824070751667, 1.27494768094039e-05, 8.11893332866021e-05,-0.0778346583247185]
# v.elementLabel=18080
#{'baseElementType': 'C3D6', 'conjugateData': None, 'conjugateDataDouble': 'unknown',
# 'data': array([1.71781802177429, 0.00304327975027263
展開 Abaqus霍普金森壓桿仿真插件:autoSHPB_V2.2 ¥58
1.1.引言
autoSHPB_2.2是基于Abaqus開發(fā)的分離式霍普金森壓桿(SHPB)全流程自動(dòng)仿真插件,具備在插件界面設(shè)置好參數(shù)后,一鍵全流程仿真,無需手動(dòng)輔助,自動(dòng)完成幾何-網(wǎng)格-材料-接觸設(shè)置-載荷-場輸出-歷史輸出等流程。
對(duì)于零基礎(chǔ)的初學(xué)者,本插件可以避免前期花費(fèi)大量時(shí)間的學(xué)習(xí)Abaqus相關(guān)流程,可以基于根據(jù)自己的需求先行獲得仿真結(jié)果完成主要目標(biāo),然后再根據(jù)插件生成的CAE文件慢慢學(xué)習(xí)體會(huì)SHPB仿真流程,提高學(xué)習(xí)效率。
對(duì)于非初學(xué)者,本插件可以快速調(diào)整模型參數(shù)和工況設(shè)置,短時(shí)間內(nèi)進(jìn)行大批量SHPB仿真工作,極大提高效率。
由于Abaqus版本變化,附件提供兩個(gè)版本插件分別適用Abaqus2016~Abaqus2021,和Abaqus2022~Abaqus2025。使用教程見本文底部視頻。
展開 Abaqus_Python 后處理結(jié)點(diǎn)數(shù)據(jù)提取、場變量云圖輸出 ¥1.99
今天體會(huì)了Python腳本操作ODB文件進(jìn)行數(shù)據(jù)的輸出、處理等方面的快速高效。
首先介紹一下背景,同事的項(xiàng)目,計(jì)算case較多。每個(gè)case需要輸出幾個(gè)路徑上的部分節(jié)點(diǎn)值,而且需要針對(duì)不同的case、不同的幀、不同的視角截圖、保存云圖,如果人工出圖和提取節(jié)點(diǎn)數(shù)據(jù),工作量會(huì)非常大,費(fèi)時(shí)會(huì)遠(yuǎn)遠(yuǎn)超出計(jì)算所用時(shí)間;并且,同事還要求我根據(jù)case名稱、組件名稱(模型有多個(gè)組件組成,且網(wǎng)格是在part上畫的,所以同一個(gè)節(jié)點(diǎn)編號(hào)可能對(duì)應(yīng)多個(gè)節(jié)點(diǎn))等保存成不同的文件。
結(jié)點(diǎn)溫度數(shù)據(jù)沒有保存,因此沒有輸出。下圖是自動(dòng)輸出的png格式云圖。
比較倉促,代碼也比價(jià)粗糙。回頭做一個(gè)詳細(xì)的介紹。
主要代碼見下。
展開 妙用Stl幾何輸出輸入功能建立膜結(jié)構(gòu)多場耦合模型
但如何通過找形后的結(jié)果重新建立膜結(jié)構(gòu)——流場的復(fù)雜模型是一個(gè)比較麻煩的工作,非常耗時(shí)費(fèi)力。已有的個(gè)別文獻(xiàn)多針對(duì)一些簡單的膜結(jié)構(gòu)建立耦合物理模型,建模工作相對(duì)簡單,可適用于科研研究,但對(duì)于復(fù)雜的工程實(shí)踐而言,操作性較差。
以往一般的做法往往通過專業(yè)的膜結(jié)構(gòu)設(shè)計(jì)軟件獲得找形模型,根據(jù)找形結(jié)果,采用專業(yè)3DCAD軟件重新擬合膜曲面,眾所周知,網(wǎng)格模型逆向生成多義面,存在精度損失,網(wǎng)格面越復(fù)雜,精度損失越大。ADINA8.6增加了stl格式幾何文件的導(dǎo)入和輸出功能,極大方便了此類問題的處理。
過程總結(jié)如下:
1、
利用ADINA的膜單元(2D SOLID membrane選項(xiàng))建立零狀態(tài)膜結(jié)構(gòu)模型,采用小彈性模量法、降溫法和支座提升法實(shí)現(xiàn)膜結(jié)構(gòu)找形。膜結(jié)構(gòu)找形的操作在此不贅述,有興趣的朋友可以多查查各大專業(yè)論壇。我03年在鋼結(jié)構(gòu)論壇發(fā)了很多用ansys做膜結(jié)構(gòu)找形的帖子,可供參考。
2、
在ADINA后處理中將找形得到的網(wǎng)格直接輸出為stl格式幾何。
3、
大多數(shù)3Dcad程序均較難實(shí)現(xiàn)復(fù)雜網(wǎng)格面的三維曲面逆向生成,本帖子的方法是:直接將stl模型文件導(dǎo)入icem cfd,很傻瓜,icem自動(dòng)實(shí)現(xiàn)了曲面的轉(zhuǎn)換,且非常光滑。依據(jù)流場尺度和膜結(jié)構(gòu)的關(guān)系,在icem中完成流場——膜結(jié)構(gòu)三維幾何模型的構(gòu)建,很簡單,一般只需要添加幾條線就可以了。
4、
直接利用icem完成耦合場模型網(wǎng)格劃分,導(dǎo)入adina。在adina中完成邊界和湍流參數(shù)即可計(jì)算。
這種方法由于找形曲面信息丟失、精度損失很少,在工程上具有相當(dāng)精度,可以實(shí)現(xiàn)復(fù)雜工程的流場模型構(gòu)建。
上述流程1、3、4步都涉及到較多背景知識(shí),初學(xué)者可以在仿真論壇和鋼結(jié)構(gòu)論壇搜索相關(guān)帖子的詳細(xì)解釋。這種方法還可以用于充氣膜結(jié)構(gòu)找形、荷載分析,比如類似水立方的氣枕工程,也可以用在充氣帳篷、安全氣囊等分析
下面按照順序附圖。
展開 妙用Stl幾何輸出輸入功能建立膜結(jié)構(gòu)多場耦合模型
妙用Stl幾何輸出輸入功能建立膜結(jié)構(gòu)多場耦合模型流程圖.rar
two stl body.rar
ABAQUS輸出單元積分點(diǎn)坐標(biāo)
方法
在ABAQUS CAE的場輸出中選擇的坐標(biāo)點(diǎn)是節(jié)點(diǎn)的坐標(biāo),而節(jié)點(diǎn)是從積分點(diǎn)插值出來的,單元積分點(diǎn)的信息相對(duì)真實(shí)。所以最好是獲取積分點(diǎn)的信息,其中積分點(diǎn)的坐標(biāo)無法在CAE中獲取,需要在關(guān)鍵字中添加。具體在每個(gè)分析步的單元輸出下面添加COORD,如果需要輸出節(jié)點(diǎn)的坐標(biāo)也可以在節(jié)點(diǎn)場輸出下面添加COORD(這和CAE中場輸出選擇節(jié)點(diǎn)坐標(biāo)的效果是一致的)。具體如下圖:
2.注意
在ODB結(jié)果中創(chuàng)建場輸出時(shí)會(huì)附帶著一份XYZ坐標(biāo),這個(gè)應(yīng)該也可以當(dāng)做單元的坐標(biāo),,但是我比較過這個(gè)附帶的坐標(biāo)和單元的COORD輸出的坐標(biāo),有時(shí)候有點(diǎn)差別,可能是數(shù)據(jù)精度的問題。
展開 Abaqus&Paraview夢(mèng)幻聯(lián)動(dòng)!(Python二次開發(fā)篇)
該函數(shù)默認(rèn)輸出的場變量為:U,A,V,RF,S,LE,PE,PEEQ,如果你輸出的場變量正好是這幾個(gè),那么恭喜你,你可以隨意的使用該文件,如果,你的場變量輸出缺少其中幾個(gè),就需要將缺少的場變量輸出的源代碼進(jìn)行注釋;如果你的場變量輸出不在這幾個(gè)里面,你就需要按照vtu的輸出格式和該函數(shù)的風(fēng)格進(jìn)行自己編咯,這也就是我想自己編寫odb2vtk函數(shù)的初衷。
自編odb2vtk函數(shù)
使用方法
函數(shù)名字為convert_abaqus_to_vtk,形參依次寫入odb文件、輸出的vtk名稱、單元類型(C3D4/C3D8),想要輸出的step name,frame幀數(shù)(第幾幀),運(yùn)行即可。
#!/user/bin/python
# -* - coding:UTF-8 -*-
from odbAccess import *
def convert_abaqus_to_vtk(odb_path, output_vtk_path, element_type,step_name,frame):
...
convert_abaqus_to_vtk('test_C3D8.odb', 'output_C3D8.vtk', 'C3D8','Step-1',1)
應(yīng)用C3D8 和C3D4兩種單元類型,展示程序的適用性,做了一個(gè)簡單案例,邊界條件如下設(shè)置:
輸出的output_C3D8.vtk顯示如下(位移結(jié)果),
當(dāng)改變單元類型時(shí),更改形參即可:convert_abaqus_to_vtk('test_C3D4.odb', 'output_C3D4.vtk', 'C3D4','Step-1',1)
輸出的output_C3D8.vtk顯示如下(位移結(jié)果),
編制過程
以下部分對(duì)代碼關(guān)鍵地方進(jìn)行詳解。
展開 
Abaqus動(dòng)態(tài)分析中,如何快速查看整個(gè)響應(yīng)過程中場輸出結(jié)果的最值 ¥9.9
結(jié)果輸出中是不會(huì)直接輸出的,只能看到每幀場輸出中的最值,又不可能自己逐幀場輸出結(jié)果里去看,然后找到所有幀中的最值,那么Abaqus軟件內(nèi)如何實(shí)現(xiàn)呢?</p><p><br></p><p><span style="background-color: rgb(255, 255, 255); color: rgb(25, 27, 31);">原創(chuàng)聲明:未經(jīng)本人同意,禁止抄襲、二次創(chuàng)作及轉(zhuǎn)載!</span></p>
展開 Abaqus結(jié)果云圖中無增量步顯示(ODB加載問題)
<p>我做的是掃頻分析</p><p>掃頻分析步<strong>已添加場輸出(默認(rèn)是沒有場輸出的)</strong>,提交計(jì)算完成后,監(jiān)視器中有增量步,結(jié)果云圖中無增量步顯示(ODB加載問題)解決方法:</p><p><br></p><ol><li>上方菜單欄File-Close ODB-全部清除</li><li>Job模塊-重新打開計(jì)算文件的Results</li><li>查看云圖,增量步結(jié)果可查看</li></ol><p><br></p><p>總結(jié):關(guān)閉ODB,重新打開</p><p><br></p>
展開 超詳細(xì)的Abaqus復(fù)合材料基礎(chǔ)建模步驟
設(shè)置分析步
第10步:設(shè)置輸出
Abaqus中的輸出有兩類,場輸出和歷史輸出,場輸出適合針對(duì)大量的對(duì)象進(jìn)行低頻次輸出,如查看應(yīng)力、應(yīng)變及變形云圖;歷史輸出則適合針對(duì)少量的對(duì)象進(jìn)行高頻次輸出,如監(jiān)控系統(tǒng)能量或者繪制載荷位移曲線等。
另外需要注意的是,復(fù)合材料結(jié)構(gòu)在設(shè)置場輸出變量時(shí)與各向同性材料不同,針對(duì)復(fù)合材料結(jié)構(gòu),默認(rèn)場輸出僅輸出上下表層應(yīng)力應(yīng)變等信息,不會(huì)輸出中間層信息,因此需要進(jìn)行特殊設(shè)置。如下圖所示,在“Output at layered section points”中輸入所有的截面點(diǎn)編號(hào),比如殼單元中有四層鋪層,每一層厚度方向有3個(gè)截面點(diǎn),則一共需要輸入12個(gè)截面點(diǎn)才能保證后處理中能查看所有鋪層的變量數(shù)據(jù)。
復(fù)合材料結(jié)構(gòu)場輸出設(shè)置
第11步:設(shè)置邊界和載荷
視圖切換到“Load”模塊,設(shè)置邊界條件和載荷。與常規(guī)各向同性材料模型一樣,一端設(shè)置固支,另一端給定拉伸位移1mm。
需要注意的是,邊界和載荷在整個(gè)建模過程中屬于最容易被忽視,但同時(shí)也是對(duì)計(jì)算結(jié)果影響最大的因素之一,設(shè)置邊界與載荷時(shí)應(yīng)盡可能保證與真實(shí)結(jié)構(gòu)受載和約束一致。
施加約束及位移載荷
第12步:創(chuàng)建任務(wù)
切換到“Job”模塊,創(chuàng)建任務(wù),提交計(jì)算。
第13步:查看結(jié)果
計(jì)算完成后,在“Job”模塊下點(diǎn)擊“Results”按鈕,可直接打開結(jié)果文件并跳轉(zhuǎn)至“Visualization”后處理模塊。
查看應(yīng)力或應(yīng)變等信息時(shí),默認(rèn)顯示的是第一個(gè)鋪層的計(jì)算結(jié)果。
展開 Abaqus復(fù)合材料殼單元建模—姊妹篇1:常規(guī)建模step-by-step
第9步:設(shè)置輸出
Abaqus中的輸出有兩類,場輸出和歷史輸出,場輸出適合針對(duì)大量的對(duì)象進(jìn)行低頻次輸出(如查案應(yīng)力、應(yīng)變及變形云圖),歷史輸出適合針對(duì)少量的對(duì)象進(jìn)行高頻次輸出(如監(jiān)控系統(tǒng)能量或者繪制載荷位移曲線)
另外需要注意的是,復(fù)合材料結(jié)構(gòu)在設(shè)置場輸出變量時(shí)與各向同性材料也有不同,默認(rèn)針對(duì)復(fù)合材料結(jié)構(gòu),場輸出至輸出上下表層,不會(huì)輸出中間層,因此需要進(jìn)行特殊設(shè)置。如下圖所示,在Output at layered section points中應(yīng)輸入所有的截面點(diǎn)編號(hào),比如殼單元有四層鋪層,每一層有3個(gè)截面點(diǎn),則一共需要輸入12個(gè)截面點(diǎn)才能保證后處理中能查看所有鋪層的場變量數(shù)據(jù)。
第10步:設(shè)置邊界和載荷
視圖切換到Load模塊,設(shè)置邊界條件和載荷。與常規(guī)各向同性材料模型一樣,一端設(shè)置固支,一端給定拉伸位移1mm,此處略去。
需要注意的是,邊界和載荷在整個(gè)建模過程中屬于最不起眼、最容易被忽視的步驟,但同時(shí)也是對(duì)計(jì)算結(jié)果影響最大的因素之一,萬不可小覷。
第11步:創(chuàng)建任務(wù)
切換到Job模塊,創(chuàng)建任務(wù),提交計(jì)算。與傳統(tǒng)模型無異,此處略去。
第12步:查看結(jié)果
計(jì)算完成后,在Job模塊下點(diǎn)擊Results按鈕,可直接打開結(jié)果文件并跳轉(zhuǎn)至后處理界面。
查看應(yīng)力時(shí),默認(rèn)顯示的是第一層應(yīng)力水平。
當(dāng)需要查看每一層應(yīng)力水平時(shí),點(diǎn)擊菜單Result→Section Points,如下圖所示,切換至Plies選項(xiàng),將會(huì)出現(xiàn)在截面屬性中定義的所有鋪層,每一層的輸出位置又分為上中下三個(gè)位置,如下圖所示。
第1層應(yīng)力水平
第2層應(yīng)力水平
【完結(jié)】
歡迎關(guān)注“復(fù)合材料力學(xué)”微信公眾平臺(tái)。
展開