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下编译成功。