讓網(wǎng)格動(dòng)起來(lái)(5)—配置UDF編譯環(huán)境

2017-01-18  by:CAE仿真在線  來(lái)源:互聯(lián)網(wǎng)

FLUENT UDF中關(guān)于動(dòng)網(wǎng)格的DEFINE宏均要求為編譯型。FLUENT的UDF運(yùn)行環(huán)境有兩種:解釋型與編譯型。雖然兩種方式都是采用編譯,但是編譯方式及編譯后獲得的結(jié)果是不同的。編譯型UDF需要通過(guò)Complied進(jìn)行編譯,編譯后得到相應(yīng)的dll文件。而解釋型UDF則是通過(guò)Interprete進(jìn)行加載,不會(huì)生成dll文件。據(jù)我的直覺(jué),編譯型UDF可能利用了鉤子函數(shù)的技術(shù)。

一、編譯型UDF與解釋型UDF的差異(翻譯自UDF手冊(cè))

1、解釋型UDF

  • 一個(gè)精簡(jiǎn)的平臺(tái)
  • 都能被作為編譯型UDF使用
  • 不需要C編譯器(利用FLUENT自身的編譯器)
  • 比編譯型UDF反應(yīng)慢
  • 在方法方面受到較多的限制
  • 無(wú)法被鏈接到編譯系統(tǒng)或其它庫(kù)
  • 只能使用預(yù)定義宏訪問(wèn)存儲(chǔ)于ansys fluent中的數(shù)據(jù)

2、編譯型UDF

  • 比解釋型UDF反應(yīng)迅速
  • 沒(méi)有諸多C語(yǔ)法限制
  • 能夠使用其它語(yǔ)言編寫(xiě)的函數(shù)
  • 當(dāng)具有一些解釋型UDF不能處理的功能時(shí),無(wú)法作為解釋型UDF使用

3、選取原則

  • 對(duì)于小型的、簡(jiǎn)單的功能,使用解釋型UDF
  • 復(fù)雜功能使用編譯型UDF。(如具有較大的CPU開(kāi)銷(xiāo)、需要訪問(wèn)公共庫(kù))

二、配置UDF編譯環(huán)境

對(duì)于編譯型UDF,在fluent中加載時(shí),需要調(diào)用C編譯器將其編譯成DLL文件。這里的C編譯器雖說(shuō)理論上是沒(méi)有任何限制的,但是在windows環(huán)境下還是推薦使用microsoft visual c++,在linux環(huán)境下推薦使用GCC。我們這里只說(shuō)windows環(huán)境下編譯環(huán)境的配置問(wèn)題。

visual c++最高版本是6.0,再往后就是microsoft visual studio7.0、8.0、9.0、10.0。其中7.0對(duì)應(yīng)microsoft visual studio2003,8.0對(duì)應(yīng)2005,9.0對(duì)應(yīng)2008,10.0對(duì)應(yīng)2010。在一些老版的fluent中,通常需要配置環(huán)境變量。配置環(huán)境變量的方法,網(wǎng)絡(luò)上很多,可以搜索。這里講的是通過(guò)修改udf.bat文件來(lái)配置編譯環(huán)境。

在fluent 12.0之后的版本中,可以通過(guò)修改udf.bat文件的方式進(jìn)行編譯環(huán)境配置。該文件位于

xx\ANSYS Inc\v140\fluent\ntbin\win64目錄下。本人安裝的fluent是64bit的,版本為14.0。不同版本的fluent,該文件所處的位置可能不同。大家可以利用windows的文件搜索功能尋找該文件。注意若是安裝了icepak,則會(huì)有兩個(gè)udf.bat文件,一定要注意我們只針對(duì)fluent目錄下的該文件。

我們用記事本打開(kāi)此文件,由于本機(jī)上安裝的是microsoft visual studio 2010,因此只需要關(guān)注圖中橙色線框中的部分。

image

現(xiàn)在來(lái)分析橙色框中的語(yǔ)句。有過(guò)DOS經(jīng)驗(yàn)的人可能嫌我羅嗦,不過(guò)我還是要說(shuō)一下。因?yàn)楝F(xiàn)在有DOS經(jīng)驗(yàn)的人越來(lái)越少了。

(1)第8行:echo是dos中助于在屏幕上寫(xiě)出一段文本。這與c語(yǔ)言中的printf,c#中的Console.WriteLine,JAVA中的System.Print的功能是一樣的,只是在屏幕上打出后面一段文字,我們可以忽略了。

(2)第10行:設(shè)定MSVC_DEFAULT的值。其實(shí)是一個(gè)賦值語(yǔ)句。容易理解。一會(huì)兒需要?jiǎng)铀?/span>

(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版本會(huì)有所不同。

(5)跳轉(zhuǎn)到ms_c_end行,該行是一個(gè)結(jié)束標(biāo)記行。

image

看起來(lái)復(fù)雜,其實(shí)人們要做的工作很少。戶(hù)所要做的僅僅是修改第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啟動(dòng)面板中勾選Environment標(biāo)簽頁(yè)下的setup compilation Environment for UDF選項(xiàng)。該選項(xiàng)默認(rèn)是選中的,且不同的版本該選項(xiàng)所處的位置可能有所不同。

SNAGHTML7fe042

三、總結(jié)

配置12.0以上fluent UDF編譯環(huán)境,需要進(jìn)行的工作:

(1)找到fluent安裝目錄下的udf.bat文件

(2)打開(kāi)udf.bat文件,修改對(duì)應(yīng)本機(jī)安裝的microsoft visual studio版本的路徑

OK了!這種方式配置UDF編譯環(huán)境不需要考慮計(jì)算機(jī)的操作系統(tǒng)。

本文得益于天樂(lè)樹(shù)網(wǎng)友博文http://blog.sina.com.cn/s/blog_4a0a8b5d0100uqht.html,在此表示感謝。


開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:讓網(wǎng)格動(dòng)起來(lái)(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電磁分析 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢(xún):點(diǎn)擊咨詢(xún) 點(diǎn)擊咨詢(xún)
項(xiàng)目QQ咨詢(xún):點(diǎn)擊咨詢(xún)
email:kf@1cae.com