Ubuntu22.04安装OpenFOAM_v2212


0、环境准备

该并行应用程序需要使用 openmpi,因此需要事先安装openmpi。MPI 的安装方式可以查看之前的博客

需要实现在系统上安装以下依赖项:

sudo apt-get install build-essential autoconf autotools-dev cmake gawk gnuplot
sudo apt-get install flex libfl-dev libreadline-dev zlib1g-dev openmpi-bin libopenmpi-dev mpi-default-bin mpi-default-dev
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev

要检查可用的系统版本,请使用 apt-cache show 命令。例如:

apt-cache show libopenmpi-dev

如果要使用系统组件,还需要安装以下组件:

apt-get install libfftw3-dev libscotch-dev libptscotch-dev libboost-system-dev libboost-thread-dev libcgal-dev

其他的软件要求如下:

一、安装步骤

OpenFOAM有两种版本:一个是商业版本,版本编号为从1开始的数字(如:OpenFOAM v11);一个公益开源版本,版本编号为年份加月份(如:OpenFOAM v2212)。

1、下载源码

网站上下载OpenFOAM v2212ThirdParty v2212源代码,并将其上传到服务器。我存放的路径为:/home/czhang/openfoam。进入该存放路径,解压缩两个源代码压缩包。

tar -zxvf OpenFOAM-v2212.tgz
tar -zxvf ThirdParty-v2212.tgz

2、设置环境变量

在构建之前,要先满足系统要求,并获取正确的 OpenFOAM 环境。例如,对于 OpenFOAM-v2212 版本:

source <installation path>/OpenFOAM-v2212/etc/bashrc

在我这里,我安装在 ~/openfoam 目录下,所以我这里是:

source ~/openfoam/OpenFOAM-v2212/etc/bashrc

建议:将这句命令添加到用户根目录下的 .bashrc/.zshrc文件中

3、编译OpenFOAM

进入OpenFOAM所在的目录进行操作:

cd /home/czhang/openfoam/OpenFOAM-v2212

测试系统就绪情况:

foamSystemCheck

新建一个shell命令窗口,切换到 OpenFOAM 主目录 ($WM_PROJECT_DIR)。如果此操作失败,则环境配置不正确。

foam

编译openfoam:

./Allwmake -j -s -q -l

该命令使用所有内核 (-j),缩减输出 (-s, -silent)、队列 (-q, -queue) ,将编译信息一起输出到日志文件 (-l, -log) log.linux64GccDPInt32Opt 供以后检查。

4、编译后检验

打开一个新的 shell 窗口并获取 OpenFOAM 环境。

通过运行以下命令来验证生成:

foamInstallationTest

如果报错显示 icoFoam没有找到,则使用Allwmake去掉参数 -q重新编译。

之后测试任何给定的教程案例,例如:

foamTestTutorial -full incompressible/simpleFoam/pitzDaily

手动测试教程案例:

# Create the user "run" directory:
mkdir -p "$FOAM_RUN"

# Change to the user "run" directory:
run

# Copy tutorial
cp -r "$FOAM_TUTORIALS"/incompressible/simpleFoam/pitzDaily ./

# Run the tutorial
cd pitzDaily && blockMesh && simpleFoam

二、安装第三方部分

1、环境准备

将第三方部分所需的依赖项引入系统的一种快速方法是使用 paraview 开发包:

sudo apt install paraview-dev

这是一个软件包,可以寻求系统管理员安装。

同时也要安装以下依赖:

sudo apt install cmake qtbase5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev libqt5x11extras5-dev libxt-dev

可以用之前的 apt-cache show命令查看系统是否拥有。

2、构建第三方部分

切换目录到第三方部分的目录:

cd /home/czhang/openfoam/ThirdParty-v2212

运行命令:

./Allwmake -j -s -q -l

期间可能会报错显示部分库找不到,如:gmp等,可以安装相应的依赖库:

sudo apt-get install libmpfr-dev, libgmp-dev, libboost-all-dev

三、测试安装结果

foamVersion
# icoFoam
blockMesh
simpleFoam

若输出结果均无报错则安装成功,在运行求解器(如icoFoam,simpleFoam等)之前需要先用blockMesh划分网格。

四、案例测试

运行命令 run跳转到测试运行目录,运行命令:

cp -r "$FOAM_TUTORIALS"/incompressible/icoFoam/cavity ./
cd cavity

将tutorials中的cavity测试案例复制到run目录下,并进入cavity文件夹中。

在system文件夹中有一些运行控制文件,可通过修改这些文件中的值来调整运行参数

运行命令:

blockMesh
icoFoam

在运行求解器之前需要运行blockMesh划分网格。

如果要使用mpi进行并行运行,则需要先使用OpenFOAM的并行工具来分割计算域

decomposePar

该命令会自动创建像processor0这样的目录,分解了多少个计算域,就会产生多少个目录,之后要使用多少个线程运行。目录如图所示:

划分网格、分解计算域后,使用mpi并行运行分解器,要是用哪个分解器可在 controlDict中查看。

mpirun -np 9 icoFoam -parallel > icoFoamRun.log

Reference:

OpenFOAM系列教程

OpenFOAM_v2212构建指南

第三方构建指南

OpenFOAM安装教程1

OpenFOAM安装教程2

OpenFOAM安装教程3

icofoam未安装问题解决


文章作者: Antonio
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Antonio !
  目录