Linux/MacOS系统下SU2源代码编译安装
第一步:下载源代码
方法一、使用下面命令:
$ git clone https://github.com/su2code/SU2.git
方法二、(推荐)
源码下载链接:
第二步:安装前准备,Python需要3以上版本
- C/C++ 编译器
- Python 3
第三步:进入SU2文件夹下,里面有个meson.py文件,执行下面命令
~$ cd SU2
~/SU2$ ./meson.py build -Denable-autodiff=true --prefix=/home/username/SU2
我这里使用了
-Denable-autodiff=true
,支持AD功能,如果没有开启,安装完的SU2没有SU2_CFD_AD和SU2_DOT_AD这两个命令,无法求解离散伴随问题,建议开启这个选项。
可以将选项传递给脚本,以启用或禁用SU2的不同特性。下面是项目选项及其默认值的列表:
Option | Default value | Description |
---|---|---|
-Denable-autodiff | false | enable AD (reverse) support (needed for discrete adjoint solver) |
-Denable-directdiff | false | enable AD (forward) support |
-Denable-pywrapper | false | enable Python wrapper support |
-Dwith-mpi | auto | Set dependency mode for MPI (auto ,enabled ,disabled ) |
-Dwith-omp | false | enable MPI+Threads support (experimental) |
-Denable-cgns | true | enable CGNS support |
-Denable-tecio | true | enable TECIO support |
-Denable-mkl | false | enable Intel MKL support |
-Denable-openblas | false | enable OpenBLAS support |
-Denable-pastix | false | enable PaStiX support |
-Denable-mpp | false | enable Mutation++ support |
-Denable-mixedprec | false | enable the use of single precision on linear solvers and preconditioners |
例如,要启用AD支持,将该选项连同一个值传递给’ meson.py '脚本:
~/SU2$ ./meson.py build -Denable-autodiff=true
要为二进制文件和python脚本设置安装目录,请使用--prefix
选项,例如:
~/SU2$ ./meson.py build -Denable-autodiff=true --prefix=/home/username/SU2
为了构建具有并行支持的SU2,您需要在计算机上安装合适的MPI。在配置过程中,构建工具执行检查 (使用pkg-config) 并启用MPI支持。如果未找到安装,则将编译SU2的串行版本。可以使用介子选项
-Dcustom-mpi=true
强制MPI模式,然后假定编译器和/或环境变量具有正确的标志,包含目录和链接器参数。我这里没有设置MPI,相关配置建议参考官方安装文档
命令运行结束显示如下(这里只给出结尾部分):
......(省略)
Message: -------------------------------------------------------------------------
| ___ _ _ ___ |
| / __| | | |_ ) Release 8.0.0 "Harrier" |
| \__ \ |_| |/ / |
| |___/\___//___| Meson Configuration Summary |
| |
-------------------------------------------------------------------------
Option Value
---------------------
TecIO: true
CGNS: true
AD (reverse): true
AD (forward): false
Python Wrapper: false
Intel-MKL: false
OpenBlas: false
PaStiX: false
Mixed Float: false
libROM: false
CoolProp: false
MLPCpp: false
Please be sure to add the $SU2_HOME and $SU2_RUN environment variables,
and update your $PATH (and $PYTHONPATH if applicable) with $SU2_RUN
Based on the input to this configuration, add these lines to your .bashrc file:
export SU2_RUN=/home/username/SU2/bin
export SU2_HOME=/home/walen/download/SU2
export PATH=$PATH:$SU2_RUN
export PYTHONPATH=$PYTHONPATH:$SU2_RUN
Use './ninja -C build install' to compile and install SU2
Build targets in project: 20
SU2 8.0.0 "Harrier"
User defined options
prefix : /home/username/SU2
custom-mpi : false
enable-autodiff: true
Found ninja-1.10.0.git at /home/walen/download/SU2/ninja
第四步:上面命令结束之后,执行下面命令,使用ninja编译并安装代码
~/SU2$ sudo ./ninja -C build install
安装完成。
运行下面命令:
~/SU2$ SU2_CFD -h
会显示以下内容:
SU2 v8.0.0 "Harrier", The Open-Source CFD Code
Usage: SU2_CFD [OPTIONS] [configfile]
Positionals:
configfile TEXT:FILE A config file.
Options:
-h,--help Print this help message and exit
-d,--dryrun Enable dry run mode.
Only execute preprocessing steps using a dummy geometry.
-t,--threads INT Number of OpenMP threads per MPI rank.
--thread_multiple Request MPI_THREAD_MULTIPLE thread support.
参考:官方安装文档链接