
發(fā)布
注冊(cè)
/
登錄Abaqus找回?cái)?shù)據(jù)的案例
abaqus cae數(shù)據(jù)文件損壞如何修復(fù)? abaqus data
將jnl文件復(fù)制一份,重命名后綴為.py的文件,打開abaqus,file-->run script, 運(yùn)行一遍該py文件。但要注意你原始導(dǎo)入的幾何或孤立網(wǎng)格文件還在原來的文件夾位置下。
abaqus數(shù)據(jù)傳遞 ¥2
最近在學(xué)習(xí)abaqus數(shù)據(jù)傳遞功能。abaqus中數(shù)據(jù)傳遞的方法大體有三種,一種是我們常用的重啟動(dòng),一種是數(shù)據(jù)傳遞,還有一種是提取初始應(yīng)力場再導(dǎo)入。
1.重啟動(dòng)的步驟如下:
1)在原模型中設(shè)置restart輸出請(qǐng)求;
2)在重啟動(dòng)模型中設(shè)置重啟動(dòng)請(qǐng)求:
單擊菜單Model/edit attributes,選擇重啟動(dòng)模型名稱,設(shè)置重啟動(dòng)分析步名稱以及重啟動(dòng)迭代步;
基于Python向Abaqus導(dǎo)入txt、dat數(shù)據(jù)(附abaqus中python二次開發(fā)課程)
這次推送聚焦于解決采用Python向Abaqus里導(dǎo)入txt、dat數(shù)據(jù)的問題(dat文件只需要將txt文件的后綴名改為dat就可以生成dat文件),Abaqus基于Python讀入txt、dat數(shù)據(jù)主要有read()、readlines()、readlines()、numpy.loadtxt()函數(shù),導(dǎo)入的txt文件放在工作目錄temp中。
1. read() 函數(shù)
可以一次性讀取txt文件中的內(nèi)容,并以字符串的結(jié)果返回來,如下列代碼所示:
with open("xyplot.dat", "r") as f: #打開文件
data = f.read() #讀取文件
print(data)
其中,
r是讀取人工書寫的數(shù)據(jù),書寫的時(shí)候是什么樣子,讀出來就是什么樣。
rb是讀取二進(jìn)制文件,非人工書寫的數(shù)據(jù),如.jpeg等這些。
將該命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)運(yùn)行后,結(jié)果如圖1所示(圖中#注釋后的亂碼為作者安裝abaqus采用英文版,沒有漢化所致):
圖1 read()讀取txt、dat數(shù)據(jù)到Abaqus
需要注意的是,以上data數(shù)據(jù)類型都是為字符,如下圖所示。調(diào)用data[0]為字符,因此data[0][0]也為字符,以及后續(xù)的data[20][0],data[60][0]等也都為字符。
展開 Abaqus Python 二次開發(fā)-歷程輸出數(shù)據(jù)提取的python實(shí)現(xiàn) ¥3.49
在Abaqus中,歷程變量的輸出,尤其是反力及位移,經(jīng)常是如下的格式。
此時(shí),如果想提取數(shù)據(jù),一些關(guān)于Abaqus 二次開發(fā)的書籍里提供的方式是:odb.step['Step-1'].historyRegions['Node PART-TRIMMED-MESH.288422']. historyOutputs['U1'].data 。這種方式,需要輸入 'Node PART-TRIMMED-MESH.288422' 這種很長的字符串,繁瑣且容易出錯(cuò)。
在付費(fèi)內(nèi)容中,提供了一種便捷的方法,得到長字符串,提取相關(guān)的數(shù)據(jù),并將數(shù)據(jù)保存為csv文件。
展開 
abaqus 運(yùn)行完的ODB 數(shù)據(jù)提取
為什么之前運(yùn)行完的ODB 文件可以正常提取數(shù)據(jù),現(xiàn)在再對(duì)這個(gè)文件,在相同的位置卻提出不出來數(shù)據(jù),就是一條橫線,這是什么問題呢
Abaqus的歷史數(shù)據(jù)輸出的問題
Abaqus的歷史數(shù)據(jù)輸出的問題
Abaqus結(jié)果輸出時(shí)有場輸出(Field Output)和歷史輸出(History Output),場變量輸出用于描述某個(gè)量隨空間位置的變化,歷史變量用于描述某個(gè)量隨時(shí)間的變化,區(qū)別是場變量輸出大量的單元或節(jié)點(diǎn)上的計(jì)算結(jié)果,寫入odb文件的頻率低,用與生成后出的各個(gè)圖。歷史變量輸出少量單元或節(jié)點(diǎn)上的計(jì)算結(jié)果,寫入Odb的頻率高,用于生成X-Y圖。歷史變量允許單獨(dú)輸出某個(gè)獨(dú)立分量,經(jīng)常用到的就是這個(gè)獨(dú)立分量的輸出,比如輸出結(jié)構(gòu)最大點(diǎn)的位移變化曲線,或者盈利最大點(diǎn)的應(yīng)力變化過程等。
在輸出歷史數(shù)據(jù)時(shí),大多數(shù)的輸出結(jié)果比如位移和應(yīng)力等,不能實(shí)現(xiàn)整個(gè)模型全部輸出,也就是需要指定set(參考集),需要設(shè)置相關(guān)的set后,結(jié)果輸出才會(huì)有這些數(shù)據(jù)。
定義Set的對(duì)話框如圖1所示,定義Set的類型時(shí)有三個(gè),按照以往的理解,一般經(jīng)常用到的應(yīng)該是Node,也即節(jié)點(diǎn)集,想要輸出這個(gè)節(jié)點(diǎn)在求解過程中的Mises應(yīng)力變化過程,選擇某個(gè)節(jié)點(diǎn),通過Step模塊的History Output Requests,如圖2所示。
圖1
圖2
選擇剛才設(shè)置的Set,選擇需要輸出的結(jié)果項(xiàng),此處為Mises。之后計(jì)算,計(jì)算后提取結(jié)果時(shí),發(fā)現(xiàn)并沒有輸出該節(jié)點(diǎn)的Mises歷史數(shù)據(jù)。
筆者很快想到了,有可能是不能輸出節(jié)點(diǎn)的應(yīng)力,因?yàn)樯婕暗焦?jié)點(diǎn)解和單元積分點(diǎn)解的問題,這個(gè)之前已經(jīng)討論過?;诖丝紤],那么輸出該節(jié)點(diǎn)的位移場肯定沒問題,因?yàn)楣?jié)點(diǎn)位移解是最先得到的節(jié)點(diǎn)解。
將Mises換成UT,如圖3所示。
同時(shí),新建一個(gè)Element Set,因?yàn)镹ode Set無法輸出歷史數(shù)據(jù),那么采用Element Set也肯定能夠輸出單元積分點(diǎn)的數(shù)據(jù),如圖4所示。
展開 ABAQUS批量提交Job與Python讀取ODB結(jié)果應(yīng)力應(yīng)變數(shù)據(jù)
問題2
如何從ODB結(jié)果文件中讀取計(jì)算結(jié)果數(shù)據(jù)
第二個(gè)問題是大家經(jīng)常要面對(duì)的,常規(guī)的數(shù)據(jù)提取采用ABAQUS自帶的后處理工具已經(jīng)能滿足需求了,但是如果我們需要進(jìn)行一些寫出文本,數(shù)據(jù)篩選,數(shù)據(jù)的二次計(jì)算處理。。。,我們就需要用程序語言的幫助了。
針對(duì)今天的問題——
提取結(jié)果并寫出到文本
,如果用自帶的工具,可以導(dǎo)出abaqus.rpt文件,不過這種方式并不能滿足我們較為苛刻的要求,用python程序會(huì)的自由度會(huì)更大一些。
另外需要說明的是,如果我們僅僅只是看看某單元或者節(jié)點(diǎn)的各種計(jì)算結(jié)果,或者簡要的數(shù)據(jù)處理,臨時(shí)用一用,可以采用如下方式,不必費(fèi)心寫復(fù)雜的程序,不值當(dāng)浪費(fèi)時(shí)間,
青春易逝,頭發(fā)寶貴
。當(dāng)然了,通過阿信這里給出的基本程序改一改,能省幾根頭發(fā)。
限于時(shí)間關(guān)系,這里只列出基本的應(yīng)力提取程序,寫入文本比較簡單,隨意百度即可實(shí)現(xiàn),不再給出。
展開 ABAQUS odb數(shù)據(jù)解析系列文章---總綱
“使用python進(jìn)行ABAQUS后處理的二次開發(fā)是非常便捷的, 可以通過自動(dòng)解析實(shí)現(xiàn)在一定程度上提高工作效率. 此系列文章將著手于odb文件的結(jié)構(gòu)特征, 進(jìn)而使得在后處理插件開發(fā)過程中少走彎路, 少做重復(fù)性工作.”
python是一種面向?qū)ο蟮母呒?jí)語言, 那么在使用python處理odb的時(shí)候就要著手于對(duì)象, 將odb文件的對(duì)象譜系梳理清晰. 在完成上述工作之后, 再進(jìn)行后處理二次開發(fā)的時(shí)候就可以直接按圖索驥, 快速找到自己需要使用的方法了.
01
—
解析過程中的重要工具
ABAQUS為其定義的所有類提供了兩個(gè)特別有用的方法:
object.__methods__: 可以查看該類內(nèi)部的所有方法
object.__members__: 可以查看該類內(nèi)部的所有屬性
這兩個(gè)方法為梳理ABAQUS對(duì)象譜系起到了很大的作用, 避免了使用python自帶的dir方法(因其將對(duì)象內(nèi)部所有的方法與屬性同時(shí)返回, 導(dǎo)致解析困難).
ABAQUS還提供了優(yōu)化了的print方法, 該方法位于ABAQUS的textRepr中, 名為prettyPrint.
展開 Abaqus利用region讀取結(jié)果數(shù)據(jù)
Abaqus利用region讀取結(jié)果數(shù)據(jù)
長安CAE
Abaqus計(jì)算完成后,為輸出某部分模型的結(jié)果數(shù)據(jù),需要用到region,并且配套使用的是getSubset函數(shù)。
示例一創(chuàng)建一個(gè)變量center,將一個(gè)叫做PUNCH的節(jié)點(diǎn)set賦值給這個(gè)變量,通過整個(gè)模型的位移場displacement得到該節(jié)點(diǎn)set的輸出數(shù)據(jù),代碼如下:
center = odb.rootAssembly.instances['PART-1-1'].nodeSets['PUNCH']
centerDisplacement = displacement.getSubset(region=center)
centerValues = centerDisplacement.values
for v in centerValues:
print v.nodeLabel, v.data
其中的displacement是已經(jīng)創(chuàng)建好的位移場數(shù)據(jù),centerDisplacement變量得到該節(jié)點(diǎn)集的所有數(shù)據(jù),centerValues變量得到該節(jié)點(diǎn)集的數(shù)值數(shù)據(jù),通過循環(huán)輸出節(jié)點(diǎn)號(hào)和當(dāng)前數(shù)據(jù)。
展開 Abaqus利用region讀取結(jié)果數(shù)據(jù)
單元質(zhì)心點(diǎn)
轉(zhuǎn)自公眾號(hào)——ABAQUS大世界
旨在分享,若侵即刪.
用Python從Abaqus導(dǎo)出txt、dat數(shù)據(jù)
__biz=MzIzNzcyMDE3OA==&mid=2247484080&idx=1&sn=1b34a15a8bf79e8f9cdf901f43aac9b1&chksm=e8c505addfb28cbb54225ef35bf7c6750ee21673d696b63fe13df9067320f1215cae6861c6a5&token=667787181&lang=zh_CN#rd</strong></a></p><p><strong>以下內(nèi)容均來自于本人微信公眾號(hào)(圖片版可能缺失內(nèi)容,完整版請(qǐng)關(guān)注查看公眾號(hào)內(nèi)容),有興趣請(qǐng)關(guān)注一波,共同學(xué)習(xí)ANSYS和ABAQUS有限元技術(shù),我理解為兩把神器,屠龍刀和倚天劍,用好可行走有限元江湖,做個(gè)大俠。</strong></p><p><strong>同濟(jì)大學(xué)優(yōu)秀畢業(yè)生創(chuàng)立,研究Abaqus、ANSYS在土木領(lǐng)域的科研編程和數(shù)值模擬技術(shù),涉及到多尺度、多物理場耦合等計(jì)算力學(xué)問題,以及基于Python、子程序、INP的Abaqus建模,和ANSYS APDL、Workbench二次開發(fā)。
展開 
星辰技文|Abaqus中提取裂縫數(shù)據(jù)并用matplotlib庫繪圖
目前在Abaqus中,基于全局或局部嵌入Cohesive單元,以模擬非均質(zhì)材料的裂縫擴(kuò)展的方法已經(jīng)相當(dāng)普遍。我想POLARIS_InsertCohElem插件起到不小的作用。
后處理方面,也推出的POLARIS_CrackGeo插件提取Cohesive單元和XFEM模擬獲得的裂縫數(shù)據(jù)。但如何出圖來展示裂縫形態(tài),成為插件用戶的一大痛點(diǎn)。
在Abaqus中,Cohesive單元模擬的裂縫路徑可以通過顯示特征邊的方式進(jìn)行展示,但這種方法有幾個(gè)方面的缺點(diǎn):
1. 雖然可以疊加顯示出裂縫周邊實(shí)體單元的應(yīng)力、孔壓等場量輸出,但在表現(xiàn)裂縫自身場量結(jié)果時(shí)沒有線圖直觀,如下例中顯示縫寬的效果對(duì)比;
2. 很難像線圖那樣凸顯天然裂縫或顆粒邊界以及其它特殊位置的Cohesive單元;
3. 由于全局嵌入Cohesive單元,在單元共節(jié)點(diǎn)位置存在孔洞,部件變形后,孔洞呈現(xiàn)出小黑點(diǎn)的形式,無法去除,線圖就完全不存在這些問題;
常用的編程繪圖工具,目前以Matlab和Python matplotlib為主,Abaqus2021版本之后就已經(jīng)內(nèi)置了matplotlib庫,因此本文以matplotlib庫為基礎(chǔ),帶大家繪制POLARIS_CrackGeo插件提取的裂縫線圖。
展開 晶體塑性模擬,EBSD數(shù)據(jù)導(dǎo)入abaqus
[圖片]
Abaqus GUI Odb數(shù)據(jù)提取插件開發(fā)
Abaqus GUI Odb數(shù)據(jù)提取插件開發(fā)
Abaqus利用Python腳本獲取不同Part上的數(shù)據(jù) ¥5.99
在Abaqus計(jì)算結(jié)果文件中,當(dāng)一個(gè)模型有多個(gè)Part對(duì)應(yīng)的Instance,如果想獲取指定Instance上的FieldOutput數(shù)據(jù),可以采用getSubset函數(shù),其region參數(shù)指定為需要獲取數(shù)據(jù)的instance對(duì)象即可。
可以查閱相關(guān)用戶手冊(cè)來獲得相關(guān)使用方法。也可以直接下載本文附件查看示例代碼。
比如一個(gè)計(jì)算結(jié)果中包括了三個(gè)懸臂梁,三個(gè)懸臂梁分別受到不同壓力作用,產(chǎn)生不同的位移和應(yīng)力分布。
附件中的代碼為分別獲取三個(gè)Part在X方向上的最大位移和X方向最大正應(yīng)力,代碼在Abaqus/CAE中運(yùn)行結(jié)果如下圖所示:
展開