Ubuntu18.04 环境下安装 OpenFOAM-v2006 + PETSc 3.13.2
1. 安装OpenFOAM-v2006
OpenFOAM-v2006 petsc-3.13.2 ThirdParty-v2006
均可以从相应的官网上获取。
3个安装包解压完成之后,设置环境变量:
vi ~/.bashrc
alias of2006="source ~/of2006/OpenFOAM-v2006/etc/bashrc"
然后命令行输入 of2006
加载OpenFOAM-v2006环境。
进入OpenFOAM-v2006
文件夹,并行编译,大约需要几小时:
Allwmake -j
编译完成后可以通过blockMesh
命令测试:
出现以上内容则说明编译安装OpenFOAM-v2006
完成。
2. PETSc-Foam debugging版本
将以下内容复制到 ThirdParty-v2006/makePETSC
文件中:
./configure
--with-64-bit-indices=0 \
--with-precision=double \
--prefix=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/petsc-git \
PETSC_ARCH=$WM_OPTIONS
其中的 PETSC_ARCH=$WM_OPTIONS
内容也可以先不添加,由系统默认生成。
然后执行指令:
./makePETSC
如果报错 f2cblaslapack
包未安装在指定的文件夹,则可以在 petsc-3.13.2
文件夹中执行指令:
./configure --with-cc=gcc --with-cxx=0 --with-fc=0 --download-f2cblaslapack --download-mpich
将 f2cblaslapack
下载下来,再保存到指定的文件夹,系统中已经安装mpi的可以删掉最后一条指令。
然后再按照提示给出的指令:
make PETSC_DIR=... PETSC_ARCH=... all
make PETSC_DIR=... PETSC_ARCH=... install
完成petsc的安装。
接下来,加载安装时指定的路径:
export PETSC_DIR = ... PETSC_ARCH=...
然后在OpenFOAM-v2006/etc/config.sh/petsc
中修改环境变量,路径就是PETSC_ARCH
的路径:
export PETSC_ARCH_PATH=...
然后进入文件夹:
OpenFOAM-v2006/modules/external-solver
执行指令:
./Allwmake --prefix=openfoam
如果编译成功的话,则会在 OpenFOAM-v2006/platforms/linux64GccDPInt32Opt/lib
文件夹中找到 libpetscFoam.so
。
3. PETSc-Foam no–debugging版本
mo–debugging版本与debugging版本在安装上的唯一不同之处就是,在ThirdParty-v2006/makePETSC
中增加的内容:
./configure
--with-64-bit-indices=0 \
--with-precision=double \
--with-debugging=0 \
--COPTFLAGS=-O3 \
--CXXOPTFLAGS=-O3 \
--FOPTFLAGS=-O3 \
--prefix=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/petsc-git \
PETSC_ARCH=$WM_OPTIONS \
--download-openblas \
--with-fc=0 \
--with-mpi-dir=$MPI_ARCH_PATH
其余过程均相同。
4. petsc-Foam的使用
每次使用前,输入如下命令,加载和测试环境变量:
of2006
export PETSC_DIR=/home/ubuntu/of2006/ThirdParty-v2006/petsc-3.13.2
export PETSC_ARCH=DPInt32
eval $(foamEtcFile -sh -config petsc -- -force)
foamHasLibrary -verbose petscFoam
看到终端输出如下信息,则可以使用:
Can load "petscFoam"
使用时,在system/controlDict
中添加如下代码,即可使用:
libs (petscFoam);
亲测可用:
参考网址:
https://develop.openfoam.com/modules/external-solver