返回主页

OpenFOAM安装指南


出于不可透漏的原因,国外github官网上的OpenFOAM旧版本已经删除,需要旧版本的OpenFOAM可在下面的链接下载。下述下载版为精简版,删除了部分第三方代码以及和算法不相关的代码。因此只能查看不能编译(精简后每个压缩包约2m左右)。

OpenFOAM-1.1 | OpenFOAM-1.2 | OpenFOAM-1.3 | OpenFOAM-1.4 | OpenFOAM-1.5 | OpenFOAM-1.6 | OpenFOAM-1.7.0

OpenFOAM安装

OpenFOAM基于Linux系统下运行,由于对Linux系统的不熟悉,很多人对OpenFOAM的安装很头疼。本文手把手一步一步的演示OpenFOAM的安装过程。演示采用的系统为Ubuntu系统。其他的Linux发行版比如openSUSE(Henry和Alberto力荐),Arch Linux也可以采用类似的方法安装。基于国人多年使用Windows的操作习惯,Ubuntu可能是一个比较好的选择,目前的Ubuntu麒麟版为中文汉化发行版,并支持搜狗输入法等其他一些定制软件

Ubuntu下的OpenFOAM有下列俩种安装方式,第一种为deb方式,第二种为源代码(Source Pack)编译方式。区别如下:

deb Source Pack
特点 安装速度快。i7处理器笔记本采用此方式安装几秒钟即可。但是此方法国内用户甚至国外用户经常由于网络问题无法安装。


同样也支持源代码开发,不过deb安装默认把OpenFOAM安装在了只有权限才能修改的/opt目录下。因此如果用户打算修改源代码并进行操作,需要具有权限。并把/opt目录下的OpenFOAM源代码默认的“只读”属性修改为“可修改”
安装较慢。i7-3610QM单核编译大约需要3小时,4核编译大约需要1小时。i7-5820k 12线程编译大约需要30分钟

安装位置随意,并且直接可修改源代码,不需要权限,不需要修改文件默认属性。

注意,建议用户选择一种方式来安装。俩种安装方式并不冲突,但是实际上你在俩个位置上安装了相同的OpenFOAM。

第一种安装方式:deb安装

(1).安装ubuntu系统。个人用户可安装在Windows下的虚拟机中,工作站和服务器可直接安装Ubuntu系统。在cfd-online有国外用户讨论认为:虚拟机在不发生内存交换的时候和真实系统计算速度相当(本文采用的为VMware);32位操作系统比64位系统要快(尚未考证);

(2).进入Ubuntu桌面。通过Ctrl+Alt+T启动终端,会出现如下窗口:


其中黑色的我们在下文称之为终端,在终端输入(直接分两次复制进去):

sudo add-apt-repository http://dl.openfoam.org/ubuntu
sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -" 

会提示要求输入密码,我们键入密码。注意,密码并未显示。再次输入(直接分两次复制进去):

sudo apt-get update
sudo apt-get -y install openfoam5 

(3).配置环境变量。在终端输入:

gedit $HOME/.bashrc

会打开一个文件,我们在文件的最底部重新取一行添加下述文字:

source /opt/openfoam5/etc/bashrc

保存并关闭。关闭终端并打开新的终端的时候,环境变量自动生效。

(4).输入:

blockMesh 

如果显示如下信息:


表示安装成功。需要注意的是,采用这种方式安装并没有安装需要编译的库,因此用户目前尚不能对求解器进行编译,只能使用。如果需要对/opt/文件下的OpenFOAM文件进行编译,需要继续进行“源代码编译安装”中的第2步骤。

第二种安装方式:源代码编译安装

下面介绍Source Pack编译安装方式。需要提及的是,编译OpenFOAM需要依赖很多Ubuntu下的库,这些库需要联网安装。

(1).同样的,首先安装ubuntu系统。

(2).进入Ubuntu桌面。通过Ctrl+Alt+T启动终端,在终端输入(注意空格和大小写):

sudo su 

会提示要求输入密码,我们键入密码。注意,密码并未显示。回车。然后将下列代码复制到终端:

1
apt-get install build-essential flex bison cmake zlib1g-dev libopenmpi-dev openmpi-bin qt4-dev-tools libqt4-dev libqt4-opengl-dev freeglut3-dev libqtwebkit-dev gnuplot libreadline-dev libncurses-dev libxt-dev libscotch-dev libcgal-dev

会提示yes之类以确认安装,回车确认。这样所有预安装包安装完毕。注意:如果提示下列错误:

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

表明没有切换到root用户,请重新执行上文的第二步。

(3). 首先退出root(键入):

exit

然后下载OpenFOAM-5.x.tar以及ThirdParty-5.x.tar。然后从窗口进入到ubuntu系统的Home文件夹下建立文件夹为OpenFOAM,如图所示(在这里,我们尽可能全部采用窗口可视化操作而非命令行的方式,以方便初学者简单易懂的安装OpenFOAM):


