有限差分法简介
satisfactions
编辑于 2022年04月26日 19:13
收录于文集
共7篇

网格

结构化网格与非结构化网格

结构化网格,指整个域内的每个内部网格具有相同数量的相邻网格,这些网格可以用xyz方向上的下标ijk来标定,并可以直接通过下标的增减进行访问。

结构化网格

如图,当前内部网格为(i,j),其上下左右网格必然为(i, j+1), (i, j-1), (i-1, j), (i+1, j)。

因此,结构化网格有着更低的内存使用,因为拓扑信息通过索引系统嵌入到网格结构中。 另外,结构化网格还可以提高编码、缓存利用率和向量化的效率。 另外,对于结构化网格来说,界面上的物理量可以简单的由相邻网格中心的物理量插值得到。

在非结构化网格系统中,元素是按顺序编号的,面、节点和其他几何数量也是如此。 应此,没有直接的方法将不同的实体仅通过下标联系在一起。

非结构化网格

当然,结构化网格的生成相对于结构化网格更加灵活,更容易生成贴体网格。因此,非结构网格的应用范围更广。

结构化网格和非结构化网格不是单纯按网格形状来分的,其更多的是指整体的网格划分策略。结构化网格一定是四边形或六面体网格,但四边形或六面体网格不一定是结构化网格。

均匀网格及网格变换

均匀网格指在xyz方向上均匀分布的网格,对2D来说,是正方形网格,对3D来说,是立方体网格。

有限差分只能在结构化网格上使用,且只有在均匀网格上才能保持其在理论上的精度。

对于其他结构化网格,若其通过一组数学变换变为均匀网格,那么有限差分也能在该网格上保持理论精度。

网格变换

有限差分法

有限差分示意图

把 (i+1, j) 处的物理量用 (i, j) 处的物理量进行泰勒展开:

%5Cphi_%7Bi%2B1%2C%20j%7D%3D%5Cphi_%7Bi%2C%20j%7D%2B%5Cleft(%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%5Cright)_%7Bi%2C%20j%7D%20%5CDelta%20x%2B%5Cleft(%5Cfrac%7B%5Cpartial%5E%7B2%7D%20%5Cphi%7D%7B%5Cpartial%20x%5E%7B2%7D%7D%5Cright)_%7Bi%2C%20j%7D%20%5Cfrac%7B%5CDelta%20x%5E%7B2%7D%7D%7B2%7D%2B%5Cleft(%5Cfrac%7B%5Cpartial%5E%7B3%7D%20%5Cphi%7D%7B%5Cpartial%20x%5E%7B3%7D%7D%5Cright)_%7Bi%2C%20j%7D%20%5Cfrac%7B%5CDelta%20x%5E%7B3%7D%7D%7B6%7D%2B%5Ccdots%20.

%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%3D%5Cfrac%7B%5Cphi_%7Bi%2B1%2C%20j%7D-%5Cphi_%7Bi%2C%20j%7D%7D%7B%5CDelta%20x%7D%2Bo(%5CDelta%20x)

此即向前差分

把 (i-1, j) 处的物理量用 (i, j) 处的物理量进行泰勒展开:

%5Cphi_%7Bi-1%2C%20j%7D%3D%5Cphi_%7Bi%2C%20j%7D-%5Cleft(%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%5Cright)_%7Bi%2C%20j%7D%20%5CDelta%20x%2B%5Cleft(%5Cfrac%7B%5Cpartial%5E%7B2%7D%20%5Cphi%7D%7B%5Cpartial%20x%5E%7B2%7D%7D%5Cright)_%7Bi%2C%20j%7D%20%5Cfrac%7B%5CDelta%20x%5E%7B2%7D%7D%7B2%7D-%5Cleft(%5Cfrac%7B%5Cpartial%5E%7B3%7D%20%5Cphi%7D%7B%5Cpartial%20x%5E%7B3%7D%7D%5Cright)_%7Bi%2C%20j%7D%20%5Cfrac%7B%5CDelta%20x%5E%7B3%7D%7D%7B6%7D%2B%5Ccdots%20.

%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%3D%5Cfrac%7B%5Cphi_%7Bi%2C%20j%7D-%5Cphi_%7Bi-1%2C%20j%7D%7D%7B%5CDelta%20x%7D%2Bo(%5CDelta%20x)

此即向后差分

如把两个泰勒展开式相减,可得中心差分格式:

%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%3D%5Cfrac%7B%5Cphi_%7Bi%2B1%2C%20j%7D-%5Cphi_%7Bi-1%2C%20j%7D%7D%7B2%20%5CDelta%20x%7D%2Bo%5Cleft(%5CDelta%20x%5E%7B2%7D%5Cright) 

