
發(fā)布
注冊
/
登錄abaqus提取結(jié)果的案例
Python提取Abaqus計算結(jié)果的History Output并用Matplotlib繪圖
采用Python可以提取Abaqus計算結(jié)果的歷史輸出數(shù)據(jù),提取出來后保存到本地并采用Matplitlib繪制折線圖,記錄一下代碼:以下三張圖片分別是讀取etotal歷史數(shù)據(jù)并保存到本地的代碼、繪制折線圖的代碼和etotal歷史變化折線圖。
星辰技文|ABAQUS結(jié)果提取大于某值的區(qū)域體積-Python方法 ¥10
上一篇技文《ABAQUS結(jié)果提取大于某值的區(qū)域體積-CAE方法》中帶大家使用ABAQUS CAE界面直接提取大于100e6 Mises等效應(yīng)力的區(qū)域體積,方法雖然比較好操作,但也存在明顯的缺點:
方法太繁瑣;統(tǒng)計歷程曲線時會顯得非常麻煩,因此我們找到了代步工具:Python。
精度較低;這是由于一個單元內(nèi)只需要一個積分點滿足數(shù)值要求,整個單元都會顯示出來,但一個單元可能存在多個積分點,比如演示案例中采用六面體二階減縮積分單元(C3D20R)存在8個積分點,單元內(nèi)部分積分點可能不滿足條件,也會被統(tǒng)計在內(nèi),從而導(dǎo)致統(tǒng)計的體積偏大,我們對比下CAE方法和Python方法的結(jié)果差異如下圖,最少都差32%!
樣的誤差雖然可以通過提高網(wǎng)格密度來減緩,但并不能完全避免,因此也就有必要對這些單元內(nèi)所有積分點值進行判斷,獲得單元內(nèi)滿足條件的積分點所占比例,再對其體積進行加權(quán)相加。而這樣的操作過程顯然不適合手動統(tǒng)計,再一次將目光投向了我們的代步工具:Python!
沒有Python基礎(chǔ)的小伙伴,建議先看曹金鳳姐姐的《Python語言在Abaqus中的應(yīng)用》或江丙云哥哥的《ABAQUS Python二次開發(fā)攻略》,不然會有些吃力。雖然代碼備注的已經(jīng)非常詳細(xì),但還是需要一些背景支撐的。
【編程需求與分解】
為了與CAE過程進行對比,我們還是將需求定義為:提取懸臂梁加載過程中Mises等效應(yīng)力大于100e6的區(qū)域體積。
展開 Abaqus采用Python腳本提取ODB信息,輸出為VTK的UnstructureGrid文件格式 ¥49.99
在有些場景下,需要將Abaqus計算結(jié)果提取出來保存為VTK格式,用于一些可視化和數(shù)據(jù)處理(VTK在可視化這方面還是強大)。最近寫了兩個腳本,一個是保存VTK非結(jié)構(gòu)網(wǎng)格格式的文件,一個是提取Abaqus計算結(jié)果中的網(wǎng)格信息、field信息,將兩個腳本結(jié)合起來就可以實現(xiàn)提取ODB中的信息,并保存成為VTK非結(jié)構(gòu)網(wǎng)格文件,當(dāng)然,還是需要有Abaqus環(huán)境。
注意:提取ODB信息的那個腳本目前僅僅是針對我自己提供的那個算例,有能力的朋友完全可以修改一下用于自己的情況。寫VTK非結(jié)構(gòu)網(wǎng)格文件的那個腳本目前應(yīng)該沒有太大的bug。ODB信息的提取還是需要有Abaqus環(huán)境,并不是解析二進制文件。請看清楚再確定是否需要。
之所以做這個,還是希望慢慢完善,從而積累出一定數(shù)量的腳本,用于ODB數(shù)據(jù)的提取。
以下是abaqus中的網(wǎng)格和云圖,和用paraview查看的vtk文件的網(wǎng)格和云圖:
展開 利用Python提取ABAQUS的.odb結(jié)果中的輪軌接觸信息 ¥500
ABAQUS 顯式explicit計算時所有結(jié)果都將寫入到.odb文件中,在GUI界面進行數(shù)據(jù)提取時效率較低,且有些詳細(xì)結(jié)果不能直接從.odb中獲取。因此,需要利用python讀取.odb,然后進行提取關(guān)心的數(shù)據(jù),以此進行下一步計算。

