使用VSCode开发STAR-CCM+用户程序:通过CoolProp计算物性参数
STAR-CCM+用户程序(用户库)1是通过外部编译器(通常是C/C++,也支持Fortran)按一定的规则编译构建的动态链接库,将构建好的动态链接库注册到sim文件中,可以实现某些自定义功能。一个用户程序通常包含一个或多个用户自定义的函数,这些自定义函数一般用于实现特殊的配置或场函数。
用户程序需要先注册动态链接库才能调用,而动态链接库的格式往往与操作系统、硬件平台等密切相关,因此用户程序通常都是针对特定平台进行编译,无法实现跨平台运行。
本文尝试用VSCode编写STAR-CCM+动态链接库,利用开源的热力学库CoolProp为STAR-CCM+拓展物性参数计算功能;通过CMake构建用户程序,确保在不同平台下能正确生成动态链接库文件。
1. CoolProp介绍
CoolProp 是一个开源跨平台的热力学库,定位上类似于NIST的REFPROP,包含各种流体物性参数,同时支持多种编程语言,也支持通过MATLAB、Excel甚至javascript调用进行物性参数计算2。
Windows平台通过以下命令下载编译、安装CoolProp3:
# 推荐使用PowerShell,需要先安装cmake、git及clang-cl编译器
# 下载CoolProp源码及其依赖
git clone https://github.com/CoolProp/CoolProp --recursive
cd CoolProp
# 建立工作目录
mkdir build && cd build
# 配置静态库编译文件
cmake .. -DCOOLPROP_STATIC_LIBRARY=ON -G "Visual Studio 17 2022" -T ClangCL,host=x64 -A x64
# 编译静态库
cmake --build . --config Release
# 安装静态库
cmake --install . --prefix $PWD/../../CoolPropLib
Linux平台通过以下命令编译、安装CoolProp:
# 需要先安装cmake、git及gcc编译器
# 下载CoolProp源码及其依赖
git clone https://github.com/CoolProp/CoolProp --recursive
cd CoolProp
# 建立工作目录
mkdir -p build && cd build
# 配置静态库编译文件,默认架构为64位
cmake .. -DCOOLPROP_STATIC_LIBRARY=ON -DCOOLPROP_FPIC=ON -G "Ninja"
# 编译静态库,使用32个核心加速编译
cmake --build . --config Release -- -j32
# 安装静态库
cmake --install . --prefix $PWD/../../CoolPropLib
得益于软件良好的封装,CoolProp相关函数的调用十分简单,以下是官方示例代码4: