Ubuntu18.04更新至20.04 OpenFOAM无法正常使用



  • 前一段时间看20.04LTS出来了,手痒就更新了,没想到没备份,更新了OpenFOAM无法正常使用。
    输入blockMesh显示没有这个命令。
    昨天尝试删除之后重新编译一下,编译之后依然不能使用。
    求问各位大佬,该怎么破,重装吗?
    (ps.之前尝试过重装,奈何双系统一直重装不上,重装=重装双系统,太麻烦了,几个月前刚做的系统……)



  • 开个贴主要还想说,openfoam V7代码从github迁移到gitee,速度上升许多倍,昨天尝试几秒就下下来了。



  • 然后还想附上一直想发出来的,之前安装三个版本的openfoam历程,欢迎大家修改完善:xinxin:

    OpenFOAM安装

    Overview

    系统版本:Ubuntu18.04 LTS

    安装方式:编译安装

    安装版本:OpenFOAM-7、foam-extend 4.1、OpenFOAM-V1902

    参阅:

    1. 东岳流体OpenFOAM-7安装
    2. openfoamwiki foam-extend 4.1安装 fe4.1 install
    3. OpenFOAM-V1902安装 ofwiki of1806

    多版本共存方式

    1. 终端输入

      gedit $HOME/.bashrc
      
    2. 方法1

      在文件的最底部重新取一行添加下述两行文字:

      alias of3x="source ~/OpenFOAM/OpenFOAM-3.x/etc/bashrc"
      alias of4x="source ~/OpenFOAM/OpenFOAM-4.x/etc/bashrc"
      
    3. 方法2

      在文件的最底部添加:

      # source $HOME/OpenFOAM/OpenFOAM-7/etc/bashrc
      source $HOME/foam/foam-extend-4.1/etc/bashrc
      # source $HOME/OpenFOAM/OpenFOAM-v1912/etc/bashrc
      
    4. 方法3 (采用)

      source $HOME/OpenFOAM/OpenFOAM-7/etc/bashrc
      
      alias of19='source $HOME/OpenFOAM/OpenFOAM-v1912/etc/bashrc'
      
      alias fe41='source $HOME/OpenFOAM/foam-extend-4.1/etc/bashrc'
      

    OpenFOAM-7(大致耗时一下午5~6h)

    安装of7

    1. 确保ubuntu可以联网,启动终端,在终端输入(分三次输入,直接全部复制进去):

      # 更新软件
      sudo apt update
      # 安装依赖1
      sudo apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
      # 安装依赖2
      sudo apt-get install qt4-dev-tools libqt4-dev libqt4-opengl-dev freeglut3-dev libqtwebkit-dev
      
    2. 下载OpenFOAM-7.tar以及ThirdParty-7.tar,然后从窗口进入到ubuntu系统的Home文件夹下建立文件夹为OpenFOAM。

    3. 进入这个OpenFOAM文件夹,将下载的OpenFOAM-7.tar复制进去右键解压缩会出现一个OpenFOAM-7-master的文件夹。去掉master后缀改名为OpenFOAM-7。同样把ThirdParty-7.tar解压缩至此处,去掉master后缀改名为ThirdParty-7文件夹。注意,两个文件夹缺一不可。否则会提示缺少相关文件编译error。

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

      gedit $HOME/.bashrc
      

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

      source $HOME/OpenFOAM/OpenFOAM-7/etc/bashrc
      

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

    5. 配置并行编译

      在OpenFOAM目录下的etc下打开bashrc文件,在其中最底部添加

      export WM_NCOMPPROCS=4
      

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

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

      cd $HOME/OpenFOAM/OpenFOAM-7/
      

      然后输入:

      ./Allwmake
      

      这时候会输出大量的信息,编译开始。编译之后请尝试运行:

      blockMesh
      
      /*---------------------------------------------------------------------------*\
        =========                 |
        \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
         \\    /   O peration     | Website:  https://openfoam.org
          \\  /    A nd           | Version:  7
           \\/     M anipulation  |
      \*---------------------------------------------------------------------------*/
      Build  : 7
      Exec   : blockMesh
      Date   : Mar 20 2020
      Time   : 14:46:02
      Host   : "veen-zhou"
      PID    : 12641
      I/O    : uncollated
      Case   : /home/veen/OpenFOAM/OpenFOAM-7
      nProcs : 1
      sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
      fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
      allowSystemOperations : Allowing user-supplied system call operations
      
      // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
      
      

    编译安装Paraview

    1. 终端切换到ThirdParty-7目录下并键入:

      sudo apt-get install qt5-default libqt5x11extras5-dev qttools5-dev curl
      
    2. 终端键入:

      ./makeParaView
      

      其中会自动下载ParaView并开始编译,编译过程较长。编译完成后会显示Installation complete for paraview-5.4.0等信息。

    3. 分四次键入

      wmRefresh
      cd $FOAM_UTILITIES/postProcessing/graphics/PVReaders
      ./Allwclean
      ./Allwmake
      

      将会再次开始编译过程。几分钟即编译完成。然后键入paraFoam即可运行。

    foam-extend 4.1

    安装fe41

    1. 确保Ubuntu可以联网

      # 更新
      sudo apt-get update
      # 安装依赖
      sudo apt-get install git-core build-essential binutils-dev cmake flex \
      zlib1g-dev qt4-dev-tools libqt4-dev libncurses5-dev curl bison \
      libxt-dev rpm mercurial graphviz python python-dev python3 python3-dev
      

      然而这样并不能成功安装,继续安装一些依赖

      sudo apt-get install openmpi-bin libopenmpi-dev #Addition: Use system installed OpenMPI
      
      sudo apt install curl #Addition: Needed for downloading of ThirdPartyProducts
      
    2. 设置一下

      echo "export WM_THIRD_PARTY_USE_BISON_27=1" > etc/prefs.sh #Compile bison-2.7
      echo "export WM_MPLIB=SYSTEMOPENMPI" >> etc/prefs.sh #Addition: Use system installed OpenMPI
      echo "export OPENMPI_DIR=/usr" >> etc/prefs.sh #Addition: Use system installed OpenMPI
      echo "export OPENMPI_BIN_DIR=\$OPENMPI_DIR/bin" >> etc/prefs.sh #Addition: Use system installed OpenMPI
      See the etc/prefs-sh-EXAMPLE file for more examples on how to do modifications.
      source etc/bashrc
      echo "alias fe41='source \$HOME/foam/foam-extend-4.1/etc/bashrc'" >> $HOME/.bashrc
      
    3. 编译(四核编译时间大概3~4小时)

      ./Allwmake.firstInstall 
      
    4. 测试安装

      # Test the installation:
      # Press CTRL-ALT-T to open an new terminal window
      fe41
      mkdir -p $FOAM_RUN
      run
      # 如果下一步没有成功请手动复制
      cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity 
      cd cavity
      blockMesh
      

    运行结果:

    /*---------------------------------------------------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | foam-extend: Open Source CFD                    |
    |  \\    /   O peration     | Version:     4.1                                |
    |   \\  /    A nd           | Web:         http://www.foam-extend.org         |
    |    \\/     M anipulation  | For copyright notice see file Copyright         |
    \*---------------------------------------------------------------------------*/
    Build  : 4.1-93fffffdb745
    Exec   : blockMesh
    Date   : Mar 20 2020
    Time   : 15:47:10
    Host   : "veen-zhou"
    PID    : 13020
    CtrlDict : "/home/veen/foam/foam-extend-4.1/FOAM_RUN/cavity/system/controlDict"
    Case   : /home/veen/foam/foam-extend-4.1/FOAM_RUN/cavity
    nProcs : 1
    sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
    allowSystemOperations : Disallowing user-supplied system call operations
    
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    

    安装绿色Paraview

    绿色版ParaView安装非常简单,并且在处理网格较多的算例比编译版本的paraFoam要快。用户可以在ParaView官方(或本链接 Paraview-5.8.0)直接下载linux版本的ParaView绿色版,随意解压缩到任意的文件夹,双击打开ParaView/bin/paraview文件即可运行(如下图)。在打开ParaView之后,在任意的OpenFOAM算例下创建一个空文件并命名为case.foam,然后用ParaView打开这个文件即可。

    OpenFOAM-V1902

    安装of19(编译时间2h)

    1. 进行系统环境初始化

      # 使用root账户
      sudo -s
      # 更新
      apt-get update
      # 安装依赖
      apt-get install build-essential flex bison cmake zlib1g-dev libboost-system-dev libboost-thread-dev \
      libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev \
      qt5-default libqt5x11extras5-dev libqt5help5 qtdeclarative5-dev qttools5-dev \
      libqtwebkit-dev freeglut3-dev libqt5opengl5-dev texinfo \
      libscotch-dev libcgal-dev python python-dev
      
      # 退出root
      exit
      
    2. 将下载的安装包解压到OpenFOAM/文件夹下

      # 查看系统架构
      uname -m
      # 对于64位系统
      source $HOME/OpenFOAM/OpenFOAM-v1912/etc/bashrc WM_LABEL_SIZE=64
      
      # 安装之后发现还是有如下错误:
      
      # No completion added for /home/veen/OpenFOAM/OpenFOAM-
      # v1912/platforms/linux64GccDPInt32Opt/bin... incorrect platform, or not yet compiled?
      
      # 解决方案:
      # 进行bashrc文件的修改
      # 打开Home/OpenFOAM/OpenFOAM-v1912//etc/bashrc
      # 找到export WM_LABEL_SIZE=32
      # 修改为WM_LABEL_SIZE=64
      
    3. 环境变量修改

      echo "alias of1912='source \$HOME/OpenFOAM/OpenFOAM-v1912/etc/bashrc $FOAM_SETTINGS'" >> $HOME/.bashrc
      # 安装检查
      foamSystemCheck
      
    4. 继续修改(我也不记得自己改没改了)

      cd $WM_PROJECT_DIR
      export QT_SELECT=qt5
      
    5. 进行编译

      /Allwmake -j -s -q -l
      
    6. 测试安装

      # 打开terminal,键入
      of1912
      blockMesh
      

      出现如下信息即为安装成功

      /*---------------------------------------------------------------------------*\
      | =========                 |                                                 |
      | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
      |  \\    /   O peration     | Version:  v1912                                 |
      |   \\  /    A nd           | Website:  www.openfoam.com                      |
      |    \\/     M anipulation  |                                                 |
      \*---------------------------------------------------------------------------*/
      Build  : v1912 OPENFOAM=1912 patch=200316
      Arch   : "LSB;label=64;scalar=64"
      Exec   : blockMesh
      Date   : Mar 20 2020
      Time   : 18:40:47
      Host   : veen-zhou
      PID    : 26190
      I/O    : uncollated
      Case   : /home/veen/OpenFOAM/OpenFOAM-v1912/tutorials/incompressible/icoFoam/cavity/cavity
      nProcs : 1
      trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE).
      fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
      allowSystemOperations : Allowing user-supplied system call operations
      
      // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
      
      


  • 编译的时候有木有错误信息啊,会不会是某些libraries版本不对了,ubuntu 20好像更新了不少东西



  • @星星星星晴 开头有报代码有问题,最后报告有个头文件找不着。哪天再看看,不过李老师的Ubuntu20.04三个版本的都装上了。我估计有可能是我从18更新的原因……



  • @veen 哈哈哈 更新就是蛋疼



  • @veen
    我好奇的问一下 为什么要用编译安装的方式呢?
    国内apt-get 速度不好?



  • @星星星星晴 太难了 ,不过还好最近不用它……要用的时候再说吧,希望大佬们都更新成功,及时备份,别像我这样手痒更新了回不去。



  • @星星星星晴 因为还要自己写求解器之类的,没试过apt-get,回头也可以试试。
    求问大佬:三种openfoam都能apt-get吗?装好之后也和编译的一样?



  • @veen 我用起来没有其他感觉,可能是如果直接apt-get的话装在/opt里面,然后你就无法随便动了把,不过也有user_src啊什么的,我也不太了解 所以很好奇为什么都用编译的方式,直接安装不也很香么。。不过新版ubuntu 可能不能apt-get 4.1以前的版本,每个版本都有支持的系统的
    建议你改一下ubuntu 的源,国内的源会快点,清华,阿里什么的



  • @星星星星晴 嗯嗯,好的,感谢!清华源是快,不过还是容易断…



  • 太长了
    一般最好不要更新,难免出现各种不可预料的问题



  • @东岳 好的,谢谢李老师。今天早上破案了,OpenFOAM7成功编译了。


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2