热门问题
时间线
聊天
视角
数值扩散
来自维基百科,自由的百科全书
Remove ads
数值扩散(Numerical diffusion)是对连续体(像是流体)进行计算机模拟的困难点,模拟的系统会出现比实际系统要显著的扩散。 当真实系统不应该扩散时,此问题会格外严重,例如在理想流体的数值模型中出现虚假的粘滞力。
说明
欧拉方法中会将时间和空间分割成离散的格点,将运动的微分方程(例如纳维-斯托克斯方程)离散成差分方程[1]。离散方程的扩散作用比其原始微分方程要大,因此所模拟的结果会和实际系统的行为不同[2]。差异的大小以及特性会和模拟的系统以及离散化的方法有关。大部份流力动力学或磁流体力学模拟都希望将数值扩散的效果降到越低越好,以达到模拟的高可信度,不过有些情形会刻意加入扩散以避免奇点。例如流体的激波、等离子体的电流片在一些近似下是无限薄的,这会增加数值分析困难度。一个简单的处理方式就是加入扩散,让系统变的比较平滑。高阶的数值方法(包括谱法)会比低阶的数值扩散要少。
例子
举一个数值扩散的例子,考虑使用显式时间提前(time-advance)的欧拉模拟处理一滴绿色染料滴到水中。若水是沿著网格的对角线方向流动,染料不可能完全的依照其路径,在每一个时间步阶,染料可能水平方向有些移动,或是垂直方向有些移动。在几步之后,染料就会扩散到所有格点,有很高的数值扩散率[3]。
若数值扩散发生在动量向量的分量时,称为数值粘度(numerical viscosity),若是在磁场上,称为numerical resistivity。
考虑高压气泡(蓝色)在液态水(红色)中的相场模型。因为空气悬浮在水中时,没有化学作用或热力学作用,在模拟中不应该会有其他的相。这种两个相之间的不精确是因为数值扩散,可以将多边形网格变细,以减少此影响。
相关条目
- 假扩散
- 数值色散
- 数值误差
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads