UDF編譯錯誤解決方法經(jīng)驗之談

2017-02-21  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

Fluent中UDF的存在無疑大大強化了其軟件功能和適用性。但UDF編譯易出現(xiàn)很多錯誤,寫這篇博文,全為經(jīng)驗之談,可能一些解決方法FLUENT 的UDF幫助中已有提及。如果是 nmake 之類的錯誤,則必須重裝編譯器或者更改系統(tǒng)環(huán)境變量,參見本博客另外一篇博文。下述純針對已經(jīng)成功執(zhí)行過UDF的電腦而言。

1、Fatal Error:Access Violation

這是fluent編譯UDF過程中最常見的一個錯誤。原因極多。就目前所知,列舉如下:

a、如果build和load都已成功,但在初始化的過程中出現(xiàn)此提示,則考慮是否引用了自定義內(nèi)存C_UDMI而忘記在case設(shè)置中釋放給Fluent充足的內(nèi)存空間??赏ㄟ^ User-Defined---->Memory……查看賦予的自定義內(nèi)存?zhèn)€數(shù)。必須不少于udf中使用的 UDMI 個數(shù).

b、若在UDF中使用了時間相關(guān)變量,如CURRENT_TIME,CURRENT_TIMESTEP等,則計算中必須使用Unsteady模型。

c、在Fluent的結(jié)構(gòu)數(shù)據(jù)中,秉承domain, thread, c/f的順序。值得注意的是,一些數(shù)據(jù)僅僅在邊界處才有值,一些數(shù)據(jù)卻在邊界處不存在。當(dāng)調(diào)用了模型domain內(nèi)部的一個變量,而這個變量僅在邊界處才會有,便會出現(xiàn)錯誤。許多關(guān)于面的變量都是如此,如F_U.F_V F_W F_UDSI.當(dāng)然還有其他。

d、在自定義fluent中的對流項時,常會用到許多面變量。面變量是最容易出錯的地方。在fluent中的case邊界處,注意F_C1和F_C1_THREAD都是非法操作,因為此處根本不存在c1。


2、編譯過程中,有些系統(tǒng)變量明明已經(jīng)聲明類型,但在Build時系統(tǒng)卻仍提示未聲明,或者有時候明明一句語句的末尾有分號,系統(tǒng)卻一直提示缺少分號,那么很有可能是在獲取區(qū)域指針的語句放得過于靠前。建議獲取區(qū)域指針的語句 Get_Domain(1)盡量往后放,最好下一句便要用到。


3、有時候,udf的編譯不成功和代碼本身無任何關(guān)系,僅是由于文件名稱取得過于復(fù)雜。建議永遠不取復(fù)雜的文件名。


4、在FLUENT中的UDF宏中,有些宏并不被包含在udf.h中,需要另行包含。如果不在文件開頭即 #include,系統(tǒng)將無法識別這些宏,便會報錯

5、在一些情況下,可能會使用UDF寫出部分?jǐn)?shù)據(jù)到指定文件中,經(jīng)檢測,如果寫出到不同的文件中不會出現(xiàn)編譯錯誤,但在計算執(zhí)行過程中卻會中斷迭代。具體解決方法還未找到。目前建議是盡量寫出到一個文件中去。



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

相關(guān)標(biāo)簽搜索:UDF編譯錯誤解決方法經(jīng)驗之談 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

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