另外,将两式相加可得二阶偏导的离散形式:

%5Cfrac%7B%5Cpartial%5E%7B2%7D%20%5Cphi%7D%7B%5Cpartial%20x%5E%7B2%7D%7D%3D%5Cfrac%7B%5Cphi_%7Bi%2B1%2C%20j%7D-2%20%5Cphi_%7Bi%2C%20j%7D%2B%5Cphi_%7Bi-1%2C%20i%7D%7D%7B%5CDelta%20x%5E%7B2%7D%7D%2Bo%5Cleft(%5CDelta%20x%5E%7B2%7D%5Cright).

当然还有更高精度的差分格式,比如九点差分格式,其具有4阶精度。由于差分网格的均匀性,比较好构建高阶精度的差分格式。

热扩散方程的离散

传热学中常用的热扩散方程如下

%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20x%7D%5Cleft(k%20%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20x%7D%5Cright)%2B%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20y%7D%5Cleft(k%20%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20y%7D%5Cright)%2B%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20z%7D%5Cleft(k%20%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20z%7D%5Cright)%2B%5Cdot%7Bq%7D%3D%5Crho%20c_%7Bp%7D%20%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20t%7D

这里不考虑内热源,并考虑2D空间,则有 

%5Cfrac%7B1%7D%7B%5Calpha%7D%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20t%7D%3D%5Cfrac%7B%5Cpartial%5E%7B2%7D%20T%7D%7B%5Cpartial%20x%5E%7B2%7D%7D%2B%5Cfrac%7B%5Cpartial%5E%7B2%7D%20T%7D%7B%5Cpartial%20y%7D

%5Calpha%3Dk%2F%5Crho%20c_p,为热扩散系数。

对时间取向前差分, 

%5Cfrac%7B%5Cpartial%20T%7D%7B%5Cpartial%20t%7D%3D%5Cfrac%7B%5Cphi_%7Bi%2C%20j%7D%5E%7Bn%2B1%7D-%5Cphi_%7Bi%2C%20j%7D%5En%7D%7B%5CDelta%20t%7D%2Bo(%5CDelta%20t)

对含时间项通常用向前差分,而不用中心差分。尽管中心差分有更高阶的精度,但是,用过去和将来的信息计算现在的信息是极不合理的。

并假设xy方向上网格间距是相等的(这是合理的,因为可以通过坐标变换达到这一目的),则方程按照取值的时间点可以分为显示或隐式格式。

显式格式

等号右边取当前时间点的物理量,并将当前时间点的已知量写在等号右边,未知量写在等号左边,则有: 

T_%7Bi%2C%20j%7D%5E%7Bn%2B1%7D%3D(1-4%20r)%20T_%7Bi%2C%20j%7D%5E%7Bn%7D%2Br%20T_%7Bi%2B1%2C%20j%7D%5E%7Bn%7D%2Br%20T_%7Bi%2C%20j-1%7D%5E%7Bn%7D%2Br%20T_%7Bi%2C%20j%2B1%7D%5E%7Bn%7D%2Br%20T_%7Bi-1%2C%20j%7D%5E%7Bn%7D 

其中 

r%20%3D%20%5Cfrac%7B%5Calpha%5CDelta%20t%7D%7B%5CDelta%20x%5E2%7D%3A%3DFo

在传热学中,称其为傅里叶数。

等式左边的未知量只有1个,可以通过等式右边的物理量直接代数运算得到,故称为显式格式(explicit)

显式格式需要满足稳定性要求才可进行求解,即当前单元当前时间的值前面的系数需要大于等于0,对于本问题,即: 

1-4Fo%5Cge%200

隐式格式

等号右边的物理量取下一个时间点的值,其他处理同上,可以得到隐式格式(implicit)

(1%2B4r)T_%7Bi%2C%20j%7D%5E%7Bn%2B1%7D-r%20T_%7Bi%2B1%2C%20j%7D%5E%7Bn%2B1%7D-r%20T_%7Bi%2C%20j-1%7D%5E%7Bn%2B1%7D-r%20T_%7Bi%2C%20j%2B1%7D%5E%7Bn%2B1%7D-r%20T_%7Bi-1%2C%20j%7D%5E%7Bn%2B1%7D%3DT_%7Bi%2C%20j%7D%5E%7Bn%7D

隐式格式需要联立各单元的方程,由方程组求解得到。隐式格式的求解没有稳定性要求。