基于光滑粒子流体动力学(SPH)的Python溃坝程序

 

上图为基于光滑粒子流体动力学(SPH)的Python溃坝程序图,Python程序点此下载  py-sph

1:本文为转发文章:原文地址:https://github.com/arachih/SPH_Fluid_Simulation#smoothed-particle-hydrodynamics-sph-simulation

2:程序概述

这是2D平滑粒子流体动力学(SPH)模拟的Python实现,用于模拟溃坝场景中的流体行为。该模拟使用SPH方法对二维域中的流体行为进行建模。它包括粒子特性、域维度、时间步长和其他特定于模拟的设置的参数。

3:运行说明

Python运行依赖项为numpy,matplotlib,pyvista,其中pyvista用于获取vtk输出,以使用ParaView来可视化流动。可以使用以下命令安装它们:pip安装numpy matplotlib pyvista

通过执行Python脚本运行模拟:python sph.py

4:相关文件介绍

4-1
acceleration.py: 该模块包含基于各种力和相互作用计算粒子加速度的函数。它考虑了重力、压力梯度和人工粘度来更新每个粒子的加速度分量。

4-2
boundary_conditions.py:文件定义了负责处理边界条件的函数。它确保与边界(如墙)相互作用的粒子发生非弹性碰撞,并适当地反射或投影,以保持模拟的完整性。

4-3
density_pressure.py 本模块中可以找到与计算粒子密度和压力相关的函数。它采用SPH方法根据相邻粒子的贡献来估计密度,并使用状态方程(EOS)来计算相应的压力。

4-4
euler.py:实现欧拉时间积分方案。它根据计算的加速度更新粒子的速度和位置。该方案用于以离散时间步长推进模拟。

4-5
hash_function.py:提供了HashFunction类,该类实现了空间哈希技术。它有助于有效地找到给定细胞内粒子的邻居,优化邻居搜索过程和整体模拟性能。

4-6
post.py:处理模拟结果的后处理任务。它生成PNG图像以可视化粒子分布,还生成VTK文件以使用Paraview等可视化工具进行进一步分析。

5:程序参数定义:

N:
粒子数

h:
平滑长度

edge:
壁面限制

width:
域宽度

height:
域高度

m:粒子质量

rho0:参考密度

c0:声速

alpha:粘度系数

gamma:Tait方程gamma

dt:时间步长

k: EOS系数

g:
重力加速度

final_time:最终模拟时间

frequency:图像的输出频率

vtk_freq:vtk文件的输出频率

visc:人工粘度

eps:
Epsilon值

bdry_reflec:边界非弹性碰撞的反射系数

bdry_proj_dist:将粒子推离边界的距离

此图为效果图,SPH流固耦合,看起来很炫,所以贴出来。

10-Human - Rag'N Bone'Man
00:00
  1. 1-夜舞黑崎子
  2. 2-Aloha Heja HeAchim Reichel
  3. 3-LargElgit Doda
  4. 4-Future FunkVarien
  5. 5-篇章张韶涵
  6. 6-一个人挺好孟颖
  7. 7-太阳照常升起久石让
  8. 8-LifelineZeraphym
  9. 9-Hang om migNanne Grönvall
  10. 10-HumanRag'N Bone'Man
  11. 11-春江花月夜萨顶顶
  12. 12-Don't CryGun and Rose
  13. 12-她的微笑阳山伟伟
  14. 13-FightBeatbrother
  15. 14-NaturalImagedragon
  16. 15-Take Me to ChurchHozier
  17. 16-春光美.mp3张德兰
  18. 17-Hai Phut Hon (Remix)Phao/CM1X
  19. 18-龙拳周杰伦
  20. 19-明明很爱你梁静茹/品冠
  21. 20-忍者周杰伦
  22. 21-突然之间G.E.M.邓紫棋
  23. 22-倒数邓紫棋
  24. 23-UnstoppableSia
  25. 24-双截棍周杰伦
  26. 25-异乡人李健
  27. 26-画 G.E.M.邓紫棋
  28. 27-Звезда ДавидаBadstyle
  29. 28-Breath and LifeAudiomachine
  30. 29-怎么说我不爱你萧敬腾
  31. 30-Star SkyTwo Steps From Hell
  32. 31-Free LoopDaniel Powter
  33. 32-SaltAva Max
  34. 33-泡沫邓紫棋
  35. 34-桃花诺邓紫棋
  36. 35-光的方向张碧晨
  37. 36-如愿王菲
  38. 37-Dancing With Your GhostSasha Sloan
  39. 38-一路生花温奕心
  40. 39-错位时空艾辰
  41. 40- 阿衣莫阿吉太组合
  42. 41-漠河舞厅柳爽
  43. 42-起风了林俊杰
  44. 43-最后的莫西干人Mato Grosso
  45. 44- ZhurekADAM
  46. 45-活得潇洒谭咏麟、陈慧娴
  47. 47-Elaine谭咏麟
  48. 48-无心睡眠张国荣

无歌词,请欣赏。