讓網(wǎng)格動起來(5)—配置UDF編譯環(huán)境
2017-01-18 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
FLUENT UDF中關(guān)于動網(wǎng)格的DEFINE宏均要求為編譯型。FLUENT的UDF運(yùn)行環(huán)境有兩種:解釋型與編譯型。雖然兩種方式都是采用編譯,但是編譯方式及編譯后獲得的結(jié)果是不同的。編譯型UDF需要通過Complied進(jìn)行編譯,編譯后得到相應(yīng)的dll文件。而解釋型UDF則是通過Interprete進(jìn)行加載,不會生成dll文件。據(jù)我的直覺,編譯型UDF可能利用了鉤子函數(shù)的技術(shù)。
一、編譯型UDF與解釋型UDF的差異(翻譯自UDF手冊)
1、解釋型UDF
- 一個精簡的平臺
- 都能被作為編譯型UDF使用
- 不需要C編譯器(利用FLUENT自身的編譯器)
- 比編譯型UDF反應(yīng)慢
- 在方法方面受到較多的限制
- 無法被鏈接到編譯系統(tǒng)或其它庫
- 只能使用預(yù)定義宏訪問存儲于ansys fluent中的數(shù)據(jù)
2、編譯型UDF
- 比解釋型UDF反應(yīng)迅速
- 沒有諸多C語法限制
- 能夠使用其它語言編寫的函數(shù)
- 當(dāng)具有一些解釋型UDF不能處理的功能時,無法作為解釋型UDF使用
3、選取原則
- 對于小型的、簡單的功能,使用解釋型UDF
- 復(fù)雜功能使用編譯型UDF。(如具有較大的CPU開銷、需要訪問公共庫)
二、配置UDF編譯環(huán)境
對于編譯型UDF,在fluent中加載時,需要調(diào)用C編譯器將其編譯成DLL文件。這里的C編譯器雖說理論上是沒有任何限制的,但是在windows環(huán)境下還是推薦使用microsoft visual c++,在linux環(huán)境下推薦使用GCC。我們這里只說windows環(huán)境下編譯環(huán)境的配置問題。
visual c++最高版本是6.0,再往后就是microsoft visual studio7.0、8.0、9.0、10.0。其中7.0對應(yīng)microsoft visual studio2003,8.0對應(yīng)2005,9.0對應(yīng)2008,10.0對應(yīng)2010。在一些老版的fluent中,通常需要配置環(huán)境變量。配置環(huán)境變量的方法,網(wǎng)絡(luò)上很多,可以搜索。這里講的是通過修改udf.bat文件來配置編譯環(huán)境。
在fluent 12.0之后的版本中,可以通過修改udf.bat文件的方式進(jìn)行編譯環(huán)境配置。該文件位于
xx\ANSYS Inc\v140\fluent\ntbin\win64目錄下。本人安裝的fluent是64bit的,版本為14.0。不同版本的fluent,該文件所處的位置可能不同。大家可以利用windows的文件搜索功能尋找該文件。注意若是安裝了icepak,則會有兩個udf.bat文件,一定要注意我們只針對fluent目錄下的該文件。
我們用記事本打開此文件,由于本機(jī)上安裝的是microsoft visual studio 2010,因此只需要關(guān)注圖中橙色線框中的部分。
現(xiàn)在來分析橙色框中的語句。有過DOS經(jīng)驗(yàn)的人可能嫌我羅嗦,不過我還是要說一下。因?yàn)楝F(xiàn)在有DOS經(jīng)驗(yàn)的人越來越少了。
(1)第8行:echo是dos中助于在屏幕上寫出一段文本。這與c語言中的printf,c#中的Console.WriteLine,JAVA中的System.Print的功能是一樣的,只是在屏幕上打出后面一段文字,我們可以忽略了。
(2)第10行:設(shè)定MSVC_DEFAULT的值。其實(shí)是一個賦值語句。容易理解。一會兒需要動它。
(3)第11行:if exist是判斷,判斷后面的vcvarsall.bat文件是否存在,若存在,則設(shè)置變量MSVC的值。
(4)第12行:判斷MSVC是否為空,若不為空,則進(jìn)入msvc_env100標(biāo)記行。找到該標(biāo)記行,其內(nèi)容位于86~89行。該標(biāo)記行的內(nèi)容為:(1)設(shè)定msvc_version為100(2)調(diào)用vcvarsall.bat文件,利用amd64,因?yàn)槲野惭b的fluent版本是64bit,若32bit版本會有所不同。
(5)跳轉(zhuǎn)到ms_c_end行,該行是一個結(jié)束標(biāo)記行。
看起來復(fù)雜,其實(shí)人們要做的工作很少。用戶所要做的僅僅是修改第10行的內(nèi)容。修改microsoft visual studio的安裝路徑。若vc是全默認(rèn)安裝,則什么都不需修改,否則改為正確的路徑。如本機(jī)的microsoft studio安裝在d:\program files目錄下,只需將第10行修改為:
set MSVC_DEFAULT=D:\Program Files\Microsoft Visual Studio 10.0
就可以了。
剩下要做的工作是:在fluent啟動面板中勾選Environment標(biāo)簽頁下的setup compilation Environment for UDF選項(xiàng)。該選項(xiàng)默認(rèn)是選中的,且不同的版本該選項(xiàng)所處的位置可能有所不同。
三、總結(jié)
配置12.0以上fluent UDF編譯環(huán)境,需要進(jìn)行的工作:
(1)找到fluent安裝目錄下的udf.bat文件
(2)打開udf.bat文件,修改對應(yīng)本機(jī)安裝的microsoft visual studio版本的路徑
OK了!這種方式配置UDF編譯環(huán)境不需要考慮計(jì)算機(jī)的操作系統(tǒng)。
本文得益于天樂樹網(wǎng)友博文http://blog.sina.com.cn/s/blog_4a0a8b5d0100uqht.html,在此表示感謝。
相關(guān)標(biāo)簽搜索:讓網(wǎng)格動起來(5)—配置UDF編譯環(huán)境 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析