第13章计算流体力学CFD(3)4离散化的基本方法4.1引言引言理论上,根据偏微分方程的解能得到流场中任意点上流场变量的值。离散网格点引言实际上,我们采用代数差分的方式将偏微分方程组转化为代数方程组。离散网格点引言通过求解代数方程组获得流场中离散网格节点上的变量值。离散网格点引言从而,使得原来的偏微分方程组被“离散化”了。离散网格点引言4.2有限差分基础有限差分基础离散网格点泰勒级数展开:有限差分基础泰勒级数展开:差分表达式截断误差有限差分基础一阶向前差分:上述差分表达式用到了(i,j)点及其右边(i+1,j)点的信息,没有左边(i-1,j)点的信息,且精度为一阶有限差分基础离散网格点泰勒级数展开:有限差分基础泰勒级数展开:有限差分基础一阶向后差分:上述差分表达式用到了(i,j)点及其左边(i-1,j)点的信息,没有右边(i+1,j)点的信息,且精度为一阶有限差分基础两式相减得:有限差分基础得:有限差分基础二阶中心差分:上述差分表达式用到了左边(i-1,j)点及右边(i+1,j)点的信息,(i,j)点位于它们中间,且精度为二阶有限差分基础Y方向的差分表达式:有限差分基础两式相加得:有限差分基础得:二阶中心差分(关于二阶导数)有限差分基础对Y方向的二阶导数有:二阶中心差分(关于Y方向二阶导数)有限差分基础下面求二阶混合偏导数上式对y求导得:有限差分基础下面求二阶混合偏导数上式对y求导得:有限差分基础下面求二阶混合偏导数两式相减得:6有限差分基础下面求二阶混合偏导数6有限差分基础二阶混合偏导数的二阶精度中心差分有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础有限差分基础二阶偏导数,四阶精度中心差分高阶精度的差分需要更多的网格点,所以计算中的每一个时间步或空间步都需要更多的计算机时间。有限差分基础在边界上怎样构造差分近似?边界网格点有限差分基础向前差分,只有一阶精度。边界网格点有限差分基础在边界上如何得到二阶精度的有限差分呢?边界网格点有限差分基础不同于前面的泰勒级数分析,下面采用多项式来分析。边界网格点有限差分基础设边界网格点在网格点1,在网格点2,在网格点3,有限差分基础边界网格点得有限差分基础边界网格点对y求导得:在边界点1,有限差分基础边界网格点得:有限差分基础边界网格点根据知为三阶精度有限差分基础边界网格点故为两阶精度为三阶精度有限差分基础边界网格点为单侧差分4.3差分方程差分方程对一个给定的偏微分方程,如果将其中所有的偏导数都用有限差分来代替,所得到的代数方程叫做差分方程,它是偏微分方程的代数表示。差分方程考虑非定常一维热传导方程:差分方程差分方程差分方程差分方程偏微分方程:差分方程:截断误差:差分方程差分方程是一个代数方程,如果在右图所示区域内所有网格点上都列出差分方程,就得到一个联立的代数方程组。差分方程当网格点的数量趋于无穷多,也就是时,差分方程能否还原为原来的微分方程呢?差分方程截断误差:截断误差趋于零,从而差分方程确实趋近于原微分方程。差分方程从而差分方程确实趋近于原微分方程,如果,截断误差趋于零,此时我们说偏微分方程的这个有限差分表示是相容的。差分方程原微分方程与相应的差分方程之间的区别截断误差:差分方程原微分方程的解析解与差分方程的解之间的区别离散误差:4.4显式方法与隐式方法4.4.1显式方法显式方法显式方法上述方程是抛物型方程,可以推进求解,推进变量是时间t显式方法边界条件已知显式方法边界条件已知显式方法显式方法中每一个差分方程只包含一个未知数,从而这个未知数可以用直接计算的方法显式地求解。显式方法是最简单的方法。4.4.2隐式方法隐式方法克兰克-尼科尔森格式隐式方法对于排列在同一时间层所有网格点上的未知量,必须将它们联立起来同时求解,才能求出这些未知量,这种方法就定义为隐式方法。隐式方法由于需要求解联立的代数方程组,隐式方法通常涉及大型矩阵的运算。隐式方法比显式方法需要更多、更复杂的计算。隐式方法隐式方法A,B,Ki均为已知量隐式方法A,B,Ki均为已知量隐式方法在网格点2:A,B,Ki均为已知量T1为边界条件,已知量隐式方法在网格点3:A,B,Ki均为已知量在网格点4:在网格点5:隐式方法A,B,Ki均为已知量在网格点6:T7为边界条件,已知量隐式方法于是有关于T2,T3,T4,T5,T6这五个未知数的五个方程A,B,Ki均为已知量隐式方法写成矩阵形式:隐式方法系数矩阵是一个三对角矩阵,仅在三条对角线上有非零元素。求解线性代数方程组的标准方法是高斯消去法。应用于三对角方程组,通常采用托马斯算法(国内称为追赶法)求解。4.4.3显式方法与隐式方法的比较显式方法与隐式方法的比较对于显式方法,一旦x取定,那么t的取值必须受到稳定性条件的限制,其取值必须小于等于某个值。否则,计算不稳定。因此,t必须取得很小,才能保持计算稳定,要算到某个给定的时间值,程序要运行很长时间。显式方法与隐式方法的比较隐式方法没有稳定性限制,可以取比显式方法大得多的t,仍能保持计算稳定。要计算某个给定的时间值,隐式方法所用的时间步数比显式方法少很多。显式方法与隐式方法的比较对某些应用来说,虽然隐式方法一个时间步的计算会比显式方法花的时间长,但由于时间步数少,总的运行时间可能比显式方法少。显式方法与隐式方法的比较另外,当t取得较大时,截断误差就大,隐式方法在跟踪严格的瞬态变化(未知函数随时间的变化)时,可能不如显式方法精确。不过,对于以定常态为最终目标的时间相关算法,时间上够不够精确并不重要。显式方法与隐式方法的比较当流场中某些局部区域的网格点分布很密,采用显式方法,小的时间步长会导致计算时间特别长。例如,高雷诺数粘性流,物面附近的流场会产生急剧的变化,因此,物面附近需要更密的空间网格。在这种情况下,若采用隐式方法,即使对于很密的空间网格,也能采用较大的时间步长,就会减少程序运行时间。4.5误差与稳定性分析误差与稳定性分析在从一个推进步进行到下一步时,如果某个特定的数值误差被放大了,那么计算就变成不稳定。如果误差不增长,甚至在从一个推进步进行到下一步时,误差还在衰减,那么计算通常就是稳定的。误差与稳定性分析A=偏微分方程的精确解(解析解)D=差分方程的精确解离散误差=A-D误差与稳定性分析D=差分方程的精确解舍入误差==N-DN=在某个有限精度的计算机上实际计算出来的解(数值解)N=D+误差与稳定性分析数值解N=精确解D+误差数值解N满足差分方程,于是有误差与稳定性分析数值解N=精确解D+误差精确解D也必然满足差分方程,于是有误差与稳定性分析数值解N=精确解D+误差两式相减得,误差也满足差分方程:误差与稳定性分析当求解过程从第n步推进到第n+1步时,如果i衰减,至少是不增大,那么求解就是稳定的;反之,如果i增大,求解就是不稳定的。也就是说,求解要是稳定的,应该有:误差与稳定性分析根据vonNeumann(冯诺伊曼)稳定性分析方法,设误差随空间和时间符合如下Fourier级数分布:则误差与稳定性分析稳定性要求故放大因子1atGe误差与稳定性分析下面采用vonNeumann(冯诺伊曼)稳定性分析方法分析如下差分方程的稳定性:由于误差也满足差分方程,故有误差与稳定性分析由于误差也满足差分方程,故有而则误差与稳定性分析解得放大因子误差与稳定性分析要使放大因子1G必须满足误差与稳定性分析上式就是差分方程的稳定性条件。对于给定的x,t的值必须足够小,才能满足上述稳定性条件,以保证计算过程中误差不会放大。误差与稳定性分析稳定性条件的具体形式取决于差分方程的形式。的差分方程是无条件不稳定的。比如,一阶波动方程:误差与稳定性分析但如果用则1112nnniiiuuu(Lax方法)误差与稳定性分析令误差则放大因子式中误差与稳定性分析则放大因子稳定性要求则误差与稳定性分析稳定性要求式中的C称为柯朗(Courant)数。误差与稳定性分析稳定性要求上式称为柯朗-弗里德里奇-列维(Courant-Friedrichs-Lewy)条件,一般写成CFL条件。误差与稳定性分析下面来看CFL条件的物理意义。CFL条件:也是二阶波动方程:的稳定性条件。误差与稳定性分析下面来看CFL条件的物理意义。二阶波动方程:的特征线为CFL条件的物理意义:要保证稳定性,数值解的依赖区域必须全部包含解析解的依赖区域。误差与稳定性分析CFL条件的物理意义:要保证稳定性,数值解的依赖区域必须全部包含解析解的依赖区域。误差与稳定性分析