【Dust耦合preCICE模块Linux-centos7.9最全离线编译安装】

Dust耦合preCICE模块Linux-centos7.9离线编译安装


本编内容主要讲解在Linux-Centos7.9系统下,Dust软件增加PreCICE这一重要模块的详细编译安装过程,前期基本安装及所需的三方库软件都已默认安装,主要进行preCICE功能模块编译安装的过程讲解。如需了解DUST软件基本安装步骤请看作者另一个篇文章:
Dust_linux-centos7.9CAE软件离线编译安装

一、★Dust软件定义

DUST是解决空气动力学问题的一种新颖、灵活的解决方案。旨在为复杂构型的空气动力学问题提供价格合理、可靠的解决方案。DUST专注于输入、几何定义、移动和解决方案阶段的可扩展性和灵活性,使用户能够分析具有不断增加和可扩展保真度的各种配置.

二、★Precice库定义

preCICE是用于分区多物理模拟的开源耦合库,包括但不限于流体-结构相互作用和共轭传热模拟。分区意味着preCICE将能够模拟模拟中涉及的完整物理的一个子部分的现有程序/求解器耦合起来。这允许为复杂的多物理场景留出适当的解决时间所需的高度灵活性。该软件为瞬态方程耦合、通信和数据映射提供了方便的方法。它的主要组件是一个库,模拟程序可以使用该库以分区方式耦合在一起,从而实现多物理模拟,例如流体-结构相互作用。

三、★安装环境介绍

  • Linux系统:centos7.9离线(已配置离线YUM源)
    Centos7.9_YUM源离线配置链接
  • 权限说明:具有root或sudo权限
  • 编译器版本:GNU7.5.0
  • MPI版本:openmpi4.1.1
  • 数学库:lapack lapack-devel
  • 三方依赖软件:hdf5-1.12.2.tar.gz CGNS-4.3.0.tar.gz precice-2.5.0.tar.gz python-3.6.8
  • 主程序版本:dust-0.8.0-b.tar.gz

DUST软件最新源码包及依赖三方库源码包下载链接

四、★三方库依赖编译

注意! 以下编译过程,全程调用的GNU编译器版本都是7.5版本,在整个编译的过程中要时刻确定是否使用的是GCC7.5版本,特别注意如果你有openmpi4并行库,请确定是否是在GCC7.5下编译生成的,否则在后续preCICE依赖包编译和DUST编译过程中会出函数没有被定义等错误

4.1 openmpi4编译安装

此篇openmpi4使用GCC7.5编译,并加载到当前编译环境,具体详细编译过程请看作者另一篇文章:
OpenMPI_linux-centos7.9系统源码编译安装调用

4.2 hdf5编译安装
# 软件版本:hdf5-1.12.2.tar.gz 
tar -zxvf hdf5-1.12.2.tar.gz
cd hdf5-1.12.2
./configure --prefix=指定安装的绝对路径 \
--enable-fortran \
--enable-shared \
--enable-parallel
make
make install
# 导入hdf5环境
echo -e "#hdf5_env\nHDF5_ROOT=指定上面hdf5的安装路径" >> ~/.bashrc
echo -e 'export PATH=$HDF5_ROOT:$PATH' >> ~/.bashrc
echo -e 'export PATH=$HDF5_ROOT/bin:$PATH' >> ~/.bashrc
echo -e 'export LD_LIBRARY_PATH=$HDF5_ROOT/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
4.3 cgns编译安装
# 软件版本:CGNS-4.3.0.tar.gz
tar -zxvf CGNS-4.3.0.tar.gz
cd CGNS-4.3.0
mkdir build;cd build
CC=mpicc CXX=mpicxx FC=mpif90 \
cmake .. -DCGNS_ENABLE_FORTRAN=ON \
-DCGNS_ENABLE_HDF5=ON \
-DCMAKE_INSTALL_PREFIX=指定cgns安装路径
make
make install
# 导入CGNS环境
echo -e 'export CGNS_DIR=指向cgns安装路径' >> ~/.bashrc
echo -e 'export LD_LIBRARY_PATH=$CGNS_DIR/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

本篇HDF5编译的是并行版本,所以依赖HDF5的CGNS对应的也是并行版本,绑定的并行库都是openmpi4.1.1,如果HDF5并行版本编译出错,去掉参数–enable-parallel重新编译,也不影响下面编译过程。

五、★preCICE编译安装

注意! Centos7系统下安装precice-2.4.0/precice-2.5.0源码包没有bug问题,作者使用preCICE2.5.0版本编译:需要依赖boost(最低版本1.71.0),eigen3(最低版本3.1.0),libxml2,PETSc(最低版本3.12),numpy。本篇中Precice, PETSc, boost要使用同一版本的OpenMPI4.1.1 版本

