1 数值方法A 续
1 数值方法A 续
下一步是用中心差分法近似\(\frac{dT}{dx}\)。
首先,对温度函数\(T(x)\)用泰勒展开,其中由于2阶以上项计算复杂、对结果影响小,故忽略。
假设在节点之间温度线性变化。
令e为P、E中点,则有\((\delta x)_{e^-}=(\delta x)_{e^+}=\frac{1}{2} (\delta x)_e\),故:
回代入公式\((\lambda \frac{dT}{dx})_e-(\lambda \frac{dT}{dx})_w+\bar{S} \Delta x=0\)得:
另有:
把源项在控制体积内的均值\(\bar{S}\)线性化,其中\(S_P\)为线性系数(或斜率),\(S_c\)为常数项(或截距),二者均应当为常数。
那么,将我们得到的这三个公式组合起来,可以得到最终的线性化方程:
其中,代表三个节点(当前控制节点左边一个、它本身、右边一个)的系数,以及右边一项b,分别是:
注意,这个式子只能用于内部控制体积,不适用于边界节点。
对于边界条件:
-
已知温度:(\(T(x=0)=T_a\text,~T(x=L)=T_b\))
\[a_PT_P+a_ET_E=b,~a_P=1,~a_E=0,~b=T_a\\a_WT_W+a_PT_P=b,~a_P=1,~a_W=0,~b=T_b \] -
已知温度随空间变化的导数,描述热流边界条件:
如图,定义热通量\(q_B=-\lambda \frac{dT}{dx}\)。\[(\lambda\frac{dT}{dx})_i-\left(\lambda\frac{dT}{dx}\right)_B+\bar{S}\Delta x_B=0 \]这里可以把\(-\left(\lambda\frac{dT}{dx}\right)_B\)这一项用\(q_B\)代替,于是可推出最后的线性化方程:
\[a_PT_P+a_ET_E=b,~a_P=\frac{\lambda_e}{\delta x_e}-S_p\Delta x_B,~a_E=-\frac{\lambda_e}{\delta x_e},~\mathrm{b}=S_p\Delta x_B+q_B \]
如图,最后得到了一个三对角矩阵。每个节点只影响其左侧一个和右侧一个节点。
求解线性方程组
判断解的稳定性
-
解是否有边界?
-
边界条件是否被遵守?
-
结果如何与理论解或实验数据比较,以验证数值解的正确性?
-
残差误差:
\[R=\frac{|B-A\cdot T|}{|diag(A)\cdot T|}<tol \]其中,\(|B-A\cdot T|\)是残差,表示实际计算的结果\(A\cdot T\)与理论上应当得到的结果B之间的差;
\(diag(A)\cdot T\)是矩阵A的对角线部分与T的乘积,用于对残差进行非量纲化,使得残差大小与系统的尺度保持一致。
若R小于某个预设的容差tol,可认为解的精读是能接受的。 -
能量平衡:能量守恒必须在每个控制体中保持。有时源项\(\bar{S}=0\),则控制体内的流入和流出热量\(q_w - q_e = 0\)。
-
网格收敛性:若网格细化,节点间距减半,误差应减少4倍。这种收敛特性在已知精确解时表现最好,通常通过对数-对数图(log-log plot)来评估收敛行为。
直接求解:高斯消元法
对如下矩阵:
-
前向消元:将第i行减去第1行的某个倍数,使得\(a_{i,~1}=0\),这样就能消去除了\(a_{1,~1}\)以外,矩阵A第1列的所有数;
重复直到矩阵A变成上三角矩阵。
-
回代:从最后一行开始,最后一行相当于解:
\[a_{n,~n}^{(N-1)}\cdot T_n = b_n^{(N-1)} \]倒数第2行相当于解:
\[a_{n-1,n-1}^{(N-1)}T_{n-1}+a_{n-1,n}^{(N-1)}T_n=b_{n-1}^{(N-1)} \]最后得到的通项公式为:
\[T_i=\frac{b_i^{(N-1)}-\sum_{k=i+1}^na_{i,k}^{(N-1)}T_k}{a_{i,i}^{(N-1)}} \]
迭代求解:高斯-赛德尔法
通项公式:
其中:
-
\(T_i^{(m)}\)表示第m次迭代中,第i个未知数的近似值;
-
\(T_j^{(m)}\)表示第m次迭代中,第j个未知数近似值,j<i时,这些值在本次迭代中已更新;
-
\(T_j^{(m-1)}\)表示第m次迭代中,第j个未知数近似值,j>i时,这些值在本次迭代中未更新;
-
\(a_{i,~i}\):矩阵A第i行i列元素;
-
\(b_i\):矩阵b第i行元素;
-
\[\sum_{j=1}^{i-1}a_{i,j}T_j^{(m)} \]
这一项对在第i行中,i之前的未知数项求和(已迭代)
-
\[\sum_{j=i+1}^na_{i,j}T_j^{(m-1)} \]
这一项对在第i行中,i之后的未知数项求和(未迭代)。
该法的物理意义为:通过\(b_i\)减掉加权求和,意为扣除已知部分,剩余未知数项的影响;除以\(a_{i,~i}\)则解出未知数。