SPH算法简介(四):Hello,SPH
SPH算法简介(四):Hello,SPH
2011年04月2日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基本的运算流程
- 初始化粒子,为每个粒子赋上初始位置
- 根据公式3.7计算每个粒子的密度
- 根据公式3.10计算每个粒子的压强
- 根据公式3.18计算每个粒子的加速度
- 根据临界条件调整加速度
- 根据加速度计算每个粒子的速度变化
- 根据速度计算粒子位置的变化
- 绘制粒子
- 回到步骤2
下面有个简单的示例程序,运行效果如下
这个程序基本上没有怎么考虑效率,只是让系统跑起来,所以比较适合拿来对照公式学习,按照惯例,放出源代码和可执行程序
源码下载:fluid_src.zip(394KB)
Update(2011-04-07): 更新,去掉了工程文件里对CUDA的引用,感谢网友提醒
源码下载:fluid_source.zip(395KB)
可执行程序下载: fluid.zip(120KB)
SPH还有很多细节值得讨论,比如表面张力、并行计算、构建网格、真实材质的水渲染等,这些部分我会抽时间再写一些东西出来介绍。
转载自:http://www.thecodeway.com/blog/?p=1778
SPH算法简介(四):Hello,SPH相关推荐
- SPH算法简介: 对我的启蒙
转自: https://thecodeway.com/blog/?p=83 https://thecodeway.com/blog/?p=139 https://thecodeway.com/blog ...
- SPH算法简介(一): 数学基础
SPH算法简介(一): 数学基础 2011年03月30日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com SPH(Smoothed Particle Hydrodyna ...
- SPH算法简介(二): 粒子受力分析
SPH算法简介(二): 粒子受力分析 2011年03月31日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com SPH算法的基本设想,就是将连续的流体想象成一个个 ...
- SPH算法简介(四): Hello, SPH
[原文链接:https://thecodeway.com/blog/?p=204] 上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基 ...
- SPH算法简介(三): 光滑核函数
[原文链接:https://thecodeway.com/blog/?p=161] 补充数学知识:标量对于向量求梯度,即以向量的模为未知量求梯度的结果乘以一个向量的单位向量 和其他流体力学中的数学方法 ...
- SPH算法(求最小代价树)
一.sph算法简介 1.最小代价树算法 SPH算法也叫做MPH( minimum path heuristic)算法, 用于构造时延约束最算法小代价组播树. 该算法中每 个目的结点通过与当前组播树有最 ...
- SPH算法的理论和实践(2)
2单流体SPH算法实现 经过前一章的介绍,知道了SPH算法的原理,这一章我们介绍SPH算法的代码具体实现 2.1算法框架 SPH算法的思想是用粒子来模拟流体,其中粒子承载了各种属性(如 位置.速度.加 ...
- SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(4)-算法实现1
流体模拟(二) SPH算法实现1: 由于我们计算每个粒子的状态时,都需要获得在它光滑核半径内(邻域内)的所有粒子信息.我们如果遍历每个粒子,计算欧式距离的话,那开销就过于庞大了.因此我们可以将我们的空 ...
- SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(4)-算法实现2
流体模拟(二) SPH算法实现2: 在前面一节我们完成了粒子缓存类,网格类和邻接表类.我们现在可以正式的整合在我们的流体系统类中了. 流体系统类 class FluidSystem{public:Fl ...
最新文章
- 【ubuntu】在ubuntu下无法输出拼音输入法中的中括号“【” 和 “】”的解决方法
- 漫画:什么是 “建造者模式” ?
- 17.观察者模式(Observer Pattern)
- 在新的固态硬盘只装ubuntu16.04系统,重启后无启动项解决方案
- 排序算法之冒泡排序(JAVA)
- 用户空间与内核空间,进程上下文与中断上下文[总结]【转】
- SENT协议(SAE-J2716)
- 实验六 Linux下文件程序设计
- php office 在线预览,在线预览pdf和Office文档
- 移动手机号服务密码重置
- IsKindOf的用法简介
- 算法策略 | MACD跨周期短线交易策略开发(股指+商品双版)
- 屏幕录制专家linux版,Linux平台好用的十款屏幕录制工具
- 三次方程求根公式例子
- 任务型对话(二)—— DST(对话状态追踪)
- 异常:Incorrect result size: expected 1, actual 0
- 将yolov5的detect.py改写成可以供其他程序调用的方式,并实现低时延(<0.5s)直播推理
- 戴尔微型计算机电池位置,DELL 戴尔Latitude 5480拆机换电池
- MATLAB图形加标注的基本方法入门简介
- 骁龙8cxgen3相当于英特尔多少 骁龙8cxgen3性能