5.1 boost编译安装
# 软件版本:boost_1_79_0.tar.gz
tar -zxvf boost_1_79_0.tar.gz
cd boost_1_79_0
CC=mpicc CXX=mpicxx FC=mpif90 ./bootstrap.sh \
--with-libraries=log,thread,system,filesystem,program_options,test --prefix=指定boost安装路径
./b2
./b2 install
# 导入boost环境
echo -e 'export BOOST_ROOT=指向boost源码包路径' >> ~/.bashrc
echo -e 'export LD_LIBRARY_PATH=$BOOST_ROOT/stage/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
5.2 Eigen3编译安装
# 软件版本:eigen-3.4.0.tar.gz
tar -zxvf eigen-3.4.0.tar.gz
cd eigen-3.4.0
mkdir build;cd build
cmake .. -DCMAKE_INSTALL_PREFIX=指定eigen安装路径
make install
5.3 libxml2 离线YUM安装
# 软件版本:libxml2-2.9.1 libxml2-devel-2.9.1
sudo yum install -y libxml2 libxml2-devel
5.4 petsc编译安装
# 软件版本:petsc-3.15.tar.gz
tar -zxvf petsc-3.15.tar.gz
cd petsc-3.15.5
./configure --prefix=指定petsc安装路径
make PETSC_DIR="会自动写入" PETSC_ARCH="arch-linux2-c-debug" all
make PETSC_DIR="会自动写入" PETSC_ARCH="arch-linux-c-debug" install
make PETSC_DIR="会自动写入" PETSC_ARCH="arch-linux-c-debug" check
# pets环境导入
echo -e 'export PETSC_DIR=指向petsc安装路径' >> ~/.bashrc
echo -e 'export PETSC_ARCH=arch-linux-c-debug' >> ~/.bashrc
echo -e 'export LD_LIBRARY_PATH=$PETSC_DIR/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
5.5 numpy离线YUM安装
# 软件版本:numpy-1.19.5
sudo pip3 install pip-21.3.1-py3-none-any.whl
sudo pip3 install numpy-1.19.5-cp36-cp36m-manylinux2010_x86_64.whl
pip3 list | grep numpy # 查看是否安装

注意! numpy-1.19.5的安装包需要先从网上下载后导入到离线系统中进行安装,由于依赖的关系,同时需要下载pip-21.3.1依赖包进行安装,本篇的第三节中也有完整的安装包下载链接。

5.6 preCICE编译安装
# 软件版本:preCICE-2.5.0 
tar -zxvf precice-2.5.0.tar.gz
cd precice-2.5.0
mkdir build;cd build
CC=mpicc CXX=mpicxx FC=mpif90 \
cmake .. -DCMAKE_INSTALL_PREFIX=指定precice安装路径\
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS=ON \
-DBoost_INCLUDE_DIR=指向boost头文件路径 \
-DEIGEN3_INCLUDE_DIR=指向eigen3头文件路径
make -j 4
make install
# 导入preCICE环境
echo -e 'export PRECICE_DIR=指向precice安装路径' >> ~/.bashrc
echo -e 'export LD_LIBRARY_PATH=$PRECICE_DIR/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

注意! 由于依赖库比较多,环境的导入也比较繁琐,请在导入环境的时候仔细确认路径、书写等不必要的错误。当出现问题的时候,仔细查看出错提示。

六、★DUST编译安装

# 软件版本:dust-0.8.0-b.tar.gz
tar -zxvf dust-0.8.0-b.tar.gz
cd dust-0.8.0-b
mkdir build;cd build
CC=mpicc CXX=mpicxx FC=mpif90 \
cmake .. -DCMAKE_INSTALL_PREFIX=指定dust安装路径 \
-DPRECISION=DOUBLE -DWITH_PRECICE=YES \
-DCGNS_INC=指向CGNS安装头文件路径 \
-DCGNS_LIB=指向CGNS安装库文件路径 \
-DPRECICE_INC=指向precice安装头文件路径 \
-DPRECICE_LIB=指向precice安装库文件按路径
make
# 导入dust环境
echo -e 'export PATH=指向dust安装路径/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

注意 这里不需要运行命令make install ,安装好的可执行文件就在当前安装目录下bin的面,如果需要指定安装路径就在cmake最后追加参数-DCMAKE_INSTALL_PREFIX=指定dust安装路径。

编译完成后会生成:前后处理和求解器三个可执行目标——dust_pre dust_post dust

七、★最后

以上内容都是经过实战验证过的,整个编译过程最重要的就是保证GNU编译器和openmpi的编译环境统一,不要在编译过程中使用不同的版本(有的时候可能自己都不知道环境已经改变),导致不必要的编译错误。
(●’◡’●) 最后感谢屏幕另一端的你,强有力的支持。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyq_龙呆呆

投桃报李

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值