• 返回主页
  • OpenFOAM安装指南

    2017/05/21更新:OpenFOAM-4.x deb安装方法
    2016/11/28更新:OpenFOAM在win10下直接安装方法
    2016/06/04更新:错误提示:can not find "ptscotch.h"
    2016/04/21更新:错误提示:can not find "mpi.h"
    2016/03/16更新:在windows下显示linux图形界面

    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分钟

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

    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 openfoam4 
    

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

    gedit $HOME/.bashrc
    

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

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


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

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

    gedit $HOME/.bashrc
    

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

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

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

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

    cd OpenFOAM/OpenFOAM-3.0.x/
    

    然后输入:

    ./Allwmake 
    

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

    blockMesh 
    

    如果显示如下信息:

    表示安装成功。

    并行编译:如果需要并行安装,请在OpenFOAM目录下的etc下打开这个bashrc文件,在其中最底部添加下述内容:

    export WM_NCOMPPROCS=4

    即表示采用4线程并行编译。用户可以随意更改其中的数字。

    在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,如果显示下图表明成功:



    找不到mpi.h文件错误

    若在编译最开始提示类似下面的错误):

    + wmake libso dummy
    /home/dongyue/OpenFOAM/OpenFOAM-3.0.x/src/Pstream/dummy
    '/home/dongyue/OpenFOAM/OpenFOAM-3.0.x/platforms/linux64GccDPInt32Opt/lib/dummy/libPstream.so' is up to date.
    + set +x
    wclean mpi
    /home/dongyue/OpenFOAM/OpenFOAM-3.0.x/src/Pstream/mpi
    wmake libso mpi
    /home/dongyue/OpenFOAM/OpenFOAM-3.0.x/src/Pstream/mpi
    wmakeLnInclude: linking include files to ./lnInclude
    Making dependency list for source file PstreamGlobals.C
    Making dependency list for source file UPstream.C
    Making dependency list for source file UIPread.C
    Making dependency list for source file UOPwrite.C
    g++ -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3  -DNoRepository -ftemplate-depth-100   -IlnInclude -I. -I/home/dongyue/OpenFOAM/OpenFOAM-3.0.x/src/OpenFOAM/lnInclude -I/home/dongyue/OpenFOAM/OpenFOAM-3.0.x/src/OSspecific/POSIX/lnInclude   -fPIC -c UOPwrite.C -o /home/dongyue/OpenFOAM/OpenFOAM-3.0.x/platforms/linux64GccDPInt32OptSYSTEMOPENMPI/src/Pstream/mpi/UOPwrite.o
    In file included from UOPwrite.C:30:0:
    PstreamGlobals.H:41:17: fatal error: mpi.h: 没有那个文件或目录
     #include <mpi.h>
                     ^
    compilation terminated.
    make: *** [/home/dongyue/OpenFOAM/OpenFOAM-3.0.x/platforms/linux64GccDPInt32OptSYSTEMOPENMPI/src/Pstream/mpi/UOPwrite.o] 错误 1
    

    需要进入:

    OpenFOAM/OpenFOAM-3.0.x/src/Pstream/mpi/Make/options

    文件夹。讲起修改为下述代码即可:

    sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
    sinclude $(RULES)/mplib$(WM_MPLIB)
    
    EXE_INC  = $(PFLAGS) $(PINC) \
               -I /usr/lib/openmpi/include
    LIB_LIBS = $(PLIBS)
    

    在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
    
    安装完成后参考上文配置环境变量即可。


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