当前较新版本的Fluent(如Fluent 2025R1)内置了clang编译器,编译UDF可以不需要安装Visual Studio。不过利用GCC进行UDF编译还是有不少优势的,包括:(1)gcc编译速度快,而且能够给出详细的调试信息。(2)方便在vscode之类的工具中进行代码编译和调试。(3)能够编译外部动态链接库。
以下是利用GCC进行Fluent UDF编译的基本过程。
1 下载Mingw64
Mingw64中包含了全部的GCC编译工具。
Mingw64官网地址:https://mingw-w64.org/ github仓库地址:https://github.com/niXman/mingw-builds-binaries/releases ”
嫌麻烦的话可以在github下载预编译版本,如下图所示。

下载后将文件解压到英文路径中,然后将解压文件的bin
文件夹所在路径添加到环境变量的path
中(可能需要重启电脑使环境变量生效),确保在cmd中可以直接执行gcc
。

在cmd中输入命令gcc --version
,如出现如下图所示的版本信息,则表示已经准备完毕。

2 下载CMake
进入CMake官网( https://cmake.org/ )下载CMake。

下载绿色版本即可。

下载完毕后解压缩。如解压到C:mingw64CMake
中(这里把doc文件夹删除了)。

3 准备CMakeLists文件
这里采用github库https://github.com/bronya19c/CMake_Project_Demo_for_UDF
中的文件组织。

文件下载后解压到英文路径下,然后选择使用vscode
打开该文件夹。

打开CMakeLists.txt
文件,按文件中的提示信息进行修改,这里主要修改fluent路径及版本信息。

4 文件修改
为了能够顺利编译,还需要修改一些内容。
-
修改src文件夹下的CMakeLists.txt文件,第46行添加 ${FLUENT_ROOT}/include
。不添加此行文本,在编译时会出现有大堆的找不到头文件的错误提示。

-
打开 C:Program FilesANSYS Incv241fluentfluent24.1.0cortexsrccx.h
文件,找到第118-119
行,修改成如下图所示。之所以修改这里的代码,主要是strecasecmp
与Mingw64中的相应代码冲突了,如果使用MSVC编译的话,则不需要修改此处代码。

要编写的UDF源文件放在src
文件夹下面,如示例中的test.c
。需要注意的是,若我们自己添加了新的UDF文件,需要在src/CMakeLists.txt
文件中修改相应的文件路径信息。
5 编译UDF
在项目目录下启动CMD
,如下图所示。

输入以下命令(注意替换命令中的文件路径):
"C:mingw64CMakebincmake.exe" -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=C:mingw64bingcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:mingw64bing++.exe --no-warn-unused-cli -SC:/Users/Administrator/Desktop/demo -Bc:/Users/Administrator/Desktop/demo/build -G "MinGW Makefiles"
"C:mingw64CMakebincmake.exe" --build c:/Users/Administrator/Desktop/demo/build --config Debug --target all -j 38 --
如下图所示。

此时可以看到在libudf
文件夹中有了编译完成后的dll文件。

(完)

本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册