文章目录
Rocstar CAE软件源码离线编译安装
本篇内容主要是介绍在linux-centos7.9系统中,离线编译Rocstar(多物理场仿真应用软件),以及在编辑过程中参数的设置,最后导入到系统环境中进行并行求解的内容。
一、★Rocstar定义
Rocstar 是一个多物理场仿真应用程序,设计用于耦合多物理场仿真,涉及跨移动、反应界面的流固耦合 (FSI)。Rocstar 结合了多个特定领域的仿真包和不同离散的领域,并提供多种仿真支持服务,包括保守和准确的数据传输、表面传播和并行 I/O。Rocstar 是 MPI 并行的。Rocstar 最初是在能源部 ASCI 项目资助下的伊利诺伊大学高级火箭模拟中心 (CSAR) 开发的。
二、★Rocstar编译环境
Linux系统:centos7.9离线(已配置离线YUM源)
Centos7.9_YUM源离线配置链接
编译器版本:GNU4.8.5/Intel_parallel_2020MPI版本:mpich2-1.4.1
数学库:lapack lapack-devel blas blas-devel
依赖软件:jpegsrc.v9e.tar.gz IMPACT metis hdf4-hdf-4_2_15
Rocstar源码包及对应的三方库源码包(IMPACT METIS)
注意! 并行库的选择,这里强烈建议使用mpich2-1.4.1版本,作者也尝试过很多版本和别的并行库,但是编译的时候都出现了函数功能库缺失的问题,主要原因是rocstar软件版本太老,无法适配新版本的并行库。
三、★Rocstar及依赖软件编译安装
3.1 Mpich2编译安装
详细编译过程请看作者另一篇文章:
3.2 jpeg编译安装
# 编译版本:jpegsrc.v9e.tar.gz
tar -zxvf jpegsrc.v9e.tar.gz
cd jpegsrc.v9e
./configure # 因为是常用图形格式软件包,这里没有指定安装路径,就使用系统的默认路径。
make
make install
3.3 hdf4编译安装
# 编译版本:hdf4-hdf-4_2_15.zip
unzip hdf4-hdf-4_2_15.zip
cd hdf4-hdf-4_2_15
mkdir build;cd build
CC=icc CXX=icpc FC=ifort \
cmake .. -DCMAKE_INSTALL_PREFIX=指定hdf4安装路径
make
make install
这里指定了使用intel的编译器进行编译,如果没有intel编译器,也可以使用系统自带的GNU编译器只需要修改 CC=gcc CXX=g++ FC=gfortran,后面的步骤也是同样的解决方法,就不再赘述了。但是整个编译过程最好使用同一种编译器。
3.4 IMPACT编译安装
# 编译版本:impact-2.1.4 本安装选择HDF4格式安装
unzip IMPACT-master.zip
cd IMPACT-master
mkdir build;cd build
CC=icc CXX=icpc FC=ifort cmake .. -DCMAKE_INSTALL_PREFIX=指定impack安装路径 \
-DBUILD_SHARED_LIBS=ON \
-DIO_FORMAT=HDF4 \
-DHDF4_INC=指定hdf4的安装路径/include \
-DHDF4_LIB=指定hdf4的安装路径/lib/libhdf.so \
-DMFHDF4_INC=指定hdf4的安装路径/include \
-DMFHDF_LIB=指定hdf4的安装路径/lib/libmfhdf.so
注意! 因为IMPACT编译存在调用的关系,所以上述的编译安装是有顺序的,如果打乱顺序会出现编译的时候找不到对应库的问题。
3.5 metis编译安装
# 编译版本:metis-4.0.3.tar.gz
tar -zxf metis-4.0.3.tar.gz
cd metis-4.0.3
CC=icc make
make clean
注意! metis的编译有一些特殊,由于源码直接由Makefile文件指定编译,所以最后不能使用make install进行安装,在运行make命令后,就会在当前文件夹下生成11个文件其中libmetis.a静态库就是我们需要的,当需要调用metis静态库的时候,就指定当前路径。
3.6 Rocstar主程序编译安装
# 编译版本:Rocstar-5.0.2
unzip Rocstar-master.zip
cd Rocstar-master
CC=icc CXX=icpc FC=ifort IMPACT_DIR=指定IMPACT安装路径 \
cmake .. -DCMAKE_INSTALL_PREFIX=指定rocstar安装路径 \
-DMETIS_LIB=指定metis库路径/libmetis.a
make
make install
四、★Rocstar运行
4.1 导入用户环境运行方式
# Rocstar编译的时候调用mpich2 intel编译器,所以在运行rocstar求解器的收,这些都应该导入到个人bashrc环境中
vim ~/.bashrc
# 导入mpich2并行库环境
export PATH=指定mpich2的安装路径/bin:$PATH
export LD_LIBRARY_PATH=指定mpich2的安装路径/lib:$LD_LIBRARY_PATH
# 导入intel编译器环境
source 指定intel编译器路径/compilers_and_libraries_2020.4.304/linux/bin/compilervars.sh intel64
source 指定intel编译器路径/compilers_and_libraries_2020.4.304/linux/mkl/bin/mklvars.sh intel64
# 导入Rocstar运行环境
export PATH=指定rocstar安装路径/bin:$PATH
export LD_LIBRARY_PATH=指定rocstar的安装路径/lib:$LD_LIBRARY_PATH
source ~/.bashrc # 执行立即生效命令,在任何路径都可以运行rocstar求解器
4.2 shell脚本运行方式
# 编译一个shell脚本run.sh,放在需要调用rocstar求解器的目录中,把所需环境写入shell脚本。
vim run.sh
export PATH=指定mpich2的安装路径/bin:$PATH
export LD_LIBRARY_PATH=指定mpich2的安装路径/lib:$LD_LIBRARY_PATH
source 指定intel编译器路径/compilers_and_libraries_2020.4.304/linux/bin/compilervars.sh intel64
source 指定intel编译器路径/compilers_and_libraries_2020.4.304/linux/mkl/bin/mklvars.sh intel64
export PATH=指定rocstar安装路径/bin:$PATH
export LD_LIBRARY_PATH=指定rocstar的安装路径/lib:$LD_LIBRARY_PATH
./rocstar
chmod +x run.sh # 给予脚本run.sh可执行权限
./run.sh # 运行脚本
五、★Rocstar并行调用
关于并行调用详细内容请看作者另一篇文章:Mpich_linux-centos7.9系统下编译安装调用中的第七节
六、★最后
以上内容都是经过实战验证过的,在编译过程中可能有些错误会不尽相同,这主要是由于每个人编译环境不同导致的,所以在编译开源CAE软件的过程中,应该首先搭配一个完善的编译环境,特别是离线编译,在后续我会编写如何从零开始搭建一个完善的离线编译软件环境。
(●’◡’●) 最后感谢屏幕另一端的你,强有力的支持。