Andrew Moa Blog Site

Ubuntu编译安装SU2

SU2 是一款由斯坦福大学航空航天学院开发的开源CFD求解器,基于C++和Python开发,定位类似于OpenFOAM,但不支持多面体网格。相比OpenFOAM,SU2在高速可压缩流方面的求解更有优势。

下载SU2源代码:

mkdir $HOME/su2code && cd $HOME/su2code
# 只clone最近commit版本,加快下载速度
git clone https://github.com/su2code/SU2.git --depth=1

定义环境变量,新建配置文件su2.env

touch $HOME/su2code/su2.env
chmod +x $HOME/su2code/su2.env
vim $HOME/su2code/su2.env

su2.env文件中加入以下内容,保存退出:

#!/bin/sh

# 定义SU2环境变量
export SU2_RUN=$HOME/su2code/bin	# 编译完成后su2的安装路径
export SU2_HOME=$HOME/su2code/SU2	# 下载su2的源码的文件夹路径
export PATH=$PATH:$SU2_RUN
export PYTHONPATH=$SU2_RUN:$PYTHONPATH

编译程序的配置文件meson_options.txt位于SU2源代码文件夹下,根据自己的需求调整其中的编译选项:

vim $HOME/su2code/SU2/meson_options.txt

这里打开mpi和blas支持,修改以下两行的value:

option('with-mpi',   type : 'feature', value : 'enabled', description: 'enable MPI support')
option('enable-openblas', type : 'boolean', value : true, description: 'enable BLAS and LAPACK support via OpenBLAS')

如果是Intel的机器,建议打开mkl支持。

默认支持的blas库是openblas,要先下载openblas库:

sudo apt install libopenblas-dev -y

进入下载的源码目录,运行编译程序

# 载入环境变量
source $HOME/su2code/su2.env
# 进入源码文件夹
cd $SU2_HOME
# 配置编译器,生成ninja构建文件
# 配置过程中会自动从git上下载外部依赖
# 非常花时间……
./meson.py build --prefix=$SU2_RUN/..
# 开始编译并安装
./ninja -C build install

验证是否安装成功:

SU2_CFD --help

安装成功会输出软件版本号和帮助信息。

阅读时长1分钟
Andrew Moa

Slurm提交Fluent和CFX的计算脚本

1. Fluent

首先要编写Fluent的jou脚本:

/file/read-case "small_fan.cas.h5" 
/solve/initialize/hyb-initialization 
/solve/iterate 100 
/file/write-case "small_fan_results.cas.h5" ok 
/file/write-data "small_fan_results.dat.h5" ok 
/exit ok 

这个jou文件很简单,就是告诉Fluent读取哪个文件、怎么初始化、迭代多少步、如何保存直至最后退出。如果计算比较复杂的,比如涉及到UDF加载或特殊条件初始化设置的,还需要增加相应的命令行。不熟悉怎么编写TUI命令的话,可以通过Fluent图形界面下面的命令行窗口录制脚本。

编写Slurm脚本:

#!/bin/bash 

#SBATCH --job-name=fluent_test	# 任务名称
#SBATCH --partition=debug 
#SBATCH --output=%j.out 
#SBATCH --error=%j.err 
#SBATCH -N 1	# 计算节点数
#SBATCH --ntasks-per-node=32	# 每节点计算进程数

cd $SLURM_SUBMIT_DIR

source ${HOME}/opt/ansys2025r1.env	# 载入许可证设置环境变量,这里应该使用绝对路径
export FLUENT=/ansys_inc/v251/fluent/bin/fluent	# fluent可执行文件路径
export MPI_TYPE=intel # intel or openmpi 
export JOU_FILE=`find . -name "*.jou"`
export MACHINEFILE=$SLURM_JOBID.node 
scontrol show hostnames $SLURM_JOB_NODELIST > $MACHINEFILE 

#注意fluent根据2维3维单双精度的不同有4钟计算模式:2d、3d、2ddp、3ddp,根据自己的需求选择对应的计算模式
$FLUENT 3ddp -g -t$SLURM_NPROCS -cnf=$MACHINEFILE -mpi=$MPI_TYPE -ssh -i $JOU_FILE

保存以上脚本,将待提交的cas文件和jou文件放到脚本所在文件夹,通过sbatch命令提交脚本即可。计算完成后将输出的结果文件下载到本地机器上处理。

2. CFX

相比fluent,cfx计算脚本简单很多:

阅读时长1分钟
Andrew Moa

Ubuntu安装SIMULIA2024

为什么选择SIMULIA?首先是Abaqus功能强大,绝大多数结构问题都能求解。其次流固耦合方便,STAR-CCM+自带案例就手把手你怎么和Abaqus双向耦合。再次是过往经历的惯性,毕竟主机厂Abaqus用得可不少,不缺案例和资源。

1. 准备工作

首先安装开发环境和一些必要的软件:

sudo apt update # 更新软件源
sudo apt upgrade # 更新本地安装的软件
sudo apt install build-essential # 安装开发环境
sudo apt install csh tcsh ksh gcc g++ gfortran libstdc++5 build-essential make libjpeg62 libmotif-dev

解压安装包:

mkdir iso # 新建一个iso文件夹,用于存放解压出来的文件
tar xvzf DS.SIMULIA.SUITE.2024.LINX64.tar.gz -C ./iso # 解压到iso文件夹中

2. 安装过程

2.1 启动安装程序

首先定义环境变量,不然无法启动安装程序:

# 可以把下面的内容加到${HOME}/.bashrc里,然后重新启动终端
export DSYAuthOS_`lsb_release -si`=1
export DSY_Force_OS=linux_a64
export NOLICENSECHECK=true

进入/iso/1文件夹,运行安装程序。启动图形化界面在终端运行./StartGUI.sh,类似Windows下的安装方式,跟着向导一步步安装即可。

这里选择文本界面:

./StartTUI.sh # 启动文本界面安装向导

7222cbf4b6f8545b9766ce654edf28ba.png

Enter下一步。

阅读时长2分钟
Andrew Moa