SPH核函数
密度估算(Poly6核函数):
$$W_{poly6}(r,h) = \frac{315}{64\pi h^9}(h^2-r^2)^3$$压力梯度(Spiky核函数):
$$\nabla W_{spiky}(r,h) = -\frac{45}{\pi h^6}(h-r)^2 \hat{r}$$$h$:光滑长度,$r$:粒子间距
在画布上点击并拖动可添加粒子 | 圆形障碍物位于中央
使用光滑粒子流体动力学(SPH)实时模拟二维流体。直观体验粘性、湍流和流体动力学。
密度估算(Poly6核函数):
$$W_{poly6}(r,h) = \frac{315}{64\pi h^9}(h^2-r^2)^3$$压力梯度(Spiky核函数):
$$\nabla W_{spiky}(r,h) = -\frac{45}{\pi h^6}(h-r)^2 \hat{r}$$$h$:光滑长度,$r$:粒子间距
在画布上点击并拖动可添加粒子 | 圆形障碍物位于中央
SPH法的核心是“核函数”,它决定了粒子如何影响其邻居。密度估算通常使用平滑的Poly6核函数:
$$W_{poly6}(r,h) = \frac{315}{64\pi h^9}(h^2-r^2)^3$$这里,$r$是两个粒子间的距离,$h$是影响半径(光滑长度)。这个函数像一个“帽子”,在$r=h$时平滑地降为零,保证了计算的稳定性。
然而,计算压力梯度时,Poly6核函数在中心处梯度为零,会导致粒子非物理性地聚集。因此,压力计算采用Spiky核函数的梯度形式:
$$\nabla W_{spiky}(r,h) = -\frac{45}{\pi h^6}(h-r)^2 \hat{r}$$$\hat{r}$是单位方向向量。这个公式在中心处梯度不为零,能产生有效的排斥力,防止粒子穿透,是保证流体体积不压缩的关键。
汽车工程:用于模拟油箱或发动机油底壳内的液体晃动,分析液体对车辆操控稳定性的影响,避免在急转弯或刹车时产生不可控的力矩。
土木与地质灾害:模拟山体滑坡、泥石流和溃坝洪水。SPH能自然追踪土石和水的自由表面与大变形,帮助评估灾害影响范围和设计防护结构。
铸造与制造:模拟熔融金属注入模具的充型过程,预测可能因湍流或卷气导致的铸造缺陷,优化浇注系统设计,提高零件质量。
海洋与海岸工程:模拟船舶航行时的兴波阻力、甲板上浪,或海啸波冲击海岸结构物。SPH擅长处理流体与复杂刚体结构的剧烈相互作用。
初次接触SPH时,有几个容易踩坑的地方。首先是“粒子数越多精度一定越高”的误解。虽然增加粒子数确实能呈现更细致的现象,但计算负荷会以接近粒子数平方的幅度飙升。例如将粒子数从1000倍增至2000时,邻近搜索的计算量实际上可能增加近4倍。学习时建议先用较少粒子数(如2000~5000)掌握宏观行为特征,再逐步增加数量。
其次是参数设置的陷阱。虽然粘性系数和压力系数可独立调整,但要再现真实流体必须保持这些参数的平衡。例如要模拟水这类具有特定运动粘度($ν$)的流体,不能仅调整粘性系数,还需联动修正密度和压力系数。实际应用中需注意“无量纲数”的概念。若在本工具中调高重力导致粒子飞散?不妨尝试适当增加压力系数来增强粒子凝聚力。
最后要警惕“SPH是无所不能的计算魔法”的过度期待。SPH虽擅长自由表面和大变形模拟,但也有其局限。例如不适合模拟微小湍流或边界层精细行为。此外,像本演示这样可视化所有粒子的方式虽直观,但实际工程中更常评估粒子的“统计行为”或“区域平均值”。建议通过工具感知现象后,养成退一步思考“如何量化此处特征?”的习惯。
本模拟器采用的计算思路,其实可拓展到流体以外的多种连续介质力学问题。首推“固体力学中的破坏分析”。将金属疲劳或混凝土裂纹扩展建模为粒子间连接断裂过程的“粘结粒子法”,可视为SPH的衍生方法。
另一领域是“粉体工程”。面粉或砂粒等粉体流动主要由粒子间碰撞与摩擦主导。通过在SPH粒子模型中添加摩擦系数和旋转考量,可实现料仓卸料或混合过程的模拟。例如可用于预测咖啡豆包装机中易发生堵塞的位置。
更有趣的是在“生物力学”中的应用。血液虽无明确自由表面,却是血管内流动的非牛顿流体。若赋予SPH粒子随剪切速率变化的粘性特性,就能推进动脉瘤内复杂血流或红细胞等柔性粒子行为的研究。通过本工具调整粘性系数的操作体验,正是理解这些应用的基础。
熟悉本工具后若想深入理解,推荐以下三步学习法。第一步:掌握控制方程。SPH背后是描述流体运动的“纳维-斯托克斯方程”。即使难以立即掌握全部,至少应理解公式$$ \rho \frac{D\boldsymbol{v}}{Dt} = -\nabla p + \mu \nabla^2 \boldsymbol{v} + \rho \boldsymbol{g} $$ 右侧各项对应本工具中“压力”“粘性”“重力”参数。操作时带着“我正在调整这个项”的认知,能显著深化理解。
第二步:区分离散化核心——“核近似”与“粒子近似”。现有教材中的核函数$W$虽是“权重函数”,但如何用它通过粒子值表达物理量才是关键难点。例如某点密度$\rho$通过邻近粒子$j$的质量$m_j$计算的公式 $\rho(\boldsymbol{r}) \approx \sum_j m_j W(|\boldsymbol{r}-\boldsymbol{r}_j|, h)$,可想象为本模拟器在每个粒子处执行的计算过程。
最后的第三步:挑战实践课题。将学习目标具体化,例如“寻找能再现蜂蜜与水流动差异的参数组合”,或“改变障碍物角度观察流动分离条件”。在这个过程中,你会注意到参数的非线性影响和初始条件的重要性。这将成为未来在工程实践中使用CAE软件、开展实验数据与模拟结果校准工作的第一块基石。