虽说fluent现在有了和comsol 类似的表达式功能,但有些地方还是要用到UDF 的(主要是别人的算例用的udf。。。)
udf需要编译,编译时udf源文件需要和算例文件在一个文件夹。但在编译时,可能会出现奇怪的错误,分享一下我的踩坑经过。
1、visual c++
位置不对,导致fluent编译时找不到编译器。
fluent只能用visual c++编译UDF,所以编译前需要安装visual c++。但是,fluent默认visual c++装在了c盘,所以如果你的visual c++装在了D盘,fluent就会编译错误,或者 你的fluent版本太旧而vs太新,都会导致fluent找不到vs的位置。这时,你需要自己指定visual c++的位置。
打开udf配置文件
x:\Program Files\ANSYS Inc\v222\fluent\ntbin\win64/udf.bat
把第一个VS位置改成你自己的位置
2、编译时缺少.lib库文件。
visual c++装完后,fluent就可以编译了,但编译后控制台会提示你缺少kernal32.lib 文件,这可能是因为udf源文件对于编译器来说只是个临时文件,缺少visual c++中完善的引用设置。解决方法就是把所有库文件都复制到编译器的默认库文件夹。
把以下文件夹的所有文件(都是.lib)
C:\ProgramFiles (x86)\WindowsKits\10\Lib\10.0.19041.0\um\x64
复制到
C:\ProgramFiles (x86)\MicrosoftVisualStudio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64
我们的版本号可能会有所差异,但大体差不多就OK。
第二个问题我从网上搜解决办法搞了半天,结果还是不行,原因是他们搞复杂了,设置环境变量啥的其实没必要,缺啥补啥就行。