天河二号编译openfoam2006+petsc

本文详细介绍了如何在天河二号超级计算机上安装和编译OpenFOAM-v2006及PETSc-3.13.2。首先确保编译环境和配置一致,然后分别编译OpenFOAM和PETSc,接着将PETSc链接到OpenFOAM。关键步骤包括修改配置文件、加载模块、编译第三方库和OpenFOAM,最后验证编译成功。整个过程需特别注意编译环境的一致性和配置文件的正确设置。
摘要由CSDN通过智能技术生成

1 前期准备

openfoam V2006提供了petsc的接口,通过链接可以在openfoam矩阵求解器中调用petsc的求解算法,极大地丰富了openfoam中可用的求解算法,并可以通过对petsc中算法进行优化,对于大规模并行问题是很好地一个解决方式。
本文主要介绍在天河二号超级计算机上的安装方式:
安装需要:
openfoam V2006
petsc-3.13.2(3.10版本以上即可)
准备:
OpenFOAM-v2006.tgz
ThirdParty-v2006.tgz
petsc-lite-3.13.2.tar.gz在这里插入图片描述

安装注意点:
在链接petsc时,需要用petsc编译OpenFOAM中的petscFoam求解器,因此需要对OpenFOAM编译时采用的编译配置和petsc的编译配置必须保持完全一致!!!

2 编译OpenFOAM-V2006

编译系统:gcc/5.4.0+mpich 3.2
本文中路径均需要对照自己相应文件路径

2.1 加载编译环境:

module load MPI/Gnu/MPICH/3.2-gcc5.4.0-dyn
module load gcc/5.4.0

在天河二号上编译需要手动去修改配置文件

路径:OpenFOAM-v2006/etc/
修改配置文件:

vi bashrc

#设置编译器:采用gcc的编译器
export WM_COMPILER=Gcc

#设置mpi版本 采用mpich
export WM_MPLIB=MPICH

之后需要去设置mpich的版本
路径:OpenFOAM-v2006/etc/config.sh/
修改配置文件:

vi mpi

#设置MPICH的设置
MPICH)
#采用mpich-3.2
	export FOAM_MPI=mpich-3.2
#天河二号上采用module load 的app均在/WORK/app路径下,可以去找到相应路径
    export MPI_ARCH_PATH=/WORK/app/MPI/Gnu/MPICH/3.2-gcc5.4.0-dyn
    export MPI_HOME=$MPI_ARCH_PATH

    # Could be sourced from ThirdParty with incomplete environment
    if command -v _foamAddLibAuto >/dev/null  # Normal sourcing
    then
        _foamAddPath    $MPI_ARCH_PATH/bin
        _foamAddMan     $MPI_ARCH_PATH/share/man
        _foamAddLib     $MPI_ARCH_PATH/lib
        _foamAddLibAuto $MPI_ARCH_PATH  lib$WM_COMPILER_LIB_ARCH
    fi
    ;;

除此之外还需要去修改第三方库中的makeMPICH
路径:/ThirdParty-v2006/
修改配置:

vi makeMPICH

MPI_SOURCE_DIR=$sourceBASE/$mpiPACKAGE
MPI_ARCH_PATH=$installBASE/$mpiPACKAGE

#加载mpich的lib文件
if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi$EXT_SO" ]
then
    echo "Already has shared library"
elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ]
then

更新配置文件

source /OpenFOAM-v2006/etc/bashrc

之后对第三方库ThirdParty-v2006进行编译 ./Allwmake
对OpenFOAM-v2006进行编译:

./Allwmake

等待编译结束,此时OpenFOAM-v2006编译完成。

source /OpenFOAM-v2006/etc/bashrc
#可验证是否编译完成
checkMesh

3编译petsc-3.13.2

3.1加载安装依赖库和编译器:

#编译环境必须与OpenFOAM保持完全一致
module load MPI/Gnu/MPICH/3.2-gcc5.4.0-dyn
module load gcc/5.4.0
module cmake/3.8.1
#加载依赖库
#在加载blas依赖时,切记一定不能是icc版本,比如 BLAS/3.5.0-icc15,lapack库同样,部分可能需要加载python
module load BLAS/3.5.0 
module load LAPACK/3.8.0-gcc-5.4.0

之后对petsc配置并编译:

#配置petsc:
./configure
#配置PESTC_DIR 和 PETSC_ARCH
export PETSC_DIR=/petsc-3.13.2
export PETSC_ARCH=test
#编译PETSC
make all

此时petsc-3.13.2中,会存在test的文件夹,包含lib等一系列文件

4 OpenFOAM链接petsc

设置配置文件:
路径均需对照自己编译实际路径

cd /OpenFOAM-v2006/etc/config.sh/
vi petsc

#设置petsc配置
petsc_version=petsc-3.13.2
export PETSC_ARCH_PATH="/petsc-3.13.2/test"

#设更新配置文件
source /OpenFOAM-v2006/etc/bashrc

进入求解器文件进行编译petscFOAM

cd /OpenFOAM-v2006/modules/external-solver

#编译
./Allwmake --prefix=openfoam
#编译完成后,会提示成功生成petscFOAM
cd   /OpenFOAM-v2006/platforms/linux64GccDPInt32Opt/lib
#在上述路径下,存在文件
libpetscFoam.so

此时编译链接成功,实际使用中,需注意不能在终端直接执行相应求解器,需要采用 yhrun

其余使用可参考上篇博客
https://blog.csdn.net/zhaoyunye01/article/details/110072554

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值