Dust_Windows_cygwin编译安装
DUST是解决空气动力学问题的一种新颖、灵活的解决方案。旨在为复杂构型的空气动力学问题提供价格合理、可靠的解决方案。DUST专注于输入、几何定义、移动和解决方案阶段的可扩展性和灵活性,使用户能够分析具有不断增加和可扩展保真度的各种配置。主要它是开源免费的。
一、★ 安装环境说明
-
windows系统及构建环境:
windows10/11/server_2016
cygwin_x64
gcc 7.4.0
gfortran 7.4.0 -
依赖三方库软件包:
hdf5-1.10.2.tar.gz
cgns-4.3.0.tar.gz
liblapack-devel
openmpi-4.1.2
cmake -
主程序软件
dust-0.7.2-b.zip
注意! 本内容是利用cygwin工具,在windows下编译开源软件的,需要的三方库依赖工具包: gcc/gfortran/liblapack-devel/openmpi/cmake都需要在联网的时候通过网络在线安装上,然后把cygwin软件下的安装包复制到离线设备上。
★cygwin官网
二、★ 三方库依赖编译
2.1 HDF5编译安装(第一种方式)
# 版本:hdf5-1.10.2.tar.gz
tar -zxvf hdf5-1.10.2.tar.gz
cd hdf5-1.10.2
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=指定hdf5安装路径 \
-DHDF5_BUILD_FORTRAN=ON \
-DBUILD_SHARED_LIBS=ON
make
make install
# 加载hdf5环境
echo -e "#hdf5_env\nHDF5_ROOT=指定上面hdf5的安装路径" >> ~/.bashrc
echo -e "PATH=$HDF5_ROOT:$PATH" >> ~/.bashrc
echo -e "PATH=$HDF5_ROOT/bin:$PATH" >> ~/.bashrc
echo -e "LD_LIBRARY_PATH=$HDF5_ROOT/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
2.2 HDF5 module环境加载(第二种方式):
# 如果当前环境,安装了environment-modules软件包,并以搭建好module环境
module avail #查看当前是否已经部署好hdf5
module load hdf5/1.10.2 #直接加载hdf5三方库环境
2.3 CGNS编译安装:
#版本:cgns-4.3.0.tar.gz
tar -zxvf cngs-4.3.0.tar.gz
cd cgns-4.3.0
mkdir build
cd build
cmake .. -DCGNS_ENABLE_FORTRAN=ON \
-DCGNS_ENABLE_HDF5=ON \
-DCMAKE_INSTALL_PREFIX=指定cgns安装路径
make
make install
2.4 Openmpi/mpich2并行软件
注意! openmpi-4.1.2在安装cygwin的时候,就应该选择安装上。因为如果要自己编译安装openmpi的话,在编译过程中会出现错误,导致无法安装。基本上所有的版本都不行。作者唯一成功安装的并行软件是老版本mpich2-1.4.1。
Mpich_linux-centos7.9系统下最全编译安装调用
三、★ Dust主程序编译安装
# 版本:dust-0.7.2-b.zip
unzip dust-0.7.2-b.tar.gz
cd dust-0.7.2-b
mkdir build
cd build
cmake .. -DCGNS_INC=指定cgns头文件路径 -DCGNS_LIB=指定cgns库文件路径
make
注意! 这里不需要运行命令make install ,安装好的可执行文件就在当前安装目录下bin的面,如果需要指定安装路径就在cmake最后增加参数-DCMAKE_INSTALL_PREFIX=指定dust安装路径
安装成功后会出现三个可执行求解器如下图所示:
四、★ Dust求解器调用
软件包含可执行文件三个:dust dust_post dust_pre ,依赖的动态库10个
cyglapack-0.dll
cygblas-0.dll
cyghdf5_fortran-101.dll
cyggfortran-4.dll
cyghdf5-101.dll
cyghdf5_f90cstub-101.dll
cygquadmath-0.dll
cygwin1.dll
cyggcc_s-seh-1.dll
cyggomp-1.dll
把可执行文件和依赖的动态库放入到算例的文件中,就可以进行求解。
五、★ 错误提示
此问题只在windows环境下编译出现的问题
编译好后的可执行文件在进行调用的时候,会出现读取格式错误,如下图
错误原因: 代码中有判定读取格式一个函数功能路径是在源码文件下 src/general/mod_handling.f90
解决方法: 注释掉其中的一段代码,如下图所示,在重新编译。
注意! 如果编译过程中出现错误,建议删除build中所有的临时文件,重新构建,这样可以减少很多零时缓存带来的不定因数
六、★ 最后
以上内容都是经过实战验证过的,后续还会继续上传关于CAE开源软件linux系统和windows系统下离线编译/HPC超算搭建以及相应开源软件的编译安装等。