在abaqus中采用python提取結(jié)果-平均應(yīng)力 ¥5
Python腳本操作ODB文件進行計算結(jié)果數(shù)據(jù)的提取。
因?qū)?em>結(jié)果分析需求,需提取某單元集的每一分析步(包含每一子步)的平均應(yīng)力,目前網(wǎng)上雖有很多代碼是關(guān)于單元集的平均應(yīng)力的提取,但并未有針對每一子步都需要提取結(jié)果的代碼。故針對此需要編寫了python代碼。
python提取abaqus場輸出結(jié)果
最近寫了一個簡單的python讀取abaqus結(jié)果中的場輸出數(shù)據(jù),就在這里簡單的講一下整個流程。后續(xù)采用abaqus讀取場輸出結(jié)果應(yīng)用也挺廣泛。整個過程的流程圖可以用下圖來概括,因為不是計算機專業(yè),考慮沒那么細(xì)致,很多python函數(shù)也是即查即用,當(dāng)然程序后續(xù)根據(jù)要求也可以不斷更改。
ABAQUS結(jié)果提取重構(gòu)插件【ODB Extractor and Builder Tool】 ¥19.89
當(dāng)我們用abaqus對一個模型計算完成后,會得到一個odb結(jié)果文件,該文件可大可小,有的結(jié)果文件甚至高達(dá)幾十上百G,如果我們想把該odb結(jié)果文件的部分信息提供給其他人查看,出于保密原因考慮,我們不能提供完整的結(jié)果文件,所以這個時候我們就可以使用插件OEBT來完成,提取我們想要的部分或全部結(jié)果信息。
這個插件提供了一種方法來重新創(chuàng)建Abaqus結(jié)果數(shù)據(jù)庫(.odb)的一部分作為一個新的.odb文件。具體有以下特點:
1 和分析團隊/外部合作伙伴分享部分結(jié)果數(shù)據(jù)信息;
2 減少odb數(shù)據(jù)庫加載時間(通過刪除不必要的數(shù)據(jù));
3 通過縮減odb文件以只存儲某些相關(guān)結(jié)果來減少存儲空間占用;
OEBT插件界面
插件使用方法:
將壓縮包解壓,復(fù)制到*D:\SIMULIA\CAE\2019\win_b64\code\python2.7\lib\abaqus_plugins
下即可使用
注意:最新版插件名字已經(jīng)由之前的OEBT改為了ORB,該插件對abaqus2018及以后的版本兼容,對早期低版本不兼容。
附件是該ORB2.3.0插件和使用說明書
展開 Python提取Abaqus SPH結(jié)果粒子位置 ¥9.99
Abaqus軟件后處理中SPH粒子的渲染真的太差了,粒子大小、光照等都沒有有效的調(diào)整方法,于是想著從ODB文件中讀取出粒子位置信息,提取出來的信息還可以用于其他后處理及渲染等。
但是有很多問題:1. PC3D粒子的信息怎么輸出?與節(jié)點關(guān)系如何對應(yīng)?2. 可以在界面上選擇節(jié)點編號查詢節(jié)點,但是批量怎么讀取?3. fieldOutput中物理量只有位移等,沒有當(dāng)前坐標(biāo)。
想了一個笨辦法:
先在后處理模塊中用“Display Group”功能顯示所有流體粒子,然后利用查詢功能獲得所有當(dāng)前粒子的label,存到一個列表中;
在odb文件的assembly對象中獲得上面粒子label編號列表對應(yīng)的節(jié)點的坐標(biāo),就是初始坐標(biāo)。
在steps.frames對象中獲得位移場變量,位移是一個容器,里面存儲了所有節(jié)點的位移,找出流體對應(yīng)節(jié)點的位移,位移與初始坐標(biāo)的和就是當(dāng)前坐標(biāo)。
將查詢到的結(jié)果(包括節(jié)點當(dāng)前坐標(biāo)、節(jié)點位移值等)按照節(jié)點順序?qū)懭雟tk文件,利用paraview進行可視化。
如下為讀取及寫入vtk文件的Python代碼
展開 利用Python提取ABAQUS的計算結(jié)果(ODB)信息
圖5 U-XYZ點Set
對于第7行表示提取該幀的位移U的場變量并賦值給U,然后在第8行采用getSubset基于U提取RefPointSet區(qū)域的位移值。
圖6在ABAQUS命令行接口(基于Python的Abaqus靜力分析操作實例)表示的應(yīng)該是最后一次循環(huán)后各變量的值,可以看出RefU表示的nodeSets['U-XYZ']的位移值,圖6中顯示為一個索引;而RefUValues則表示該節(jié)點集中每個節(jié)點的位移值,體現(xiàn)在values中;而values[0]表示第一個節(jié)點的位移值,由于存在三個方向的位移,U1,U2,U3,則后續(xù)通過data[0],data[1],以及data[2]分別表示三個方向的位移值。
圖6 運行相關(guān)結(jié)果查看(通過ABAQUS命令行接口)
特別的,由于U-XYZ只有一個點存在于Set中,如果我們在這里用values[1],看會出現(xiàn)什么樣的效果?如圖7。可以明顯看到Sequence index out of range表示超出了范圍,因為RefUValues[1]表示提取第二個節(jié)點,但我們這里只有一個節(jié)點存在于U-XYZ點Set中,所以出現(xiàn)了范圍超過的報錯提示。
圖7 可以存在RefUValues[1]嗎?(通過ABAQUS命令行接口)
需要說一下的,如果大家覺得ABAQUS命令行接口的查看范圍太窄,可以往上拉動窗口,這樣就可以看到更多的代碼,如圖8所示,但與之相反的就是模型就會顯得很小,與我們一般的常規(guī)abaqus操作有點相反。
展開 ABAQUS結(jié)果提取大于某值的區(qū)域體積(轉(zhuǎn)載)
我們將帶大家探索ABAQUS后處理的兩種提取方法:CAE界面提取 和 Python后處理二次開發(fā)提取。本節(jié)先介紹第一種方法。
還是以最簡單的懸臂梁為例,提取加載歷程下大于100e6 Mises等效應(yīng)力下單元體積:
1)顯示應(yīng)力變形云圖,并通過云圖顯示設(shè)置,可將超過指定數(shù)值的云圖范圍顯式為灰色,便于觀察和對比:
2)顯示指定應(yīng)力范圍內(nèi)的單元:找到按鈕,或菜單欄Tools->DisplayGroup->Create...,點擊后激活Create Display Group對話框,選擇Item為Elements、method為Result value,并設(shè)置最小值(Min value)100e6和最大值(Max value)1e10,點擊Apply可顯示出范圍內(nèi)的單元,如下圖所示。
注意:同時點擊底部的Save As...按鈕,保存名字為DisplayGroup-2。
3)測量顯示單元體積:找到按鈕,或者菜單欄Tools->Query...命令,找到Mass properties選型,并點擊后激活查詢質(zhì)量流程,在提示信息欄將讓選擇單元,修改選擇方法為Display groups,并選擇剛剛生成的DisplayGroup-2;由于是測量質(zhì)量,針對材料中沒有定義密度的情況,ABAQUS友好的提供了Options選項,可以設(shè)置材料密度和平面shell的厚度,這里均設(shè)置為1。如下圖所示。
重新選擇顯式組后,在底部信息框中將顯示測量的體積、體積中心、質(zhì)量、質(zhì)量中心以及質(zhì)量距等數(shù)據(jù)。
4)匯總不同時刻的數(shù)值,繪制時程曲線如下:
同時,該方法不僅適用于應(yīng)力數(shù)值范圍,基本所有的云圖范圍單元體積的測量都是可以滿足的。
展開 Matlab“稍作修改”Abaqus-odb結(jié)果 | 提取三維裝配體Mises應(yīng)力
數(shù)據(jù)及函數(shù)文件獲取方式:
Matlab“稍作修改”Abaqus-odb結(jié)果 | 提取三維裝配體Mises應(yīng)力
https://mp.weixin.qq.com/s/l45KSgNxkJ-oCCrDMrUgHA

ANSYS的get命令常用操作(信息提取和結(jié)果結(jié)果提取)
ANSYS的get命令常用操作(信息提取和結(jié)果結(jié)果提取)
在ANSYS分析過程中,*get命令作為一個提取信息的常用命令,作用非常大,不管是在前處理、求解還是后處理過程中,都能夠有發(fā)揮的空間,尤其是后處理過程,對結(jié)果的批量輸出來說不可缺少。
*get能夠提取的信息相當(dāng)多,其命令語句如下:
*GET, Par, Entity, ENTNUM, Item1, IT1NUM, Item2, IT2NUM
Par:定義的變量名稱,用于存儲提取的數(shù)據(jù);
Entity:關(guān)鍵字,是信息提取的對象,包括NODE, ELEM, KP, LINE, AREA, VOLU, PDS等;
ENTNUM:當(dāng)前對象的數(shù)字標(biāo)識,比如節(jié)點的節(jié)點號,單元的單元號等;
Item1:提取的信息,可用的非常多,后面展開;
IT1NUM:和Item1配合使用。
由于*get的功用實在太多,不就一一列舉,單就常用的枚舉。
展開 ABAQUS結(jié)果提取大于某值的區(qū)域體積-CAE方法
以最簡單的懸臂梁為例,提取加載歷程下大于100e6 Mises等效應(yīng)力下單元體積:
1)顯示應(yīng)力變形云圖,并通過云圖顯示設(shè)置,可將超過指定數(shù)值的云圖范圍顯式為灰色,便于觀察和對比:
2)顯示指定應(yīng)力范圍內(nèi)的單元:找到按鈕,或菜單欄Tools->DisplayGroup->Create...,點擊后激活Create Display Group對話框,選擇Item為Elements、method為Result value,并設(shè)置最小值(Min value)100e6和最大值(Max value)1e10,點擊Apply可顯示出范圍內(nèi)的單元,如下圖所示。
注意:同時點擊底部的Save As...按鈕,保存名字為DisplayGroup-2。
3)測量顯示單元體積:找到按鈕,或者菜單欄Tools->Query...命令,找到Mass properties選型,并點擊后激活查詢質(zhì)量流程,在提示信息欄將讓選擇單元,修改選擇方法為Display groups,并選擇剛剛生成的DisplayGroup-2;由于是測量質(zhì)量,針對材料中沒有定義密度的情況,ABAQUS友好的提供了Options選項,可以設(shè)置材料密度和平面shell的厚度,這里均設(shè)置為1。如下圖所示。
重新選擇顯式組后,在底部信息框中將顯示測量的體積、體積中心、質(zhì)量、質(zhì)量中心以及質(zhì)量距等數(shù)據(jù)。
4)匯總不同時刻的數(shù)值,繪制時程曲線如下:
同時,該方法不僅適用于應(yīng)力數(shù)值范圍,基本所有的云圖范圍單元體積的測量都是可以滿足的。
作者:陳佳敏cn
來源:CAE技術(shù)資訊
展開 針對ABAQUS掃頻odb結(jié)果各頻率下最大位移快速提取Python程序 ¥2
本帖是針對ABAQUS掃頻仿真項目中遇到的最大值提取需求而產(chǎn)生的具體應(yīng)用。一般掃頻結(jié)束后有對各頻率下最大位移結(jié)果進行提取并繪制曲線的需求,通常手動提取僅可用于較少頻率提取情況,當(dāng)頻率點較多(如500時)手動提取將是災(zāi)難性的操作方法。
這里利用python程序?qū)哳lodb最大值進行提取。方法分兩類:遍歷節(jié)點法和Visualization顯示值提取法。前者在《python語言在ABAQUS中的應(yīng)用》一書中有節(jié)點應(yīng)力提取案例描述,優(yōu)點是不需對ABAQUS界面進行python操作,可定位具體節(jié)點信息,缺點是速度慢;后者相反。
后一方法的應(yīng)用也可應(yīng)用到最大Mises應(yīng)力等結(jié)果數(shù)據(jù)的快速提取方面。
如有疏漏,煩請指教。
展開 abaqus二次開發(fā):后處理批量提取場輸出和歷程輸出結(jié)果(源碼帶注釋) ¥198
abaqus二次開發(fā):后處理批量提取場輸出和歷程輸出結(jié)果(購買后需要加V私聊獲取使用教程)
購買后,請加V:wzd_1021_
更多插件內(nèi)容,請私聊
同時提供定制hypermesh/hyperview/abaqus前后處理插件開發(fā)。