Repolode
InteractiveComputerGraphics

InteractiveComputerGraphics/SPlisHSPlasH

基于光滑粒子流体动力学(SPH)的开源 C++ 流体物理仿真库,提供 Python 绑定和命令行工具。

Star
1,957
Fork
344
未关闭 Issue
17
最近提交
10天前

这是什么?

SPlisHSPlasH 是一个基于光滑粒子流体动力学(SPH)的流体仿真库。SPH 是一种无网格的拉格朗日方法,每个粒子的物理量只依赖其有限邻域内的粒子。库中实现了多种不可压缩流体的压力求解器(WCSPH、PCISPH、PBF、IISPH、DFSPH、PF),并提供黏性、表面张力和涡量的多种计算方法。

除纯流体外,它还支持刚体与流体耦合、与可变形固体的双向耦合、多相流以及拖曳力计算。场景通过 JSON 文件描述,结果可导出为 partio 或 VTK 格式,供 Maya、Blender 或 ParaView 使用。项目提供 `splash` 命令行仿真工具,以及面向 Windows 和 Linux 的 pip 可安装 Python 绑定(pysplishsplash)。

项目基于 CMake 构建,需要支持 C++11 的编译器。邻域搜索可在 CPU 或 GPU 上运行,并在可用时使用 AVX 向量化。

核心功能

  • 01提供 WCSPH、PCISPH、PBF、IISPH、DFSPH、PF 等不可压缩流体压力求解器
  • 02支持 2D 和 3D 仿真,邻域搜索可在 CPU 或 GPU 上运行
  • 03支持刚体与流体耦合以及流体与可变形固体的双向耦合
  • 04支持多相流仿真和拖曳力计算
  • 05通过 JSON 导入场景,并支持嵌入式 Python 脚本
  • 06可将粒子数据导出为 partio 和 VTK 格式

适用场景

  • 研究 SPH 压力求解器和流固耦合方法
  • 生成流体动画数据,导入 Maya、Blender 或 ParaView 进行渲染
  • 使用 pysplishsplash 绑定从 Python 编写流体场景

快速上手

  1. 1

    安装适用于 Windows 或 Linux 的预编译 Python 包

    pip install pysplishsplash
  2. 2

    运行命令行模拟器

    splash

使用前须知

  • 预编译的 Python 轮子仅提供给 Windows 和 Linux,且仅支持 Python 3.6-3.10。
  • 从源码构建需要 CMake 和支持 C++11 的编译器。

标签

#fluid-simulation#sph#physics-simulation#cpp#python-bindings#computer-graphics#deformable-solids#fluid-dynamics#fluids#multiphase-flow

常见问题

SPlisHSPlasH 是什么?
基于光滑粒子流体动力学(SPH)的开源 C++ 流体物理仿真库,提供 Python 绑定和命令行工具。 SPlisHSPlasH 是一个基于光滑粒子流体动力学(SPH)的流体仿真库。SPH 是一种无网格的拉格朗日方法,每个粒子的物理量只依赖其有限邻域内的粒子。库中实现了多种不可压缩流体的压力求解器(WCSPH、PCISPH、PBF、IISPH、DFSPH、PF),并提供黏性、表面张力和涡量的多种计算方法。
SPlisHSPlasH 可以免费使用吗?用的什么许可证?
SPlisHSPlasH 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
SPlisHSPlasH 还在维护吗?
活跃维护中。SPlisHSPlasH 最近一次提交是在 2026年10月28日。
SPlisHSPlasH 适合用来做什么?
研究 SPH 压力求解器和流固耦合方法 生成流体动画数据,导入 Maya、Blender 或 ParaView 进行渲染 使用 pysplishsplash 绑定从 Python 编写流体场景
SPlisHSPlasH 怎么安装和运行?
安装适用于 Windows 或 Linux 的预编译 Python 包: pip install pysplishsplash 运行命令行模拟器: splash
在哪里获取 SPlisHSPlasH?
源代码和安装说明在 GitHub 上:https://github.com/InteractiveComputerGraphics/SPlisHSPlasH

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目