Linux下SPHinXsys源码编译安装及使用

目录

软件介绍

基本依赖

一、源码下载

二、安装依赖库

1、BLAS

2、LAPACK

3、oneTBB

4、googletest

5、Boost

6、Simbody

7、pybind11

8、Eigen3

三、解压缩

四、编译安装


软件介绍

        SPHinXsys是胡湘渝博士团队采用C/C++开发的一个开源无网格、多分辨率、多物理场、光滑粒子动力学SPH库。软件基于平滑粒子流体动力学(SPH),一种使用粒子离散化和AI感知的无网格计算方法对耦合工业动态系统进行建模和优化,包括流体、固体、多体动力学、化学反应、扩散等优化算法。所有公式都基于统一的SPH框架,因此所有的物理过程都实现了强耦合,且可以同时进行模拟和优化过程。

基本依赖

1、编译工具

        ① GNU(gcc 11.2.0)

        ② Cmake、Make编译工具

2、第三方库

       ① BLAS(版本:OpenBLAS 0.3.10)

       ② Lapack(版本:3.8.0)

       ③ oneTBB(版本:2022.1.0)

       ④ googletest(版本:1.17.0)

       ⑤ Boost(版本:1.88.0)

       ⑥ Simbody(版本:3.7.0)

       ⑦ pybind11(版本:2.13.6)

       ⑧  Eigen3(版本:3.4.0)

一、源码下载

        软件完全开源,最新版本为V1.2,可以通过下面的链接进行源码访问。

GitHub - Xiangyu-Hu/SPHinXsys: SPHinXsys provides C++ APIs for engineering simulation and optimization. It aims at complex systems driven by fluid, structure, multi-body dynamics and beyond. The multi-physics library is based on a unique and unified computational framework by which strong coupling has been achieved for all involved physics.https://github.com/Xiangyu-Hu/SPHinXsys        相关资料及软件进展可访问官网↓

SPHinXsys: an open-source SPH multi-physics libraryhttps://www.sphinxsys.org/        ①可在终端通过git获取源码:

git clone https://github.com/Xiangyu-Hu/SPHinXsys SPHinXsys

        ②也可在github网站获取源码:

二、安装依赖库

        为方便第三方库管理和链接,可以单独创建一个文件夹ThirdParty用于安装依赖库,例如其路径为:/home/user/software/ThirdParty

1、BLAS

        下载openBLAS源码↓

https://github.com/xianyi/OpenBLAShttps://github.com/xianyi/OpenBLAS

        安装流程可参考:

linux平台OpenBLAS编译和安装简介_linux openblas-优快云博客https://blog.youkuaiyun.com/xzzppp/article/details/69633789        安装完毕,如下所示。

2、LAPACK

        下载LAPACK源码↓

http://www.netlib.org/lapack/lapack-3.8.0.tar.gzhttp://www.netlib.org/lapack/lapack-3.8.0.tar.gz

        按照下面顺序依次执行命令: 

wget http://www.netlib.org/lapack/lapack-3.8.0.tar.gz

tar -zxvf lapack-3.8.0.tar.gz

cd lapack-3.8.0

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/home/user/software/ThirdParty/lapack-3.8.0 ..

make

make install

         安装完毕,如下所示。

3、oneTBB

        下载oneTBB源码↓

https://github.com/uxlfoundation/oneTBBhttps://github.com/uxlfoundation/oneTBB

         按照下面顺序依次执行命令: 

wget https://github.com/uxlfoundation/oneTBB/archive/refs/tags/v2022.1.0.tar.gz

tar -zxvf v2022.1.0.tar.gz

cd v2022.1.0

cmake --build . --config Release

cmake --install /home/user/software/ThirdParty/oneTBB-2022.1.0 

        安装完成,如下所示。

4、googletest

        下载googletest源码↓

