zoukankan      html  css  js  c++  java
  • ubuntu12.10下OpenFoam的编译

    最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下。

    首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz)。

    1.下载解压源码包

    首先创建OpenFOAM文件夹,将压缩包解压到OpenFOAM文件夹下

    1 mkdir OpenFOAM
    2 cd OpenFOAM
    3 
    4 tar -xvf OpenFOAM-2.3.0.tgz
    5 tar -xvf ThirdParty-2.3.0.tgz


    2.设置变量环境

    此处OpenFOAM的环境非默认环境,所以

     1 gedit ~/.bashrc 

    在最后几行添加:

    1 export FOAM_INST_DIR=$HOME/OpenFOAM
    2 foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3.0/etc/bashrc
    3 [ -f $foamDotFile ] && . $foamDotFile

    然后在终端执行

    1 . $HOME/.bashrc


    3.安装依赖包

    1 apt-get install build-essential flex bison cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev

    问题出现,显示无法找到软件包。apt-get update显示一些网址404 notfound,原因是13.04版本已经陈旧,sourcelist需要更新。手动更新/etc/apt/sources.list文件内容为:

     1 deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
     2 deb http://old-releases.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
     3 deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
     4 deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
     5 deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
     6 deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
     7 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
     8 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
     9 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
    10 deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse

    然后

    1 apt-get update

    然后就能找到这些软件包了。

    4.编译源代码

    1 cd $WM_PROJECT_DIR/bin
    2 ./foamSystemCheck
    3 cd $WM_PROJECT_DIR
    4 ./Allwmake

    接下来就是好几个小时的等待

    5.编译Paraview和PV3FoamReader模块

    A. 编译Paraview

    1 cd $WM_THIRD_PARTY_DIR
    2 ./Allclean
    3 ./makeParaView

    B.编译
    PV3FoamReader

    1 cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers
    2 ./Allwclean
    3 ./Allwmake

    6.测试安装

    1 cd $FOAM_TUTORIALS/incompressible/icoFoam/cavity
    2 blockMesh

    在此报错,缺少依赖库libmpi.so.1文件,下载源码http://packages.ubuntu.com/precise/amd64/libopenmpi1.3
    编译

    1 ./configure
    2 make

    得到3个动态库(.libs为隐藏文件夹)

    1 ./ompi/.libs/libmpi.so.0
    2 ./ompi/.libs/libmpi.so.0.0.2
    3 ./ompi/.libs/libmpi.so

    ,将3个动态库移到默认路径/usr/lib下

    1 sudo cp -r ./ompi/.libs/libmpi.so* /usr/lib

    blockMesh
    icoFoam通过,

    paraFoam的时候遇到问题

    1 FATAL ERROR: ParaView reader module libraries do not exist
    2 
    3 Please build the reader module before continuing:
    4 cd $FOAM_UTILITIES/postProcessing/graphics/PV4Readers
    5 ./Allwclean
    6 ./Allwmake

    在./Allwmake时遇到问题

      1 wmakeLnInclude: linking include files to ./lnInclude
      2 Making dependency list for source file vtkPV4Readers.C
      3 could not open file vtkDataArraySelection.h for source file vtkPV4Readers.C due to No such file or directory
      4 could not open file vtkDataSet.h for source file vtkPV4Readers.C due to No such file or directory
      5 could not open file vtkMultiBlockDataSet.h for source file vtkPV4Readers.C due to No such file or directory
      6 could not open file vtkInformation.h for source file vtkPV4Readers.C due to No such file or directory
      7 SOURCE=vtkPV4Readers.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0/include/paraview-4.1 -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4Readers.o
      8 vtkPV4Readers.C:35:35: fatal error: vtkDataArraySelection.h: No such file or directory
      9 compilation terminated.
     10 make: *** [Make/linuxGccDPOpt/vtkPV4Readers.o] Error 1
     11 + [ -d /home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0 -a -r /home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0 ]
     12 + wmake libso vtkPV4blockMesh
     13 wmakeLnInclude: linking include files to ./lnInclude
     14 Making dependency list for source file vtkPV4blockMesh.C
     15 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMesh.C due to No such file or directory
     16 could not open file vtkDataArraySelection.h for source file vtkPV4blockMesh.C due to No such file or directory
     17 could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMesh.C due to No such file or directory
     18 could not open file vtkRenderer.h for source file vtkPV4blockMesh.C due to No such file or directory
     19 could not open file vtkTextActor.h for source file vtkPV4blockMesh.C due to No such file or directory
     20 could not open file vtkTextProperty.h for source file vtkPV4blockMesh.C due to No such file or directory
     21 Making dependency list for source file vtkPV4blockMeshConvert.C
     22 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     23 could not open file vtkPoints.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     24 could not open file vtkCellArray.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     25 could not open file vtkDataArraySelection.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     26 could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     27 could not open file vtkPolyData.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     28 could not open file vtkUnstructuredGrid.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
     29 Making dependency list for source file vtkPV4blockMeshUtils.C
     30 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
     31 could not open file vtkDataArraySelection.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
     32 could not open file vtkDataSet.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
     33 could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
     34 could not open file vtkInformation.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
     35 SOURCE=vtkPV4blockMesh.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/meshTools/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/mesh/blockMesh/lnInclude -I/home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0/include/paraview-4.1 -I../../vtkPV4Readers/lnInclude -I../PV4blockMeshReader -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4blockMesh.o
     36 In file included from vtkPV4blockMesh.C:27:0:
     37 ../PV4blockMeshReader/vtkPV4blockMeshReader.h:42:43: fatal error: vtkMultiBlockDataSetAlgorithm.h: No such file or directory
     38 compilation terminated.
     39 make: *** [Make/linuxGccDPOpt/vtkPV4blockMesh.o] Error 1
     40 + cd PV4blockMeshReader
     41 + mkdir -p Make/linuxGccDPOpt
     42 + cd Make/linuxGccDPOpt
     43 + cmake ../..
     44 -- The C compiler identification is GNU 4.7.3
     45 -- The CXX compiler identification is GNU 4.7.3
     46 -- Check for working C compiler: /usr/bin/cc
     47 -- Check for working C compiler: /usr/bin/cc -- works
     48 -- Detecting C compiler ABI info
     49 -- Detecting C compiler ABI info - done
     50 -- Check for working CXX compiler: /usr/bin/c++
     51 -- Check for working CXX compiler: /usr/bin/c++ -- works
     52 -- Detecting CXX compiler ABI info
     53 -- Detecting CXX compiler ABI info - done
     54 CMake Error at CMakeLists.txt:12 (FIND_PACKAGE):
     55   By not providing "FindParaView.cmake" in CMAKE_MODULE_PATH this project has
     56   asked CMake to find a package configuration file provided by "ParaView",
     57   but CMake did not find one.
     58 
     59   Could not find a package configuration file provided by "ParaView" with any
     60   of the following names:
     61 
     62     ParaViewConfig.cmake
     63     paraview-config.cmake
     64 
     65   Add the installation prefix of "ParaView" to CMAKE_PREFIX_PATH or set
     66   "ParaView_DIR" to a directory containing one of the above files.  If
     67   "ParaView" provides a separate development package or SDK, be sure it has
     68   been installed.
     69 
     70 
     71 -- Configuring incomplete, errors occurred!
     72 + make
     73 make: *** No targets specified and no makefile found.  Stop.
     74 + [ -d /home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0 -a -r /home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0 ]
     75 + wmake libso vtkPV4Foam
     76 wmakeLnInclude: linking include files to ./lnInclude
     77 Making dependency list for source file vtkPV4Foam.C
     78 could not open file vtkPoints.h for source file vtkPV4Foam.C due to No such file or directory
     79 could not open file vtkCellArray.h for source file vtkPV4Foam.C due to No such file or directory
     80 could not open file vtkPolyData.h for source file vtkPV4Foam.C due to No such file or directory
     81 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4Foam.C due to No such file or directory
     82 could not open file vtkDataArraySelection.h for source file vtkPV4Foam.C due to No such file or directory
     83 could not open file vtkMultiBlockDataSet.h for source file vtkPV4Foam.C due to No such file or directory
     84 could not open file vtkRenderer.h for source file vtkPV4Foam.C due to No such file or directory
     85 could not open file vtkTextActor.h for source file vtkPV4Foam.C due to No such file or directory
     86 could not open file vtkTextProperty.h for source file vtkPV4Foam.C due to No such file or directory
     87 Making dependency list for source file vtkPV4FoamFields.C
     88 could not open file vtkPoints.h for source file vtkPV4FoamFields.C due to No such file or directory
     89 could not open file vtkCellArray.h for source file vtkPV4FoamFields.C due to No such file or directory
     90 could not open file vtkPolyData.h for source file vtkPV4FoamFields.C due to No such file or directory
     91 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamFields.C due to No such file or directory
     92 could not open file vtkDataArraySelection.h for source file vtkPV4FoamFields.C due to No such file or directory
     93 could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamFields.C due to No such file or directory
     94 could not open file vtkCellData.h for source file vtkPV4FoamFields.C due to No such file or directory
     95 could not open file vtkFloatArray.h for source file vtkPV4FoamFields.C due to No such file or directory
     96 could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamFields.C due to No such file or directory
     97 could not open file vtkPointData.h for source file vtkPV4FoamFields.C due to No such file or directory
     98 Making dependency list for source file vtkPV4FoamMesh.C
     99 could not open file vtkPoints.h for source file vtkPV4FoamMesh.C due to No such file or directory
    100 could not open file vtkCellArray.h for source file vtkPV4FoamMesh.C due to No such file or directory
    101 could not open file vtkPolyData.h for source file vtkPV4FoamMesh.C due to No such file or directory
    102 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamMesh.C due to No such file or directory
    103 could not open file vtkDataArraySelection.h for source file vtkPV4FoamMesh.C due to No such file or directory
    104 could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamMesh.C due to No such file or directory
    105 could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamMesh.C due to No such file or directory
    106 Making dependency list for source file vtkPV4FoamMeshLagrangian.C
    107 could not open file vtkPoints.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
    108 could not open file vtkCellArray.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
    109 could not open file vtkPolyData.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
    110 Making dependency list for source file vtkPV4FoamMeshSet.C
    111 could not open file vtkPoints.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
    112 could not open file vtkCellArray.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
    113 could not open file vtkPolyData.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
    114 Making dependency list for source file vtkPV4FoamMeshVolume.C
    115 could not open file vtkPoints.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    116 could not open file vtkCellArray.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    117 could not open file vtkPolyData.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    118 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    119 could not open file vtkIdTypeArray.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    120 could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
    121 Making dependency list for source file vtkPV4FoamMeshZone.C
    122 could not open file vtkPoints.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
    123 could not open file vtkCellArray.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
    124 could not open file vtkPolyData.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
    125 Making dependency list for source file vtkPV4FoamUpdateInfo.C
    126 could not open file vtkPoints.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
    127 could not open file vtkCellArray.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
    128 could not open file vtkPolyData.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
    129 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
    130 could not open file vtkDataArraySelection.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
    131 Making dependency list for source file vtkPV4FoamUtils.C
    132 could not open file vtkPoints.h for source file vtkPV4FoamUtils.C due to No such file or directory
    133 could not open file vtkCellArray.h for source file vtkPV4FoamUtils.C due to No such file or directory
    134 could not open file vtkPolyData.h for source file vtkPV4FoamUtils.C due to No such file or directory
    135 could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamUtils.C due to No such file or directory
    136 could not open file vtkDataArraySelection.h for source file vtkPV4FoamUtils.C due to No such file or directory
    137 could not open file vtkDataSet.h for source file vtkPV4FoamUtils.C due to No such file or directory
    138 could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamUtils.C due to No such file or directory
    139 could not open file vtkInformation.h for source file vtkPV4FoamUtils.C due to No such file or directory
    140 SOURCE=vtkPV4Foam.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/meshTools/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/finiteVolume/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/basic/lnInclude -I../../vtkPV4Readers/lnInclude -I../PV4FoamReader -I/home/jack/OpenFOAM/ThirdParty-2.3.0/platforms/linuxGcc/ParaView-4.1.0/include/paraview-4.1 -UHAS_VTK_POLYHEDRON -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4Foam.o
    141 In file included from vtkPV4FoamTemplates.C:31:0,
    142                  from vtkPV4Foam.H:734,
    143                  from vtkPV4Foam.C:26:
    144 vtkOpenFOAMPoints.H:33:23: fatal error: vtkPoints.h: No such file or directory
    145 compilation terminated.
    146 make: *** [Make/linuxGccDPOpt/vtkPV4Foam.o] Error 1
    147 + cd PV4FoamReader
    148 + mkdir -p Make/linuxGccDPOpt
    149 + cd Make/linuxGccDPOpt
    150 + cmake ../..
    151 -- The C compiler identification is GNU 4.7.3
    152 -- The CXX compiler identification is GNU 4.7.3
    153 -- Check for working C compiler: /usr/bin/cc
    154 -- Check for working C compiler: /usr/bin/cc -- works
    155 -- Detecting C compiler ABI info
    156 -- Detecting C compiler ABI info - done
    157 -- Check for working CXX compiler: /usr/bin/c++
    158 -- Check for working CXX compiler: /usr/bin/c++ -- works
    159 -- Detecting CXX compiler ABI info
    160 -- Detecting CXX compiler ABI info - done
    161 CMake Error at CMakeLists.txt:12 (FIND_PACKAGE):
    162   By not providing "FindParaView.cmake" in CMAKE_MODULE_PATH this project has
    163   asked CMake to find a package configuration file provided by "ParaView",
    164   but CMake did not find one.
    165 
    166   Could not find a package configuration file provided by "ParaView" with any
    167   of the following names:
    168 
    169     ParaViewConfig.cmake
    170     paraview-config.cmake
    171 
    172   Add the installation prefix of "ParaView" to CMAKE_PREFIX_PATH or set
    173   "ParaView_DIR" to a directory containing one of the above files.  If
    174   "ParaView" provides a separate development package or SDK, be sure it has
    175   been installed.
    176 
    177 
    178 -- Configuring incomplete, errors occurred!
    179 + make
    180 make: *** No targets specified and no makefile found.  Stop.

     是导入资源路径问题,

    1 gedit ~/.bashrc


     1 #export FOAM_INST_DIR=$HOME/OpenFOAM 2 #foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3.0/etc/bashrc 3 #[ -f $foamDotFile ] && . $foamDotFile 

    这几行注释掉,然后终端执行

     1 source ~/.bashrc 

    可以把

      1 export FOAM_INST_DIR=$HOME/OpenFOAM 2 foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3.0/etc/bashrc 3 2 [ -f $foamDotFile ] && . $foamDotFile 

    解除注释

    然后执行

     1 cd $FOAM_UTILITIES/postProcessing/graphics/PV4Readers 2 ./Allwclean 3 ./Allwmake 

    此次执行成功

    然后到OpenFOAM/OpenFOAM-2.3.0/tutorials/incompressible/icoFoam/cavity$目录,执行paraFoam成功弹出界面。

    至此,OpenFOAM在Ubuntu12.10下编译成功。

  • 相关阅读:
    好友面板切换案例
    jquery
    H5 新增API
    深拷贝
    浅拷贝
    call bind apply
    像素鸟
    Django3.0
    三剑客-grep-awk-sed
    Linux中find命令详解
  • 原文地址:https://www.cnblogs.com/wanzaiyimeng/p/4146575.html
Copyright © 2011-2022 走看看