首页/文章/ 详情

SPH算法简介: 数学基础

2年前浏览3867
SPH(Smoothed Particle Hydrodynamics)算法是一种流体模拟算法,他的特点是简单快速,可以用在例如游戏这样的实时的交互软件中。SPH 算法虽然简单,但要完全搞明白其中的原理和实现方法,也不是易事,写这个系列希望能全面介绍一下相关的内容,如果你搜索到这里,可以仔细看一下这个系列,希望能帮到你。

烟雾、海浪、水滴…,这些司空见怪的自然现象其实有着非常复杂的数学规律,对于流体的研究,有两种完全不同的视角,分别是欧拉视角和拉格朗日视角。欧拉视角的坐标系是固定的,如同站在河边观察河水的流动一样,用这种视角分析流体需要建立网格单元,还会涉及到有限元等复杂的工程方法,一般用在离线的应用中。而拉格朗日视角则将流体视为流动的单元,例如将一片羽毛放入风中,那么羽毛的轨迹可以帮我们指示空气的流动规律。

图片

SPH 算法是典型的拉格朗日视角,它的基本原理就是通过粒子模拟流体的运动规律,然后再转换成网格进行流体渲染。

图片

图片

图片

在正式开始之前,需要把 SPH 算法涉及到的相关数学概念介绍一下,这些概念基本上都是大学数学中的内容,所以不用紧张,翻翻书就能想起来。

标量场和矢量场

如果空间区域内一点 ,都有一个确定的数量 ,则称这个空间区域内确定了一个标量场,如果空间区域内任意一点 ,都有一个确定的向量 ,则称这空间区域内确定了一个矢量场。例如,液体中的密度,就是标量场,而速度,就是矢量场

偏导数

对于多元函数 ,定义  在  处相对于  的偏导数为

例如,定义 ,。

哈密顿算子

哈密顿算子  在流体力学中是如此重要,以至于很多地方将这个符号作为流体力学的标志,所以这里要着重介绍一下,所谓“算子”,就是那种不能单独存在,必须和其他符号放在一起的一种数学符号,例如微分中的那个 。哈密顿算子的定义如下

哈密顿算子有很多有趣的特性,它本身虽然并不是一个矢量,但很多运算确实可以把它视为一个矢量,例如把它作用在一个标量场  上,那么

这个运算可以视为一个矢量和标量的乘法,得到的  是一个矢量场,称为  的“梯度”,顾名思义,梯度的含义就是标量场 A 在某处变化快慢和方向,比如一个标量场  是一座高山在  处的高度,则 H 的梯度是该高山在某处陡峭的程度,并且方向指向高处。

图片

而如果把哈密顿算子作用在一个矢量场  上,得到的  称为矢量场  的“散度”,散度的计算和矢量的点积运算相似,得到的是一个标量场。

散度的意义也很明显,就是描述一个矢量场“发散”的程度,例如下面的两个矢量场,左边的有很大的散度,而右边的散度为 0。

图片

Fluent
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-02-18
最近编辑:2年前
最差先生
本科 | 仿真工程师 好好学习 天天向上
获赞 356粉丝 187文章 1课程 70
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