人工粘性

要说明白CFD计算中的人工粘性,便没有办法绕开其他几个概念,他们分别是:

截断误差

舍入误差

修正方程


先说舍入误差(它最好理解):

计算机因为数位的限制,在求解方程的每一步过程中都会对精确的结果进行一定程度的四舍五入,久而久之,积年累月,最终累计出来的误差便是舍入误差。

舍入误差外传:

舍入误差是有可能随着计算过程中每一步的迭代而逐渐增大的。(仅针对显示差分情形!显示差分情形!显示差分情形!)。也就是说在显示差分格式时,若想让求解过程稳定,即舍入误差不会不停的增大,就必须满足一定的条件(比如时间步长与空间步长不能太长等)。不同形式的方程有不同形式的条件,较为知名的限制条件为CFL条件(柯朗数),即柯朗数必须小于1,最多=1.



再说离散误差(因为它最直观):

考虑一维热传导方程

一维热传导方程典型形式(方程1)

CFD就得离散。我们对空间进行中间差分,对时间进行一阶的向前差分。得到

离散后的一维热传导方程(方程2)

先别管误差在哪儿,方程1和方程2的精确解(无舍入误差)是不一样的,两个精确解之间的误差由于离散导致,该误差称之为离散误差。离散误差+舍入误差=计算总误差。


修正方程:

考虑一维波动方程:

方程(3)

离散了它(时间一阶向前,空间一阶向后),得到

方程(4)

对方程(4)进行泰勒展开,求导,再加加减减,变换了个样子

方程(5)

方程(5)叫做修正方程。注意方程(4)和方程(5)是完全一致的。但看方程(5)和原方程(3)相比,左端项一致,右端由0变成了一长串二阶三阶导数项,多出来的这些项就是截断误差。截断误差中的偶数阶项叫数值耗散,奇数阶项称为数值色散。


人工粘性:

仔细观察修正方程中的偶数阶耗散项,是由一个系数*变量的偶数阶导数构成。与NS方程中的粘性项对比,该系数便类似于粘性系数μ。当然这个系数是数值方法引入的,人为的引入的,因此称为人工粘性。人家μ是物理粘性,是实实在在真实存在的。

人工粘性外传:

人工粘性的影响:一定程度上抹平了间断,降低了解的精度。

好处:人工粘性通常有助于提高解的稳定性。事实上经常我们还嫌弃人工粘性不够大,人为的再加点儿更多的人工粘性!得到一个不是那么准确的解总比得不到一个解要好嘛。反正掌握好一个度。

问题:人工粘性怎么加?人工粘性对计算结果的影响到底有多大?感觉像是个玄学问题,没详细研究


针对人工粘性的先进的算法:自动的在需要增加人工粘性的位置添加大小合适的人工粘性,屌不屌就问你。TVD就是这么一个概念。

你可能感兴趣的:(人工粘性)