OpenFOAM最近发布了最新的两个版本OpenFOAM-8和OpenFOAMv2006, 这篇博客简单介绍一下这两个版本的区别,然后讲一下如何在Ubuntu和Windows系统下安装这两个版本的OpenFOAM。

OpenFOAM的两个版本

OpenFOAM有不少分支,其中最常用的有两个版本: OpenFOAM基金会版ESI集团版

  • OpenFOAM基金会版用数字作版本号,名字像OpenFOAM-6,7,8,一年发布一次,网站是https://www.openfoam.org
  • ESI集团版最近几年开始用字母v加年份和月份作版本号,比如OpenFAMv1912, v2006,半年发布一次,一般是在当年的6月和12月。网站是https://www.openfoam.com

这个是OpenFOAM的分支图,OpenFOAM基金会版和ESI集团版在2016年开始分家了,有兴趣的朋友可以看一下OpenFOAM的发展史

相比它们的发展史,其实我们更关心的是这两个版本功能上差别大不大。总地来说,两者主体内容差别不大,代码风格和计算效率相近。但是最近的几个版本差别开始变大了,有时候同一套代码在一个上编译没问题但在同期的另一个版本却编译不通。ESI版本更新得更激进一些,会有一些OpenFOAM基金会版没有的求解器和算例。

在Ubuntu上安装OpenFOAM

OpenFOAM最初是开发在Linux操作系统上的,在Linux上安装OpenFOAM也更方便一些。以Ubuntu为例,讲一下OpenFOAM的两种安装方式。

apt安装

最快最方便,但需要联网,需要sudo权限

开机进入Ubuntu,快捷键Ctrl+Alt+T(或者依次点击 应用, 附件, 终端)启动终端,复制下面四行,按照提示输入密码然后确认安装。

1
2
3
4
sudo sh -c "wget -O - https://dl.openfoam.org/gpg.key | apt-key add -"
sudo add-apt-repository http://dl.openfoam.org/ubuntu
sudo apt update
sudo apt install openfoam8

上面四行做的事情分别是添加软件包密钥,添加软件仓库地址,更新软件仓库,下载并安装openfoam-8。OpenFOAM会被安装在/opt目录下,默认paraview也会一并安装。

参考https://openfoam.org/download/8-ubuntu/

编译安装

大约需要30分钟到6个小时,可以不联网也不用sudo权限

同样,先开机进入Ubuntu,快捷键Ctrl+Alt+T(或者依次点击 应用, 附件, 终端)启动终端,依次复制粘贴下面的命令。

  • 创建OpenFOAM安装目录,建议装在$HOME/OpenFOAM

    1
    2
    mkdir $HOME/OpenFOAM
    cd $HOME/OpenFOAM
  • 下载OpenFOAMThirdParty源码放在$HOME/OpenFOAM目录下。有网的话直接在终端输入下面两行下载。

    1
    2
    wget -P $HOME/OpenFOAM https://sourceforge.net/projects/openfoam/files/v2006/OpenFOAM-v2006.tgz
    wget -P $HOME/OpenFOAM https://sourceforge.net/projects/openfoam/files/v2006/OpenFOAM-v2006.tgz
  • 解压到安装目录

    1
    2
    tar -xzf OpenFOAM-v2006.tgz -C $HOME/OpenFOAM 
    tar -xzf ThirdParty-v2006.tgz -C $HOME/OpenFOAM
  • 索引OpenFOAM安装环境

    1
    source ~/OpenFOAM/OpenFOAM-v2006/etc/bashrc
  • 进入$WM_PROJECT_DIR目录并检查安装环境是否满足要求,ubuntu新系统是满足的,如果不满足则需要补充安装相应的库。

    1
    2
    foam
    foamSystemCheck
  • 接下来正式编译OpenFOAM,这个过程比较耗时,大约需要30分钟到6个小时

    1
    ./Allwmake -s -l -k -j

    这里解释一下./Allwmake后面的几个选项的含义,-l是自动记录log文件, -s是在编译过程中废话少说减少log文件大小,-k是跳过编译错误即使编译出错也继续编译完不要停,-j是并行编译可以减少编译时间,后面可以接数字指定编译核数,默认是用所有的核。

  • 编译完以后我们再执行一遍./Allwmake,这一次去掉-k选项,查看编译过程是否出错(这一步操作非必须,可跳过)。

    1
    ./Allwmake -s -l -j

    一切正常的话会有输出提示,告诉你编译已经完成,接下来测试OpenFOAM。

  • 复制cavity算例到$FOAM_RUN目录,测试blockMesh网格工具和icoFoam求解器

    1
    2
    3
    4
    5
    run
    cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity $FOAM_RUN
    cd cavity
    blockMesh
    icoFoam

参考https://www.openfoam.com/download/install-source.php

在Windows安装OpenFOAM

WSL安装

仅适用于Windows 10系统
windows 10 提供了适用于Linux子系统WSL (Windows Subsystem for Linux),你可以在这上面安装Ubuntu子系统,然后参考上一节在Ubuntu上安装OpenFOAM的方法apt或者编译安装OpenFOAM。

  • 开启WSL
    参考这个帖子https://zhuanlan.zhihu.com/p/34133795

  • 在微软商店里中搜索Ubuntu,安装最新版(目前是Ubuntu 20.04 LTS)。

  • 装好后快捷Win+R打开系统自带的运行命令,输入bash回车就进入Ubuntu的终端了,接下来参考apt安装

虚拟机安装

如果你是windows 7或者windows XP系统,也可以选择安装VMware虚拟机,具体参考李东岳的教程。他提供了VMware虚拟机文件,里面有Ubuntu系统和编译好的OpenFOAM,比较方便。