ABAQUS 后處理的二次開發


ABAQUS 后處理二次開發






ABAQUS軟件為滿足用戶對結果后處理的更多需求,向用戶提供了基于Python語言的后處理二次開發功能。Python語言是一種面向對象的腳本語言,它功能強大,既可以獨立運行,也可以用做腳本語言,特別適合快速的應用程序開發。ABAQUS就是向用戶提供了很多庫函數,通過Python語言調用這些庫函數來增強ABAQUS的后處理功能。

ABAQUS腳本接口是Python語言的一個擴展,可以使用Python語言編制腳本接口的可執行程序,從而自動實現重復性的工作、創建和修改模型數據庫、訪問數據庫的功能。ABAQUS在擴展的同時,額外提供了約500個模型對象,

大致可分為3類。其中session對象用來定義對象、遠程隊列、用戶定義的視圖等;mdb對象包含計算模型對象和作業對象;odb對象包含模型數據和計算結果數據,如圖1所示。這三類模型對象又分別包含各類子對象,因此對象模型的關系是比較復雜的。而在后處理的二次開發過程中,就是讀取odb對象中的數據,進行計算和其他相應的處理,輸出滿足用戶需求的數據形式。

ABAQUS 后處理的二次開發的圖1

圖1  odb模型對象

從圖5-32中可以看到,模型數據是用來對模型進行定義和分析的;結果數據也就是子對象Steps,是主要考慮的對象類型,它包括分析步、分析步中一系列的增量步、場變量輸出和歷史變量輸出。不同類型的數據在ABAQUS中表示為不同的對象模型,利用面向對象的Python腳本語言可以對這些對象進行有效操作。

ABAQUS 后處理的二次開發的圖2
1

后處理二次開發的一般步驟


在進行ABAQUS后處理二次開發之前,用戶必須明確二次開發所要實現的功能,并且實現設計功能的流程。后處理的二次開發一般按照以下四個步驟進行。

(1)文件的讀寫和復制:通過Python語言提取Odb文件中提供的OdbAccess模塊,實現對計算結果數據庫文件的讀寫。除此之外,有時還需要對dat文件和fl文件進行數據的讀取。文件的復制使用了Python語言中的shutil模塊。

(2)數據的讀取:用openOdb函數打開odb文件,通過模型數據的子對象獲取所要操作的模型范圍,通過結果數據的子對象獲取上述范圍的結果數據。

(3)數據的操作:對所讀取的數據按用戶自定義的公式或理論進行操作。

(4)數據的輸出:對數據操作所得到的結果進行寫入操作,對于在odb文件中寫入的結果需要通過fieldOutput函數建立新的場,然后通過addData函數將上述結果文件寫入新建立的場中。對于通過.dat文件輸出的文本結果則需要通過write等函數寫入文本。

ABAQUS 后處理的二次開發的圖3
2

后處理二次開發的實例


本例以懸壁梁模型為例,計算不同分析步之間位移的差值。其中分析步LC1為在懸壁梁遠端受一向下100N的載荷作用,分析步LC2為在懸壁梁中點受一向上50N的載荷作用。如圖2所示。

ABAQUS 后處理的二次開發的圖4

圖2  懸臂梁的載荷

新建懸臂梁模型,對其進行材料賦予、網格劃分、載荷邊界施加等前處理操作,這里不再贅述。完成前處理操作后,新建名為ficldOperation的Job并提交運算,獲得fieldOperation.odb文件。

下面進行文件后處理的二次開發。

Step 1:在ABAQUS工作目錄下新建記事本文件,修改后綴名為.py。本例中Python文件命名為fieldOperation.py,代碼及說明如下。

ABAQUS 后處理的二次開發的圖5

Step 2運行Python。打開ABAQUS/CAE模塊,執行【File】/【Run Script.】命令,選擇上一步新建的fieldOperation.py。

Step 3:執行【File】/[Open..】打開fieldOperation.odb,此時就能看到新生成的分析步“user”。本例的結果如圖5-34和圖5-35所示。

ABAQUS 后處理的二次開發的圖6

圖3  水平方向位移U1

ABAQUS 后處理的二次開發的圖7

圖4  豎直方向位移U2

文章來源:精準CAE部落

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

4
18