DEFORM子程序初探

本文首發(fā)于公眾號:工科小學生

DEFORM本身已經(jīng)很強大了,但實際工程問題復雜多變,DEFORM自有的求解方法無法面面俱到,因此軟件提供了子程序接口,用戶可以通過子程序二次開發(fā)以達到自己的求解目的。DEFORM子程序二次開發(fā)包括求解器和后處理的二次開發(fā)

求解器的二次開發(fā)包括自定義流動應力應變模型,自定義運動控制,自定義損傷模型,節(jié)點值和單元值的計算以及其他特定的需要。而后處理的二次開發(fā)則是用戶利用儲存在DB文件中的計算結(jié)果來計算場變量。

這二者的開發(fā)語言均為FORTRAN,并且是老式的FORTRAN 77。DEFORM指定的集成開發(fā)環(huán)境是Absoft Fortran 9或者Absoft Fortran 11。其中,編譯64位程序只能通過后者編譯。

下面話不多說,先來展示一下怎么使用Absoft Fortran 9進行二次開發(fā)(因為只有Absoft Fortran 9軟件)。

首先,在DEFORM安裝目錄下找到UserRoutine(例:D:\Program Files\SFTC\DEFORM\v11.0\3D\UserRoutine),2D與3D文件夾下各有一個UserRoutine,這里以3D為例。在文件夾下可以看到三個子文件夾,其中DEF_SIM就是求解器的開發(fā)項目文件夾,另兩個分別是后處理以及元胞自動機的二次開發(fā)項目文件夾。

DEFORM子程序初探的圖1

接著進入DEF_SIM文件夾中,藍框就是Absoft Fortran 9的項目文件,綠框和藍框分別是Absoft Fortran 11的32位和64位項目文件。


DEFORM子程序初探的圖2

用Absoft 9打開DEF_SIM_USR_Absoftv90.gui。打開之后,窗口中羅列出了所有二次開發(fā)用到的文件。本次以修改本構(gòu)模型為一個小例子,雙擊usr_mtr.f

DEFORM子程序初探的圖3

打開之后可以看到整個代碼有10個UFLOW子程序和一個USRMTR子程序組成,USRMTR不用管,它主要起一個調(diào)用其它UFLOW子程序的作用。我們需要修改的是UFLOW子程序,DEFORM支持100個UFLOW子程序,不過一般我們只用到UFLOW一個子程序。UFLOW后面的數(shù)字要記住,后面要用到,先來看UFLOW1子程序,里面已經(jīng)有一個例子了,這個例子很簡單。就紅框中的一段,具體每個變量代表什么意思,可以看一下上面注釋,學過英語的應該都懂吧,沒錯,哪些密密麻麻的C開頭的就是FORTRAN 77的注釋。

DEFORM子程序初探的圖4

好,假設我們已經(jīng)寫好了UFLOW1子程序,保存一下,記住我們修改的是UFLOW1。關閉編輯窗口,回到上一個窗口,點擊窗口上面的小錘子,進行編譯和鏈接,出現(xiàn)Build completed的提示后,會在UserRoutine文件夾下生成一個DEF_SIM.exe文件,把這個文件拷貝到D:\Program Files\SFTC\DEFORM\v11.0\3D目錄下,替換原有的DEF_SIM.exe。注意,在拷貝替換前記得把原來的文件備份一下。至此,開發(fā)階段就完成了。

DEFORM子程序初探的圖5

下面進行正常的模擬計算,計算的時候需要修改一個地方,就是在材料里面把Flow stress改成User routine,然后點擊右邊的筆,輸入1,就是剛剛我們修改的UFLOW1后面的數(shù)字1,其它正常設置即可。

DEFORM子程序初探的圖6

然后我簡單做了一個壓縮的計算進行對比,先來看等效應力

   模型結(jié)果

DEFORM子程序初探的圖7

 

User routine結(jié)果

DEFORM子程序初探的圖8


看云圖好像沒差,不過看右邊的顏色條表示的值,二者的差別將近50倍。


以上就是本構(gòu)模型二次開發(fā)的一個完整過程了,這算一個簡單的例子,復雜一些的就涉及到編寫多個代碼文件了,而且最重要的是二次開發(fā)前要建立可靠的物理模型和數(shù)學模型。個人認為,二次開發(fā)的難點也在于此。

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

TOP

11
10
25