Radioss技巧又來啦!
本期我們將要討論Radioss的二次開發,因為內容比較多,
我們將分為上下兩部分進行講解,
今天就先來說說Radioss二次開發的準備工作,
Let's go !!!!!
Radioss支援材料本構、材料破壞和單元屬性的二次開發。
本次主要講介紹以下幾個方面:二次開發背景知識,安裝Fortran編譯器,設置環境變數,編譯二次開發的程式,使用二次開發的程式。
Radioss的二次開發是使用動態庫的二次開發,在不同的作業系統上會產生不同的檔,如圖所示:
(點擊圖片可以查看大圖~)
二次開發的流程如下圖所示,首先要用Fortran編寫二次開發程式,程式需要包含兩部分:Starter二次開發程式和Engine二次開發程式;之後需要編譯動態庫;編譯完成後,如果是windows系統會生成尾碼為dll的檔,把這檔和Radioss模型放在同一個資料夾內,在運行模型時,Radioss就可以自動識別二次開發程式。
Fortran編譯器選擇
Intel 的 Fortran 編譯器功能強大,而且支援所有作業系統,但是需要付費;而GNU GCC支持Linux64,MinGW Gfortran支持Windows,這兩個是免費的Fortran編譯器,因為這一講的實例都是在Windows系統上,所以推薦大家使用MinGW Gfortran。
MinG下載
大家可以從MinGW主頁下載免費的MinGW win64 安裝軟體,檔案只有900K左右,網址如下:
https://sourceforge.net/projects/mingw-w64/
安装注意事項
下載完成之後,進行安裝,不過要注意的是,在安裝時可以選擇安裝版本,建議大家安裝4.9.2或者7.2.0版本,經工程師測試,這兩個版本最好用、和Radioss最相容。Architecture選擇x86_64,Threads選擇win32,Exception選擇seh,build revision選擇1,推薦參數如下圖所示:
安装完成測試
安裝完成以後,在“開始”功能表中找到裡面的“ MinGW-W64 project“ 資料夾中的 Run terminal 進行測試,點開後輸入gcc -v或者gfortran –v可以再次查看MinGW的版本號,核對版本號以及各項設置是否正確。
看到這樣的版本資訊表示成功安裝MinGW Win64 編譯器啦~
以上兩部分如果大家覺得看文字還不能很好理解的話,可以觀看下方視頻,Altair China Radioss高級應用工程師Lucy會為大家詳細講解:
成功安裝完Fortran編譯器之後,我們就要來設置環境變數啦。
設置SDK的位址
我們需要設置SDK的位址 RAD_USERLIB_SDK_PATH 。
Linux (bash)
Windows
那如何連結呢?
首先找到安裝HyperWorks的目錄 -- 找到hwsolvers資料夾 -- 點擊Radioss資料夾 -- 找到userlib_sdk
PS:請確保已安裝Hyperwork solver安裝包!
(安裝磁碟不一樣檔案位置可能有所出入)
設置動態庫名
設置動態庫名 RAD_USERLIB_ARCH,系統不同、Fortran版本不同,要設置不同的動態庫名~
上圖放大以後如下:
這裡展示的是在windows平臺安裝gfortran4.9.2版本,如果安裝的其他版本在圖中找到對應的動態庫名即可。
小結一下,設置環境變數的命令如圖所示:
Radioss提供了一些編譯的腳本,不過在編譯中需要注意一些格式,如下圖::
放大看一下:
同理,Radioss提供的編譯腳本也是根據使用不同的sdk而不同,參考如下::
我們在剛才提到的設置環境變數以及運行的命令,都可以放在一個腳本裡面從而可以快速地進行。
成功編譯starter和engine二次開發程式,產生libraduser_win64.dll文件:
starter和engine二次開發程式有錯誤,編譯將不成功:
這兩小節比較複雜,具體如何編譯,看視頻可能更清楚哈哈~
有了dll檔之後,將生成的dll檔(或so尾碼的檔)放入有Radioss模型的資料夾中。
和平常一樣運行Radioss模型即可,Radioss自動識別使用dll檔(或so檔)。。
如果你的dll檔比較多,可以在HyperWorks solver run manager 中指定檔。
在HyperWorks solver run manager 中運行完成之後,點開結果檔,檢測是否使用了二次開發編譯的dll檔(或so尾碼的文件)。
在starter二次開發程式(比如lecm29.f)中加入特殊的列印語句。
在starter輸出檔*0.out檔中相應位置出現該列印語句。
這一部分也有視頻供大家更直觀的學習:
大家可以點擊下方按鈕下載這篇Radioss技巧中用到的練習素材
如果大家在過程中有問題,可以查閱Radioss二次開發幫助文檔,位址如下:
我們下期再見啦~
留言列表