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. (如果安装不了,将下图类似光盘图标弹出,再安装)

openvas centos7安装教程_cdr2020由于你已经安装了

   b. 在Windows系统中新建一个文件夹,比如命名ShareWithUbuntu.

   c. 在虚拟机上进行设置。右键点击系统图标(如下图),点选设置按钮,点选SharedFolders将上一步创建的文件夹添加进去,并选择“fixed allocation”。

openvas centos7安装教程_cdr2020由于你已经安装了_02

   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 打开终端,输入命令:见图片

openvas centos7安装教程_cdr2020由于你已经安装了_03

02 更新apt(advanced package tool) 的package list,终端输入命令:

openvas centos7安装教程_ubuntu gcc 安装_04

03 安装, 终端输入命令:

openvas centos7安装教程_openmpi安装_05

静候十分钟左右即可安装完毕。默认安装路径/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语句。