Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home/www/rheoworks/includes/menu.inc).

在 CentOS 7 上安装 OpenFOAM Ext-3.1

#准备:

1. 为安装 foam-extend 3.1, 请确保你的系统 CentOS 7 已经安装 git, mercurial 和 subversion (用于源程序获取), rpm-build (用于程序打包), gcc 和 g++ (用于程序编译). 请使用以下命令行,如果已经安装在系统中,除了命令,你不需要再输入任何字母。sudo 是使用超级用户权限运行命令。

sudo yum install -y rpm-build gcc gcc-c++ libstdc++-devel binutils-devel

2. 请使用以下命令行安装以下软件包以便安装OpenFOAM第三方软件包: qt, qt-devel, qtwebkit and qtwebkit-devel for Paraview compiling and running, gcc-c++ and libc++-devel for openmpi, m4 for bison.

sudo yum install -y m4 cmake qt qt-devel qtwebkit qtwebkit-devel flex

#安装

1. 将 foam-extend 3.1 下载至文件夹 foam. 你需要使用命令 mkdir ~/foam 来创建文件夹。你也可以使用图形界面。


cd $HOME/foam
git clone https://github.com/Unofficial-Extend-Project-Mirror/openfoam-extend-foam-extend-3.1.git

foam-extend 3.1 的文件夹默认为 openfoam-extend-foam-extend-3.1, 你可以将其名称改成 foam-extend-3.1


mv openfoam-extend-foam-extend-3.1 foam-extend-3.1

2. 当你下载完源代码后,你应当在你用户目录下的环境文件 .bash_profile 里面创建相应的环境变量. 使用 vi 打开文件,再键入 i 就可以输入相应的文字了。

vi ~/.bash_profile

在 PATH 的前面一行,创建以下环境变量:

export QT_BIN_DIR=/usr/lib64/qt4/bin

按 Esc 键可结束编辑状态,再输入:wq 就可以保存文件了。

将以下一行添加至 ~/.bashrc:

alias fe31='source $HOME/foam/foam-extend-3.1/etc/bashrc'

此处 $HOME/foam/foam-extend-3.1/ 是你的 foam-extend-3.1目录.

用以下两个命令运行,使系统环境变量生效:

. ~/.bash_profile # QT_BIN_DIR 生成,及其他系统变量更新
. ~/.bashrc # 生成 fe31,使 fe31 可作为命令使用,生成 openfoam 相应的环境变量

接着运行

fe31

以使 FOAM 相关的环境变量生效.

3. 在你编译 foam 的 Third-party 软件包之前,请运行:

cd $FOAM_SRC
wmakeLnIncludeAll

否则,当你安装 swak4Foam 时,会出现错误: helpers/printSwakVersion.H:46:21: fatal error: Pstream.H: No such file or directory #include "Pstream.H"

4. 当你安装 third-party 软件包时,PyFoam 有可能不能被正确编译,请修改 AllMake.stage3, 找到这一行:

( rpm_make -p PyFoam-0.6.3 -s PyFoam-0.6.3.spec -u http://downloads.sourceforge.net/project/openfoam-extend/foam-extend-3.1/ThirdParty/PyFoam-0.6.3.tar.gz )

将其改为:

( rpm_make -p PyFoam-0.6.3 -s PyFoam-0.6.3.spec -u http://openfoamwiki.net/images/c/cb/PyFoam-0.6.3.tar.gz -n PyFoam-0.6.3-1.noarch -a noarch)

此时,你需要更新 PyFoam 的 SPEC 文件, 请在 PyFoam-0.6.3.spec 文件中找到以下两行:

URL: http://openfoamwiki.net/images/e/e3/PyFoam-0.6.3-rc.tar.gz
Source: %url/%{name}-%{version}-rc.tar.gz

更新为以下:

URL: http://openfoamwiki.net/images/c/cb/PyFoam-0.6.3.tar.gz
Source: %url/%{name}-%{version}.tar.gz

并将以下两行
%prep
%setup -q -n PyFoam-%{version}-rc

替换为

%prep
%setup -q -n PyFoam-%{version}

当你确认以上操作完成后,可以运行:

./AllMake

5. 在完成编译 ThirdParty 的工作后, 你可以编译 foam 求解器和应用程序了:

cd ../
./Allwmake > make.log 2>&1
./Allwmake > make.log 2>&1 makes a full log into make.log, including errors outputted during the compiling process (i.e. “2>&1″ does the redirect of stderr to stdout).

如果你的计算机够快,你可以先去喝杯咖啡,否则的话,你就得等上几个小时了。 It depends on your computers. 然后 foam 就编译好了.

注:

1. 如果你未曾安装 gcc-c++ 和 libstdc++-devel, 编译时会提示你:

c++ preprocessor "/lib/cpp" fails sanity check

2. 如果你没有 qtwebkit 和 qtwebkit-devel 的话, 在编译 paraview 的时候会有类似如下错误提示:

[ 81%] Building CXX object Qt/Widgets/CMakeFiles/pqWidgets.dir/pqHelpWindow.cxx.o /pqHelpWindow.cxx:56:21: fata error: QWebPage: No such file or directory # include

然后编译就停止了. qtwebkit 和 qtwebkit-devel 的源在 EPEL. 你可以从那里获取源:

sudo yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

然后安装 qtwebkit 和 qtwebkit-devel.

3. 在你编译 foam 之前,如果没有安装 binutils-devel, 则会出现以下错误:

-lspecie -lfoam -liberty -ldl -lrt -lm -o /home/abc/foam/foam-extend-3.1/applications/bin/linux64GccDPOpt/mixtureAdiabaticFlameT /usr/bin/ld: cannot find -liberty collect2: error: ld returned 1 exit status