2021年 waves2Foam 最新编译方法

waves2Foam 是 OpenFOAM 的第三方波浪工具箱,其中的 waveFoam 求解器广为人知。本专栏曾介绍在 Ubuntu 14.04 上编译 waves2Foam 的方法(常恭:安装 OpenFOAM + waves2foam),现在 Ubuntu 14.04 已经停止服务,waves2Foam 和 OpenFOAM 都也都发布了许多新版本,添加了很多新特性。有些朋友尝试在新版的 Ubuntu 和 OpenFOAM 上编译 waves2Foam 但遇到了些麻烦,向小编兴师问罪。小编利用下班时间,编译了目前最新版本的 wave2Foam r2141,操作系统也选了目前支持良好且较为稳定的 Ubuntu 18.04,OpenFOAM 选了 v1812,这一版本经历多次小修,小编使用的是 OpenFOAM-v1812.200417(Development Tags OpenFOAM-v1812.200417)。如果您不了解版本兼容性,请务必使用小编已经测试过的版本,不同版本的 Ubuntu、OpenFOAM 和 wave2Foam 很可能不兼容。

Windows 10 的 WSL 也更新到了 Ubuntu 18.04,本文介绍的方法理论上可以在 WSL 上编译,使用 Windows 的朋友可以试试。

首先要编译好 OpenFOAM v1812,用默认参数就行,没啥注意事项,这一步有很多现成的教程,不再赘述。

然后安装 waves2Foam 的依赖包

sudo apt install libgsl-dev gfortran subversion git

如果安装速度很慢建议“换源”,搜索“换源+你使用的 Ubuntu 版本”在网上找教程。

再后下载 waves2Foam 的源代码,开发者推荐使用 svn 下载,使用如下命令新建文件夹

mkdir -p $FOAM_RUN/../applications/utilities
cd $FOAM_RUN/../applications/utilitiesCode language: PHP (php)

使用 svn 下载

svn co -r 2141 http://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.6/other/waves2FoamCode language: JavaScript (javascript)

注意这里 svn 命令的参数 -r,这个参数的含义是指定具体的版本号,不指定这个参数默认是最新版。建议使用小编测试过的版本。

如果您在使用 svn 下载源代码时遇到问题,请使用 git 下载,github 的服务器相对稳定。

git clone https://github.com/ogoe/waves2Foam.gitCode language: PHP (php)

下载好进入 waves2Foam 文件夹,运行一键编译脚本

cd waves2Foam
./Allwmake

这里需要注意的是,运行 Allwmake 后会从 GitHub 下载 OceanWave3D-Fortran90 的源代码,必须保持网络畅通。编译过程中看下输出,是否有报错,尤其是不能有 fatal error。

编译完成后测试下,最简单的测试方法是

waveFoam -help

如果安装无误,会提示

Usage: waveFoam [OPTIONS]
Options:
  -case <dir>       Specify case directory to use (instead of the cwd)
  -decomposeParDict <file>
                    Use specified file for decomposePar dictionary
  -dry-run          Check case set-up only using a single time step
  -dry-run-write    Check case set-up and write only using a single time step
  -noFunctionObjects
                    Do not execute function objects
  -parallel         Run in parallel
  -doc              Display documentation in browser
  -doc-source       Display source code in browser
  -help             Display short help and exit
  -help-full        Display full help and exit

Solver for two incompressible, isothermal immiscible fluids using VOF
phase-fraction based interface capturing.
With optional mesh motion and mesh topology changes including adaptive
re-meshing.

Using: OpenFOAM-v1812 (1812) (see www.OpenFOAM.com)
Build: _3fe4e281-20200312 (patch=200312)
Arch:  LSB;label=32;scalar=64Code language: Bash (bash)

waves2Foam 维护得比较好,在持续更新、开发,编译过程相对容易,编译不出来的朋友往往是网络不好,源码下载不完整。如果您排除了网络问题,精读了本文仍然遇到问题,欢迎留言、私信。

常恭

作者: 常恭

略懂 OpenFOAM

《2021年 waves2Foam 最新编译方法》有4个想法

  1. 常博士你好!
    我按照你的这份指南,用同样版本的ubuntu和OpenFOAM安装2141版的wave2Foam,安装过程一切顺利,但安装结束后输入waveFoam -help显示command not found。我试过在新建的$FOAM_RUN/applications/utilities里安装,也试过在OpenFOAM-v1812自带的/applications/utilities/里安装,还试过不同版本的wave2foam,皆是同样的问题。请问你是否知道这个安装失败可能的原因呢?感谢!

      1. 用svn下载完成后,进行./Allwmake的时候,出现了如下fatal errors:
        1. waveGaugesNProbes.C:63:10: fatal error: waveGauges.H: No such file or directory
        2. setWaveParameters.C:64:10: fatal error: setWaveProperties.H: No such file or directory
        请问这应该如何解决?

发表评论