# Conclusion of Fast Multipole Method **Repository Path**: Misaka19998/Conclusion-of-Fast-Multipole-Method ## Basic Information - **Project Name**: Conclusion of Fast Multipole Method - **Description**: 对网上能找到的FMM库进行整理,翻译了一些说明文档,添加了自己研究和开发遇到的各种坑。 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-05-31 - **Last Updated**: 2024-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Conclusion of Fast Multipole Method #### 介绍 对网上能找到的FMM库进行整理,翻译了一些说明文档,添加了自己研究和开发遇到的各种坑。 各种与快速多极算法相关的论文:https://zhuanlan.zhihu.com/p/32247547,这个知乎大佬说的非常好。 关于N体问题:庞加莱在1890年的论文Sur le probleme des trois corps et les equations de la dynamique Divergence des series de M. Lindstedt FMM基础理论:1987年https://doi.org/10.1016/0021-9991(87)90140-9 高性能实现: ExaFMM:https://github.com/exafmm/exafmm PVFMM:https://github.com/dmalhotra/pvfmm #### 软件架构 核心的计算代码来自ExaFMM(https://github.com/exafmm/exafmm)在这里进行了魔改,添加了计算实际问题的代码,并改写了多个可用的python画图程序 #### 安装教程 1. git clone https://gitee.com/Misaka19998/Conclusion-of-Fast-Multipole-Method.git 使用这里提供的魔改版_ 或者找到原版git clone https://github.com/exafmm/exafmm 2. cd exafmm 3. ./configure --prefix=自己想要的位置 && make && make install #### 原版使用说明 1. kernels是核心的计算代码 2. include是包括并行、读写在内的多种功能实现的头文件 3. tests中包含了对各种计算核心、建树、遍历八叉树的功能。 4. 其他文件夹都是用来自动安装的 #### 魔改版使用说明 1. 加入了python 3 的多种绘图程序 2. 分析了所有的子函数的功能 3. 提供了几个可以直接计算短时间内N体分布的程序 4. 对于我的本科论文使用的图片,将部分原始数据贴在此处 #### 注意事项 1. 这是一个很有趣的算法,可以看看推荐论文再研究 2. 不保证我提供的魔改程序没有问题,因为很多时候没有实测数据验证计算是否正确;同时N体问题受初值影响极大,有很严重的混沌现象,只要初始值是随机值,其结果基本上都是不可以完全复现的。 3. include头文件的时候,不少几个头文件都会冲突,建议看过说明文档再用。