Release 1.17.0 · google/googletest · GitHubhttps://github.com/google/googletest/releases/tag/v1.17.0

           按照下面顺序依次执行命令: (注意,这里需要再cmake的时候添加-DCMAKE_POSITION_INDEPENDENT_CODE=ON开启-fPIC,不然的话,在编译SPHinXsys时会报.rodata错

git clone https://github.com/google/googletest?tab=readme-ov-file gooletest-1.17.0

cd gooletest-1.17.0

mkdir build

cd build

cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/home/user/software/ThirdParty/googletest-1.17.0 ..

make

make install

         安装完成,如下所示。

5、Boost

        下载Boost源码↓

Boost 1.88.0https://www.boost.org/releases/1.88.0/

         按照下面顺序依次执行命令: 

tar -zxvf boost_1_88_0.tar.gz

cd boost_1_88_0

./bootstrap.sh --prefix=/home/user/software/ThirdParty/Boost-1.88.0

./b2 install

        安装完成,如下所示。

6、Simbody

       这里需要下载3.7版本的Simbody,3.8版本不兼容。

       下载Simbody源码↓

https://github.com/simbody/simbody/archive/refs/tags/Simbody-3.7.tar.gzhttps://github.com/simbody/simbody/archive/refs/tags/Simbody-3.7.tar.gz

         按照下面顺序依次执行命令: 

tar -zxvf simbody-Simbody-3.7.tar.gz

cd simbody-Simbody-3.7

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/home/user/software/ThirdParty/Simbody-3.7 -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=ON ..

make

make install

        安装完成,如下所示。

7、pybind11

        下载pybind11源码↓

GitHub - pybind/pybind11: Seamless operability between C++11 and Pythonhttps://github.com/pybind/pybind11

        按照下面顺序依次执行命令:

git clone https://github.com/pybind/pybind11 pybind11

cd pybind11

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/home/user/software/ThirdParty/pybind11-2.13.6 ..

make

make install

        安装完成,如下所示。

8、Eigen3

        下载Eigen3源码↓

Eigenhttps://eigen.tuxfamily.org/index.php?title=Main_Page

        按照下面顺序依次执行命令:

tar -zxvf eigen-3.4.0.tar.gz

cd eigen-3.4.0

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/home/user/software/ThirdParty/eigen-3.4.0 ..

make install

        安装完成,如下所示。

三、解压缩

           如果是通过第二种方式下载的软件压缩包,可以通过下面命令解压缩:

unzip SPHinXsys-master.zip

四、编译安装

        1、配置环境变量

        安装好所有的依赖库之后,需要创建一个环境变量文件,方便后续编译。这里我们创建一个env.sh文件,主要用于配置所有依赖库的安装路径。内容如下:

#!/bin/bash

export TBB_DIR=/home/user/software/ThirdParty/oneTBB-2022.1.0/usr/local
export GTest_DIR=/home/user/software/ThirdParty/googletest-1.17.0
export Boost_DIR=/home/user/software/ThirdParty/boost-1.88.0
export Simbody_DIR=/home/user/software/ThirdParty/simbody-3.7.0
export pybind11_DIR=/home/user/software/ThirdParty/pybind11-2.13.6
export Eigen3_DIR=/home/user/software/ThirdParty/eigen-3.4.0
export BLAS_DIR=/home/user/software/ThirdParty/openblas-0.3.10
export LAPACK_DIR=/home/user/software/ThirdParty/lapack-3.8.0

        写好env.sh之后,使用source命令进行配置。

source env.sh

        2、编译

        使用下面命令进行build:

cd sphinxsys

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -S. -B ./build

        3、安装

cmake --build ./build

        4、测试

        安装完成后,会在build文件夹下生成tests文件夹,里面包含已经编译好的官方的算例。如下所示:

        我们使用3d溃坝流进行测试,按照下面的顺序执行:

cd tests

cd 3d_examples

cd test_3d_dambreak_elastic_plate_shell

cd bin

./test_3d_dambreak_elastic_plate_shell

        5、后处理

        计算完成后,会在当前路径下生成三个文件夹:output、reload、restart。其中output用于存储计算结果文件。

        使用Paraview进行结果后处理。

SPHinXsys-3D溃坝流(薄板)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猿核试Bug愁

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值