天天看點

《Abaqus GUI程式開發指南(Python語言)》——2.2 Python與Abaqus

本節書摘來自異步社群《abaqus gui程式開發指南(python語言)》一書中的第2章,第2.2節,作者: 賈利勇 , 富琛陽子 , 賀高 , 周正光 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

abaqus作為國際公認的大型通用非線性有限元軟體之一,被廣泛應用于機械制造、航空航天、汽車交通、船舶、土木工程、能源礦産、醫療衛生以及日用家電等諸多領域。随着abaqus應用領域及使用者的不斷拓展,軟體自身提供的功能往往不能滿足一些特殊的使用要求。為了進一步滿足不同使用者在軟體使用過程中不斷産生的新需求,abaqus軟體為使用者提供了開放的二次開發接口,包括基于fortran語言的使用者子程式接口和基于python語言的腳本接口。前者主要是友善使用者開發自定義材料模型、自定義單元、自定義輸出變量以及複雜載荷等,其影響的是cae分析過程中的求解環節;後者主要是友善使用者根據自身的需求開發前後處理工具(gui程式)或者輔助使用者實作參數化的模組化以及資料處理等工作,其影響的是cae分析過程的前後處理環節。

abaqus在繼承python原有庫函數的基礎上,進一步擴充了python的庫函數,通過調用這些庫函數,可繞過abaqus/cae界面,直接操縱abaqus的核心程式,實作快速前處理模組化及後處理功能。

abaqus腳本接口可以通過以下多種方式與abaqus/cae核心程式進行互動(如圖2.1所示)。

(1)圖形使用者界面(gui):在自定義對話框中設定或選擇參數,适用于複雜、系統、完整功能實作。本書第四、五、六章将詳細講述gui 控件的使用方法以及gui插件程式和gui應用程式的開發。

(2)主視窗下部指令互動界面(cli):适用于單句或者多句簡單指令執行。本書第二章及第三章中的簡單執行個體多采用這種方式。

(3)執行腳本檔案(script):适用于相同指令重複執行的情況。本書第二章及第三章中的複雜執行個體以及gui插件的核心執行檔案均采用這種方式進行測試。

《Abaqus GUI程式開發指南(Python語言)》——2.2 Python與Abaqus

本書的第二章和第三章主要是通過cli和script兩種方式與abaqus/cae核心程式進行互動,後續章節主要采用gui的形式與abaqus/cae核心程式進行互動。gui界面的建立基于abaqus gui toolkit ,它是abaqus專為二次開發提供的gui工具包,提供了大量的窗體控件,并給出了各個控件的組成部分以及建立該控件的方法。同時, gui工具包也是fox gui toolkit 的擴充,它允許使用者修改和擴充abaqus/ cae的功能,以便更有效率地運用abaqus解決問題。abaqus腳本接口擴充了python自身的對象模型,豐富了其函數庫,使得abaqus的二次開發更為快捷。

簡單地講,abaqus軟體通過提供python語言的腳本接口可以實作以下功能。

(1)參數化的模組化。通過編寫腳本實作模型的參數化模組化,當某些參數發生變化時,隻需要在腳本檔案中對相應參數進行修改并重新執行腳本檔案即可完成重建立模工作,可以避免因修改參數引起的大量手動重複操作。

(2)參數學習。在參數化模型的基礎上,通過改變某些特征參數,并以腳本的形式反複送出計算并輸出結果,可以分析目标變量随着某些參數的變化曆程,當達到指定的目标值時停止計算,輸出最終的優化結果。

(3)建立gui插件程式。插件程式是abaqus二次開發中較為簡單的gui 開發類型,使用者可以借助rsg對話框構造器快速地建立gui 圖形界面。有關插件程式的開發内容詳見本書第五章“插件程式開發指南”。

(4)使用者自定義gui應用程式開發。使用者自定義gui 程式開發是abaqus二次開發中一類進階的gui開發方式,應用程式中可以內建多功能元件、多子產品、多類gui工具包,适合用于複雜的應用平台開發。有關自定義gui應用程式的詳細内容請參照本書第六章“使用者自定義gui應用程式開發指南”。