Powered by AISummary and Kimi.
由于最初是在 Ubuntu 24.04 上尝试的,以下有一些问题 Ubuntu 20.04 其实不会遇到。
添加旧版本的源地址
终端输入:
sudo gedit /etc/apt/sources.list
在打开的文本文件里添加:
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ trusty main
deb-src http://mirrors.aliyun.com/ubuntu/ trusty universe
在终端输入:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
安装老版本的gcc和gfortan
sudo apt-get update
sudo apt-get install g++-5 gcc-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 100
sudo apt-get update
sudo apt-get install gfortran-4.7 libgfortran-4.7-dev
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.7 100
安装openfoam2.4.0
安装qt4
(遇到报错: qtchooser : 破坏: libqtcore4 (< 4:4.8.7+dfsg-7~) 但是 4:4.8.7+dfsg-5ubuntu2 正要被安装……)
sudo add-apt-repository ppa:rock-core/qt4
安装libpng12
(遇到报错: 无法安装 /lib/x86_64-linux-gnu/libpng12.so.0 的新版本: 没有那个文件或目录……【在系统ubuntu20.04没有遇到】)
重新打开一个终端窗口手动安装:
mkdir libpng
cd libpng
wget https://launchpad.net/~linuxuprising/+archive/ubuntu/libpng12/+files/libpng12-0_1.2.54-1ubuntu1.1+1~ppa0~impish0_amd64.deb
wget https://launchpad.net/~linuxuprising/+archive/ubuntu/libpng12/+files/libpng12-dev_1.2.54-1ubuntu1.1+1~ppa0~impish0_amd64.deb
wget https://launchpad.net/~linuxuprising/+archive/ubuntu/libpng12/+files/libpng3_1.2.54-1ubuntu1.1+1~ppa0~impish0_amd64.deb
sudo dpkg -i *.deb
sudo apt install -f
libncurses5-dev
(遇到报错: 下列软件包有未满足的依赖关系:
libncurses5-dev : 依赖: libtinfo6 (= 6.3-2ubuntu0.1) 但是 6.4+20240113-1ubuntu2 正要被安装……【在系统ubuntu20.04没有遇到】)
sudo apt install aptitude
sudo apt-get install libncurses6
sudo aptitude install libncurses-dev
按n,直到出现以下降级选项:
是否接受该解决方案?[Y/n/q/?] n
下列动作将解决这些依赖关系:
删除 下列软件包:
1) libncursesw5 [6.0+20160213-1ubuntu1 (now, xenial)]
安装 下列软件包:
2) libncurses-dev [6.3-2ubuntu0.1 (jammy-security, jammy-updates)]
3) libnsl2 [1.3.0-3build3 (noble)]
保持 下列软件包于其当前版本:
4) libncurses5 [6.0+20160213-1ubuntu1 (now, xenial)]
5) libtinfo5 [6.0+20160213-1ubuntu1 (now, xenial)]
升级 下列软件包:
6) libpython2.7 [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-security, j
7) libpython2.7-dev [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-securit
8) libpython2.7-minimal [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-sec
9) libpython2.7-stdlib [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-secu
10) python2.7 [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-security, jamm
11) python2.7-dev [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-security,
12) python2.7-minimal [2.7.11-7ubuntu1 (now, xenial) -> 2.7.18-13ubuntu1.5 (jammy-securi
降级 下列软件包:
13) libncurses6 [6.4+20240113-1ubuntu2 (noble, now) -> 6.3-2ubuntu0.1 (jammy-security, j
14) libncursesw6 [6.4+20240113-1ubuntu2 (noble, now) -> 6.3-2ubuntu0.1 (jammy-security,
15) libtinfo6 [6.4+20240113-1ubuntu2 (noble, now) -> 6.3-2ubuntu0.1 (jammy-security, jam
16) ncurses-bin [6.4+20240113-1ubuntu2 (noble, now) -> 6.0+20160213-1ubuntu1 (xenial)]
是否接受该解决方案?[Y/n/q/?] y
之后再:
sudo apt-get install libncurses5-dev
继续安装
sudo -s
apt-get update
apt-get install build-essential cmake flex bison zlib1g-dev qt4-dev-tools libqt4-dev libqtwebkit-dev gnuplot \
libreadline-dev libncurses5-dev libxt-dev libopenmpi-dev openmpi-bin libboost-system-dev libboost-thread-dev libgmp-dev \
libmpfr-dev python python-dev libcgal-dev gcc-5 g++-5
apt-get install libglu1-mesa-dev libqt4-opengl-dev
exit
OPENMPI
虽然安装步骤放在这里了,但其实不需要手动安装。
tar -zvxf openmpi-4.1.4.tar.gz
cd openmpi-4.1.4/
./configure --prefix=/opt/openmpi-4.1.4 cc=gcc cxx=g++
make -j 4
make install
.bashrc写入
export PATH=/opt/openmpi-4.1.4/bin:$PATH
export PATH=/opt/openmpi-4.1.4/sbin:$PATH
export LD_LIBRARY_PATH=/opt/openmpi-4.1.4/lib:$LD_LIBRARY_PATH
然后
source ~/.bashrc
下载openfoam
cd ~
mkdir OpenFOAM
cd OpenFOAM
wget "http://downloads.sourceforge.net/foam/OpenFOAM-2.4.0.tgz?use_mirror=mesh" -O OpenFOAM-2.4.0.tgz
wget "http://downloads.sourceforge.net/foam/ThirdParty-2.4.0.tgz?use_mirror=mesh" -O ThirdParty-2.4.0.tgz
tar -xzf OpenFOAM-2.4.0.tgz
tar -xzf ThirdParty-2.4.0.tgz
ln -s /usr/bin/mpicc.openmpi OpenFOAM-2.4.0/bin/mpicc
ln -s /usr/bin/mpirun.openmpi OpenFOAM-2.4.0/bin/mpirun
sed -i -e 's/\(cgal_version=\)CGAL-4.6/\1cgal-system/' OpenFOAM-2.4.0/etc/config/CGAL.sh
sed -i -e 's=\-lmpfr=-lmpfr -lboost_thread=' OpenFOAM-2.4.0/wmake/rules/General/CGAL
sed -i -e 's/gcc/\$(WM_CC)/' OpenFOAM-2.4.0/wmake/rules/linux*Gcc/c
sed -i -e 's/g++/\$(WM_CXX)/' OpenFOAM-2.4.0/wmake/rules/linux*Gcc/c++
source $HOME/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc WM_NCOMPPROCS=4 WM_MPLIB=SYSTEMOPENMPI
export WM_CC='gcc-5'
export WM_CXX='g++-5'
echo "alias of240='source \$HOME/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc $FOAM_SETTINGS; export WM_CC=gcc-5; export WM_CXX=g++-5'" >> $HOME/.bashrc
source $HOME/.bashrc
之后,每次开始一个新终端,先输入命令:of240
进入OpenFOAM 2.4.0环境。
编译ThirdParty
cd $WM_THIRD_PARTY_DIR
export QT_SELECT=qt4
sed -i -e 's|\(^if.*CGAL_ARCH_PATH.*\)]|\1 -a "${CGAL_ARCH_PATH##*/}" != "cgal-system" ]|' Allwmake
./Allwmake > log.make 2>&1
of240
编译ParaView
export QT_SELECT=qt4
cd $WM_THIRD_PARTY_DIR
sed -i -e 's=MPI_ARCH_PATH/include=MPI_ARCH_PATH/include;$MPI_INCLUDE=' etc/tools/ParaView4Functions
sed -i -e 's=//#define GLX_GLXEXT_LEGACY=#define GLX_GLXEXT_LEGACY=' \
ParaView-4.1.0/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx
cd $WM_THIRD_PARTY_DIR/ParaView-4.1.0
wget http://www.paraview.org/pipermail/paraview/attachments/20140210/464496cc/attachment.bin -O Fix.patch
patch -p1 < Fix.patch
cd VTK
wget https://github.com/gladk/VTK/commit/ef22d3d69421581b33bc0cd94b647da73b61ba96.patch -O Fix2.patch
patch -p1 < Fix2.patch
cd ../..
./makeParaView4 -python -mpi -python-lib /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 > log.makePV 2>&1
完成后,查看log.makePV,显示了一些与mpi有关的错误。
make[2]: *** [VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/build.make:88:VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/vtkMPICommunicator.cxx.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:7499:VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/all] 错误 2
make: *** [Makefile:156:all] 错误 2
报错的话就执行以下命令:
./makeParaView4 -qmake /usr/lib/x86_64-linux-gnu/qt4 > log.makePV 2>&1
如果还不行,可以另外安装一个paraview,看看参考4:参考4
of240
openfoam安装
cd $WM_PROJECT_DIR
find src applications -name "*.L" -type f | xargs sed -i -e 's=\(YY\_FLEX\_SUBMINOR\_VERSION\)=YY_FLEX_MINOR_VERSION < 6 \&\& \1='
cd $WM_PROJECT_DIR
export QT_SELECT=qt4
#两次
./Allwmake > log.make 2>&1
./Allwmake > log.make 2>&1
安好啦!输入icoFoam -help
看是否安装成功。走这个流程 Ubuntu 20.04可以,但24.04失败。
- OpenFOAM和ThirdParty文件夹后面的结构要一样
如果不在默认路径安装,或者文件夹名字不同,则需要先修改 /OpenFOAM-2.4.0/etc/bashc,注意
foamInstall=$HOME/$WM_PROJECT
的设置,例如 ~/OpenFOAM240MNF/OpenFOAM-2.4.0-MNF/etc/bashc 修改为:export WM_PROJECT=OpenFOAM export WM_PROJECT_VERSION=2.4.0-MNF foamInstall=$HOME/OpenFOAM240MNF
- 还有
alias of24MNF='source $HOME/OpenFOAM240MNF/OpenFOAM-2.4.0-MNF/etc/bashrc; export WM_NCOMPPROCS=[number of threads to compile with]
也要注意 参考4说安装完paraview之后要把以下代码加到of24MNF,反正我加上了:
export ParaView_DIR=/home/peachrl/OpenFOAM240MNF/ThirdParty-2.4.0-MNF/platforms/linux64GccMNF/ParaView-4.1.0 export PATH=$ParaView_DIR/bin:$PATH export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-4.1
- OpenFOAM-2.4.0没问题,但是OpenFOAM-2.4.0-MNF的安装还是报错了