IBAMR在Linux系统的安装
参考自官网安装说明https://ibamr.github.io/index
IBAMR (Immersed Boundary Method Adaptive Mesh Refinement Software Infrastructure)是浸没边界方法(IBM)的分布式内存并行实现,支持笛卡尔网格自适应网格细化(AMR)。通过消息传递接口 (MPI) 支持分布式内存并行。
本次安装在ubuntu22.04系统,前几步过程可以参照官网安装教程的 Build IBAMR on Linux 部分:Boost、Eigen、HDF5、Silo、MPI,不过需要注意的地方是,Boost版本并不是官网写的1.60.0,而是1.66.0以上。
(1)在安装PETSc的时候应该按照以下步骤:
mkdir petsc
cd petsc
tar xvfz petsc-3.17.5.tar.gz
mv petsc-3.17.5 3.17.5
cd 3.17.5
指定PETSc目录和版本(release而非debug):
export PETSC_DIR=$PWD
export PETSC_ARCH=linux-release
接下来在当前目录下执行configure,prefix是安装的目标路径,因人而异:
./configure \
--prefix=/home/w/2023-08/ibamr/sfw/linux/3-17-5/linux-opt \
--CC=/home/w/2023-08/openmpi/bin/mpicc \
--CXX=/home/w/2023-08/openmpi/bin/mpicxx \
--FC=/home/w/2023-08/openmpi/bin/mpif90 \
--COPTFLAGS="-O3" \
--CXXOPTFLAGS="-O3" \
--FOPTFLAGS="-O3" \
--PETSC_ARCH=linux-opt \
--download-hypre=1 \
--with-debugging=0 \
--download-fblaslapack=1 \
--with-x=0
接下来,按照提示执行如下步骤:
make PETSC_DIR=/home/w/2023-08/petsc/3.17.5 PETSC_ARCH=linux-opt all
make PETSC_DIR=/home/w/2023-08/petsc/3.17.5 PETSC_ARCH=linux-opt install
完成后需要将路径添加到系统的环境变量~/.bashrc:
export PETSC_DIR=$HOME/2023-08/petsc/3.17.5
export PETSC_ARCH=linux-opt
(2)libMesh的安装
tar -xvf libmesh-1.6.2.tar.gz
cd libmesh1.6.2
mkdir objs-debug
cd objs-debug
编译安装Opt版而非debug版:
../configure --prefix=/home/w/2023-08/ibamr/sfw/linux/libmesh-1.6.2/1.6.2-opt --with-methods=opt \
CC=/home/w/2023-08/openmpi/bin/mpicc \
CXX=/home/w/2023-08/openmpi/bin/mpicxx \
FC=/home/w/2023-08/openmpi/bin/mpif90 \
F77=/home/w/2023-08/openmpi/bin/mpif90 \
--with-mpi=/home/w/2023-08/openmpi \
--with-petsc=/home/w/2023-08/ibamr/sfw/linux/3-17-5 \
--enable-exodus \
--enable-triangle \
--enable-petsc-required \
--disable-boost \
--disable-eigen \
--disable-hdf5 \
--disable-openmp \
--disable-perflog \
--disable-pthreads \
--disable-tbb \
--disable-timestamps \
--disable-reference-counting \
--disable-strict-lgpl \
--disable-glibcxx-debugging \
--disable-vtk \
--with-thread-model=none
注意,在执行这一步之前,需要将此前已经安装好的petsc安装目录中的linux-opt/include/petscversion.h
头文件中第三行:
#include <petscconf.h>
替换为本地的petscconf.h
文件路径:
#include "/home/w/2023-08/ibamr/sfw/linux/3-17-5/linux-opt/include/petscconf.h"
否则编译器无法找到该文件,会给出如下报错:
checking /home/w/2023-08/ibamr/sfw/linux/petsc/linux-opt/include/petscversion.h usability... no
...
configure: error: *** PETSc was not found, but --enable-petsc-required was specified.
configure完成后,执行:
make -j4
make -j4 install
(3)在上述工作完成后,按照官网的 Compiling IBAMR with CMake 部分内容完成 IBAMR的编译。