OpenFOAM安装
本文简要介绍:OpenFOAM的编译安装方法。由于初学者用的几乎都是Windows操作系统,故而本文将介绍其在虚拟机操作系统上的编译安装,同时,根据笔者成功安装经验,会简要介绍集群上面的安装方法(此部分是在断网情况下进行的安装)。所有安装方式,都经过笔者亲测,即使如此,也不能保证读者在安装过程中不会出现错误,如果出现错误,一般根据错误提示,即可追踪到错误来源,进行解决。错误来源大部分来自环境变量设置的不合理(比如路径参数等),或者缺少编译时需要使用的软件包(或程序),有时会有硬盘空间不足等,需具体问题具体分析。总的来说,按照本教程安装,应该会很顺利,即使出现错误,读者也可溯起源,解决之。
下面,先介绍虚拟机操作系统的安装及共享文件夹的设置。之后,首先介绍以针对Ubuntu的OpenFOAM6版本的安装(单核安装10分钟左右,安装完成),然后,以OpenFOAM5为例,介绍其安装方法(单核安装耗时数个小时不等)。最后,以foam-extend4.0为例,介绍在断网情况下,集群上的安装。由于笔者水平有限,文中难免错误,请读者慎之,也欢迎探讨交流。
1.虚拟机操作系统安装,共享文件夹设置。
本部分,以Oracle VMVirtualBox 虚拟机及Ubuntu16.04.03操作系统为例。首先安装虚拟机Oracle VMVirtualBox(网上可下载)于windows系统中。(安装简单,步骤略),并在虚拟机上安装Ubuntu(网上可下载此操作系统)(安装步骤略,网上教材很多,也很简单)
共享文件夹设置(便于文件在虚拟机Ubuntu操作系统与Windows操作系统之间传递),具体步骤为:
a.安装VBoxGuestAdditions:
进去Ubuntu系统中,点击菜单栏中的Devices(设备),点击insertguest addtions CD image. (如果安装不了,将下图类似光盘图标弹出,再安装)
b. 在Windows系统中新建一个文件夹,比如命名ShareWithUbuntu.
c. 在虚拟机上进行设置。右键点击系统图标(如下图),点选设置按钮,点选SharedFolders将上一步创建的文件夹添加进去,并选择“fixed allocation”。
d. 进入Ubuntu系统中,打开终端(terminal),并创建一个文件夹(用来和Windows上创建的文件夹ShareWithUbuntu相链接),比如在根目录下的mnt文件夹里创建一个文件夹,只需在终端中输入命令:sudo mkdir /mnt/shareWithWindows (命令解析:sudo 是指应用管理员权限,超级用户; mkdir: make directory 新建文件夹; 第一个/指根目录;);之后,将上述创建的两个文件夹链接在一起:终端输入命令:‘sudo mount –t vboxsf ShareWithUbuntu /mnt/shareWithWindows/’ (命令解析:mount 是挂载的意思。linux所有文件都位于同一目录之下,称为根目录,符号是/,比如/home:根目录下的home文件夹,其路径也可用符号~表示;用户可自由扩展(增加)新的外部存储介质(Linux系统上统一叫文件夹)于已有的路径之下:mount命令)
2 OpenFOAM的安装
整个OpenFOAM安装文件就是一堆代码,所以在使用其做具体工作之前,需要先进行编译,生成各种执行文件和许多library,在日后数值模拟过程中,执行文件(比如各种solver)就会根据不同输入(dictionary)选择特定的library(比如边界条件)进行计算。所以安装的过程就是编译源代码以生成上述文件的过程。编译需要编译器(比如gcc, cmake:编译Paraview),并行编译又需要信息交换(比如openmpi),所以编译之前,这些基本的第三方合适版本的软件预安装就是安装openfoam的准备工作。
下述Openfoam安装介绍,主要介绍三种不同安装方式:a. 安装针对Ubuntu版本的OpenFOAM (时间快,因为部分功能已经预编译), b. 编译第三方软件及Openfoam 源代码。c. 简要介绍断网情况下集群的安装。
a.以OpenFOAM 6 为例(需要联网),
请进官网openfoam.org,选择针对Ubuntu操作系统的安装源代码。官网上已经给出了详细安装步骤(题主亲测,安装很顺利)。简要总结如下:
01 打开终端,输入命令:见图片
02 更新apt(advanced package tool) 的package list,终端输入命令:
03 安装, 终端输入命令:
静候十分钟左右即可安装完毕。默认安装路径/opt/openfoam6。
安装完之后,终端输入命令:gedit ~/.bashrc在打开的文件最后面添加一行代码:source /opt/openfoam6/etc/bashrc 保存。之后重新启动终端。输入simpleFoam -help 会出现一系列信息,表明安装成功。(如果电脑上需要安装多个版本,可将添加的最后一行代码改为 alias startFoam6='source /opt/openfoam6/etc/bashrc')。以后启动终端时,只需输入命令: startFoam6 即可使用这个版本的OpenFOAM。
b 以Openfoam5为例进行安装:
下载Openfoam5及第三方软件包并解压(比如笔者将其下载在目录~文件夹里):
首先下载及解压源代码,终端当前路径为~:
终端输入命令:wget -O - http://dl.openfoam.org/source/5-0 | tar xvz
终端输入命令:wget -O - http://dl.openfoam.org/third-party/5-0 | tar xvz
下载之后,文件夹名字分别为:OpenFOAM-5.x-version-5.0,ThirdParty-5.x-version-5.0。
将其重命名为OpenFOAM-5.0和ThirdParty-5.0,终端输入命令:
mv OpenFOAM-5.x-version-5.0 OpenFOAM-5.0
mv ThirdParty-5.x-version-5.0 ThirdParty-5.0
之后,启用环境变量,终端输入(注意当前目录为home):source ./OpenFOAM-5.0/etc/bashrc
编译之前,需要先编译ThirdParty-5.0文件中的第三方程序(如果电脑上已经安装有相关程序可以忽略此步骤,比如一般电脑上已经安装有合适版本的编译器gcc,此时就不需要再安装了)。如果不确定,也可以把第三方软件里所有的程序安装遍。安装方法:(比如安装gcc编译器)终端输入命令 ~/ ThirdParty-5.0/makeGcc即可。
最后开始编译OpenFOAM,终端输入 ./OpenFOAM-5.0/Allwmake 进行编译(单核编译,耗时数个小时,较长)。也可以多核编译,此时需要设置核数(假设4个核),终端输入:export WM_NCOMPPROCS=4,然后再进行编译,泡杯茶,慢慢静等编译完成。
由于笔者,已经安装了Openfoam6, 所以需要在~/.bashrc中添加下列语句:
alias startFoam6='source ~/OpenFOAM-5.0/etc/bashrc'
这样,在每次启动终端Terminal时,输入命令:startFoam5,即启用OpenFOAM5, 输入startFoam6, 即启用OpenFOAM6.
c集群上foam-extend4.0安装(断网情况下)
由于一般计算集群上是面向多用户使用的,所以里面安装了很多程序及同一程序的多个版本,此时我们可以通过module命令选择某个合适版本(比如安装了好多版本的编译器gcc)。此时,可以终端输入下述命令进行选择版本:module load gcc/版本号, 或者module load gcc (自动选择最新的版本号).
安装前,把编译过中需要使用的软件包都load下来,比如:终端输入命令:module load mpi/openmpi module load gcc (不清楚具体路径的,可以用module path 来查找路径)
之后,将openfoam源程序,及第三方软件包下载,拷贝进集群自己文件夹里。
然后,设置etc/prefs.sh,设置使用系统已经安装过的gcc、openmpi等(详情参见OpenFOAM源文件中的doc/buildInstructions),注意路径参数可能需要手动修改,以和实际路径相吻合(可在终端(terminal)用命令which 查看软件具体路径。比如:终端输入which openmpi,会显示其路径,然后在prefs.sh文件里,将export OPENMPI_DIR=PATH设置为其具体路径,其他以此类推)。
然后,source etc/bashrc (启用环境变量)
编译 compile
最后,同样在用户目录下,添加上述的source语句。