mosaic-group/openfpm

GitHub: mosaic-group/openfpm

OpenFPM 是一个用于在异构并行计算机上构建可扩展粒子及粒子-网格模拟代码的开源科学计算框架。

Stars: 119 | Forks: 28

## OpenFPM:一个用于在并行计算机上运行粒子及粒子-网格代码的可扩展开源框架 ![OpenFPM.png](https://static.pigsec.cn/wp-content/uploads/repos/cas/18/1812cd4e1b2f39b8d773b5b2deab6f1f67ca57eea38b16b3d311cf2ffab98b9d.png) OpenFPM 是一个开源软件库,旨在帮助开发者在异构的共享内存和分布式内存并行计算机系统上,实现可扩展的粒子及混合粒子-网格模拟代码。 该库的功能特性包括: * 适用于异构计算系统的可扩展串行和并行数据结构,支持现有的 CPU 和 GPU 加速硬件 * 用于粒子方法线性微分离散化的算子,例如 DC-PSE、SPH * 粒子-网格和网格-粒子插值方案 * 用于高效粒子方法模拟的数据结构,例如 Cell-List、Verlet-List * 支持 CPU 和 GPU 的稀疏网格 * 支持 [PETSc](https://petsc.org/)、[Eigen](https://eigen.tuxfamily.org/index.php) 线性代数后端 * 支持基于 [Boost.Numeric.Odeint](https://www.boost.org/doc/libs/1_82_0/libs/numeric/odeint/doc/html/index.html) 的 ODE 积分算子 * 通过 [Algoim](https://algoim.github.io) 实现 Level-set 公式 * GPU 执行后端包括 [CUDA](https://developer.nvidia.com/cuda-toolkit)、[HIP](https://rocm.docs.amd.com/projects/HIP/en/latest/)、[OpenMP](https://www.openmp.org/)、[alpaka](https://alpaka.readthedocs.io/en/latest/) * ……以及其他许多功能 ## 安装 我们支持 MacOS、Linux 以及 Windows 的 Linux 子系统 (Windows subsystem for Linux)。 如需安装,请参考网站上关于[如何从源码构建](http://openfpm.mpi-cbg.de/building/)的说明 ## 示例与文档 示例和文档可在[网站](http://openfpm.mpi-cbg.de/news/)、[在线 Doxygen 文档](http://ppmcore.mpi-cbg.de/doxygen/openfpm/index.html)以及 `example` 文件夹中找到。 示例代码涵盖了基于离散项的代码(例如 Lennard-Jones 分子动力学)以及连续时间和/或空间模拟(例如反应-扩散-平流方程): * SPH 公式下弱可压缩 Navier-Stokes 方程的溃坝模拟 * 使用稀疏网格 level-set 公式的扩散热传导 * 3D Active Fluid 模拟 * 3D Gray-Scott 反应系统 * 求解不可压缩 Navier-Stokes 方程的混合粒子-网格涡度法 * ……以及其他示例
标签:C++, Vectored Exception Handling, 安全工具测试, 并行计算, 数据擦除, 科学计算, 粒子模拟, 高性能计算