进入这个OpenFOAM文件夹,将下载的OpenFOAM-5.x.tar复制进去右键解压缩会出现一个OpenFOAM-5.x-master的文件夹。去掉master后缀改名为OpenFOAM-5.x。同样把ThirdParty-5.x.tar解压缩至此处,并生成ThirdParty-5.x文件夹。

(4).配置环境变量。在终端输入:

gedit $HOME/.bashrc

会打开一个文件,我们在文件的最底部重新取一行添加下述文字:

source $HOME/OpenFOAM/OpenFOAM-5.x/etc/bashrc

保存并关闭。关闭终端并打开新的终端的时候,环境变量自动生效。

(5).编译OpenFOAM。打开终端,输入(即切换到OpenFOAM-5.x目录下):

cd OpenFOAM/OpenFOAM-5.x/

然后输入:

./Allwmake 

这时候会输出大量的信息,编译开始。依据CPU特性,大约需要几个小时(并行编译请见文章最底部)。编译之后请尝试运行:

blockMesh 

如果显示如下信息:


表示安装成功。

小问题
1. 并行编译:请在OpenFOAM目录下的etc下打开这个bashrc文件,在其中最底部添加 export WM_NCOMPPROCS=4 ,其表示采用4线程并行编译。用户可以随意更改其中的数字。
2. 由于flex版本问题,OpenFOAM-2.3.x之前的版本可能会报错:对‘yyFlexLexer::yywrap()’未定义的引用。在这种情况下,可参考本帖
3. 在运行OpenFOAM的时候,需要退出root,如果你的终端命令行@符号前面显示为root,需要键入exit退出来运行。

多版本OpenFOAM并存

不同大厂的OpenFOAM版本各有特性,因此用户可能具有多版本OpenFOAM共存的需求。多版本OpenFOAM共存非常简单。举例说明:如果用户打算在Ubuntu系统上安装OpenFOAM-3.x以及OpenFOAM-4.x,可在终端输入:

gedit $HOME/.bashrc

会打开一个文件。我们在文件的最底部重新取一行添加下述文字:

alias of3x="source $HOME/OpenFOAM/OpenFOAM-3.x/etc/bashrc"
alias of4x="source $HOME/OpenFOAM/OpenFOAM-4.x/etc/bashrc"

保存并关闭(注意其中的$HOME/OpenFOAM/OpenFOAM-3.x/etc/bashrc表示安装的OpenFOAM路径,需要确保正确)。重新打开新的终端的时候,环境变量自动生效。这时如果用户键入:

of3x 

则调用OpenFOAM-3.x环境,用户可以调用OpenFOAM-3.x。类似的,键入:

of4x 

则调用OpenFOAM-4.x环境,用户可以调用OpenFOAM-4.x。需要注意的是用户需要确保OpenFOAM-3.x以及4.x已经存在相应的文件夹中。

在Windows下登录Linux客户端远程操作

首先需要下载PuTTY(用于支持命令行操作远程的Linux系统),以及Xming(不需要图形操作的可以不下载Xming)。PuTTY下载的时候选择putty.exe(直接可以运行不需要安装)。Xming下载下来之后全部采取默认安装即可。

(1).直接运行Xming,不需要配置;
(2).打开PuTTY,显示如下:


在其中的host处填入Linux主机IP地址,例如:130.192.23.23;显示如下:


(3).输入用户名和密码即可进入如下:


直接操作即可,和Linux无异。

如果需要图形界面,需要对PuTTY进行设置,在(1)执行之后进行:

(1.5).打开PuTTY,进入到Connection——SSH——X11配置窗口,如下:


在其中选中Enable X11....,然后在X display location中填写:localhost:0

返回上文第二步继续操作即可。进入到命令行模式之后输入gedit,如果显示下图表明成功:


在windows10中安装OpenFOAM

windows10中的bash环境可以直接安装ubuntu系统,经初步测试和真实的ubuntu系统无异样,可以当作一个没有窗口的真实的ubuntu,这样,OpenFOAM就可以直接安装在windows10系统了。如何开启bansh环境主要参考JayYin的文章(请注意:win10系统需要安装windows10周年更新才可以打开相关功能),在配置好windows10的bash环境之后,打开bash,会自动显示下面的界面:


然后单击y开始下载。下载后我们的bash里面就有了一个ubuntu系统。下一步,OpenFOAM在此bash环境可以采用上文中编译的方法进行安装(测试可行),也可以deb的方式安装(测试可行)。如果采用deb的方式,打开bash输入:
sudo add-apt-repository http://dl.openfoam.org/ubuntu
sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"
sudo apt-get update
sudo apt-get -y install openfoam4
安装完成后参考上文配置环境变量即可。

更新记录
2017/12/19:修订root下运行
2017/12/16:修订OpenFOAM5安装
2017/09/28:提供OpenFOAM旧版本下载
2017/07/28:多个OpenFOAM版本并存
2017/05/21:OpenFOAM-4.x deb安装方法
2016/11/28:OpenFOAM在win10下直接安装方法
2016/06/04:错误提示:can not find "ptscotch.h"
2016/03/16:在windows下显示linux图形界面

东岳流体dyfluid.com
勘误、讨论、补充内容请前往CFD中国