
發(fā)布
注冊
/
登錄udf配置的案例
Fluent_UDF環(huán)境配置
雖說fluent現(xiàn)在有了和comsol類似的表達式功能,但有些地方還是要用到UDF的(主要是別人的算例用的udf。。。)
udf需要編譯,編譯時udf源文件需要和算例文件在一個文件夾。但在編譯時,可能會出現(xiàn)奇怪的錯誤,分享一下我的踩坑經(jīng)過。
1、visual c++位置不對,導致fluent編譯時找不到編譯器。
fluent只能用visual c++編譯UDF,所以編譯前需要安裝visual c++。但是,fluent默認visual c++裝在了c盤,所以如果你的visual c++裝在了D盤,fluent就會編譯錯誤,這時,你需要自己指定visual c++的位置,方法自己去b站搜就可以,這里還是建議把visual c++裝在默認位置,這樣不需要任何多余設置。
2、編譯時缺少.lib庫文件。
visual c++裝完后,fluent就可以編譯了,但編譯后控制臺會提示你缺少kernal32.lib文件,這可能是因為udf源文件對于編譯器來說只是個臨時文件,缺少visual c++中完善的引用設置。解決方法就是把所有庫文件都復制到編譯器的默認庫文件夾。
把以下文件夾的所有文件(都是.lib)
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64
復制到
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64
我們的版本號可能會有所差異,但大體差不多就OK。
展開 Fluent2019 R1 UFD配置方法
針對Fluent2019 R1和 vs2019進行udf配置,詳細如下
1, 首先去官網(wǎng)下載vs2019免費版
2, 然后只安裝c++即可
3, 安裝完成后需要修改fluent中的udf.bat,修改其中的vs路徑為你的安裝路徑
Fluent UDF的功能應用、數(shù)據(jù)結構、語言邏輯及常見例子等講解分析(含詳細視頻教程)
6.2 例子2: 設置材料屬性的UDF
#include "udf.h"
DEFINE_PROPERTY(cell_density, c, t)
{
real temp = C_T(c,t); /* 獲取單元的溫度 */
return 1000.0 - 0.1 * temp; /* 計算密度 */
}
解釋: 該UDF通過DEFINE_PROPERTY宏定義了一個溫度相關的密度,密度隨溫度變化。
6.3 例子3: 調(diào)整物理量的UDF
#include "udf.h"
DEFINE_ADJUST(adjust_temperature, d)
{
Domain *domain = Get_Domain(1);
Thread *t;
cell_t c;
thread_loop_c(t, domain)
{
begin_c_loop(c, t)
{
C_T(c,t) += 1.0; /* 增加溫度 */
}
end_c_loop(c, t)
}
}
解釋: 該UDF通過DEFINE_ADJUST宏定義了一個調(diào)整溫度的操作,在每次迭代時增加計算域內(nèi)所有單元的溫度。
7. 課程的優(yōu)勢和適用人群
7.1 課程優(yōu)勢
1. 系統(tǒng)全面: 課程內(nèi)容涵蓋了從環(huán)境變量配置到UDF的實際應用,提供了全面系統(tǒng)的學習路徑。
2. 實戰(zhàn)案例: 課程中包含了27個實戰(zhàn)案例,通過這些案例,學員可以更好地理解和掌握UDF的應用。
3. 手把手教學: 每節(jié)課都有詳細的手寫代碼教學,確保學員能夠真正理解和掌握每一個知識點。
4.
展開 九、Fluent用戶自定義函數(shù)(UDF)基礎(2)-DEFINE_PROFILE
導入UDF文件,一般有兩種方法可以將編寫好的C語言代碼導入到Fluent中。第一種是interpreted解釋型,如圖5,單擊interpreted,出現(xiàn)圖6的界面,單擊Browse選擇編寫好的代碼文件圖7,單擊OK,返回圖8界面,單擊interpret。此時如果控制窗口沒有出現(xiàn)Error字樣,說明UDF沒有問題。</p><p> 還有另一種導入UDF的方法-Compiled編譯型,編譯型方法導入UDF需要首先配置好環(huán)境變量,然后與解釋型類似的操作。兩種方法的區(qū)別:解釋型相對簡單很多,不必配置環(huán)境變量,同時計算過程中消耗內(nèi)存也較低,但當UDF代碼比較復雜時,或者用到一些高級宏時,解釋型無法正常使用;編譯型需要配置環(huán)境變量,計算過程會消耗一定的內(nèi)存,但是對于任意的UDF都適用。這里由于UDF比較簡單,我們使用解釋型即可</p><p class="ql-align-center"><img src="https://mmbiz.qpic.cn/mmbiz_png/8tJMdLVYZy9lhibYichCiaxqgYmvB4w57yjR1QFcGZ38JHTiaKsGpz7zKYibrJxcB6SXrYt06bvqWjzsdL9o7syJcrA/640?wx_fmt=png" width="642" style=""></p><p class="ql-align-center">圖5.解釋型UDF</p><p class="ql-align-center"><img src="https://mmbiz.qpic.cn/mmbiz_png/8tJMdLVYZy9lhibYichCiaxqgYmvB4w57yjhOjA2MjXEV7DlMkLFvn7Mw8L7aqqgAcfZ32IBu6lfcO1bjVx3sMibog/640?
展開 