1、计算传热学第5讲,离散方程的求解 Solution of Difference Equations,本讲内容:,引言 几个基本事实 基本迭代法 加速收敛技术块迭代法 加速收敛技术多重网格法 加速收敛技术块修正法 加速收敛技术其它方法 收敛判据、收敛速度的控制及其它,阅读要求,陶文铨数值传热学 第4章第4.4节第7章,5.1 离散化方程的求解必须讲求方法,离散化代数方程的求解 不论何种方法 不论问题的性质如何 且一般是非线性的 具有基本重要性 不可或缺,离散化方程的求解必须讲求方法,直接方法(或精确解法)direct solution 未知数个数巨大 计算工作量太大,根本得不到解 舍入误差(ro
2、und-off error) 得不到“精确解” 精确解法的结果往往是错误的 只能采用迭代法(iteration method) 在数值传热学中:基本重要性 普通迭代法 效率低 收敛速度慢 采用加速收敛方法(acceleration methods),5.2 几个基本事实,离散化方程的形式:,对于二维问题,,对于一维问题,,或者写成,,39,几个基本事实,离散化方程的形式 对于一维问题,它是一个三对角方程,TDMA法 对于多维问题: 大型稀疏系数矩阵 不能形成“对角”方程 对角方程:高效的求解方法 聪明的节点编号:“对角方程”,几个基本事实,迭代法是近似法 理论上:给出任意指定精度的近似解 迭代
3、法的收敛速度 问题的性质 结点数目增加,收敛速度迅速降低 Recall:数值解的精度与子区域的大小有关 实际问题:结点数目非常大 为什么节点数增加,收敛速度下降? 边界条件信息向区域内部的传递速度,节点多了,层次多了,“路径”长了,收敛速度慢了!,特别提示,加速边界信息的传递,必然会提高收敛速度 加速收敛的主要思路之一,几个基本事实,收敛速度与边界条件的类型有关 第一类边界: 边界信息最为确定,收敛速度最快 第三类边界: 边界信息较确定,收敛速度较快 第二类边界: 边界信息最不确定,收敛速度最慢,几个基本事实,收敛速度与问题的类型有关: 扩散型方程易于收敛 对流扩散方程收敛慢 层流比紊流问题收
4、敛更困难 线性问题比非线性问题容易收敛 收敛速度与迭代顺序有关 设定边界条件时一定要慎重 确定的待求变量数值,几个基本事实,三对角方程:可以高效直接求解 直接解法可以一次性传递边界信息 迭代过程中要尽可能多地采用直接法,5.3 基本迭代法松弛法,松弛法(Relaxation method) 用上次迭代值(0)和本次迭代值构造本轮迭代解,即,,从方程(1)中解出P代入(4),有,,松弛法(Relaxation method),是松弛因子, relaxation factor 0 1: 超松弛(Over relaxation),松弛法(Relaxation method),最佳松弛因子opt: 获
5、得最快的收敛速度 不能事先预测 对于扩散型问题:超松弛可以加速收敛 亚松弛:改善收敛特性,抑制发散 复杂问题一般用亚松弛 公式(5):点迭代(stepwise iteration) 程序简单 收敛速度慢 计算机速度的提高:点迭代的可能性,松弛法(Relaxation method),松弛法的基本思想:具有重要意义 点迭代 线迭代 源项等的处理:对于强源项问题,,5.4 加速收敛技术,为什么一定要采用加速收敛方法? 收敛速度成为制约因素 加速收敛的基本出发点: 加速边界信息的传递 增加直接求解的份额 最大限度地减少待求变量的数目,5.4.1块迭代法,块迭代法:Block iteration 将求
6、解区域分成若干块(大的子区域) 未知数个数巨大 块:一条线和数条网格线组成 同一块上的待求变量用直接法求解 不同块之间用迭代法求解 这相当于: 代数方程可以分区域求解 各个区域间用迭代法完成,5.4.1 块迭代法,最常用的方案:线迭代(line iteration) 对于二维问题,参见方程(2):,改写:,方程(7)形式上变为一维问题,线迭代法,说明: 形式上变为一维问题 b中的S和N是未知的:上次迭代值 在同一条线上求解 逐线求解,直到覆盖整个求解区域。,扫 描 方 向,扫 描 方 向,线迭代法,当然,将方程(2) 还可以这样改写,,显然,它给出了竖直线之间的迭代。,扫描方向,扫描方向,线迭
7、代法说明,交替方向法(ADI, Alternative Direction Iteration) 特点: 增加了直接求解的份额 加速了边界信息的传递速度 大幅度地提高了收敛速度(与点迭代相比) 程序仍然相对简单 内存占用增加不多 属于必须掌握的方法,线迭代法说明,分类 Jacobi迭代 Gauss-Seidel迭代 松弛迭代 系数一定要采用Jacobi迭代,否则 扩散系数计算的不一致 导致违反流的相容性原则 迭代过程发散,线迭代法说明,扫描方向与扫描起始线 对收敛速度的影响比较大 有确定信息的边界作为扫描起始线 扫描方向:对着边界信息较确定的边界 各边界信息量相同时:“短路径”原则,1st,3
8、rd,2nd,2nd,扫描方向,线迭代法说明,程序中扫描方向的设计 最佳方案:每个坐标方向上各进行来回两次扫描 简化方案:每个坐标方向上各进行一次扫描 对坐标系进行调整,起始线:确定信息,2nd,1st,2nd,3rd,5.4.2 多重网格法,Multi-grid method的依据 影响收敛速度的关键因素:边界信息的传递 节点数目增加,收敛速度降低 节点数目增加,边界到内部的相对路径增加,层次增多 网格加密不利于误差矢量长波分量的衰减 方案: 在粗网格上求解:加速边界相息的传递 在密网格上求解:得到满足精度要求的解,多重网格法,由疏到密的过程,多重网格法,由密到疏的过程,多重网格法,实际操作
9、时: 先由密到疏,再由疏到密 细网格:衰减误差的短波分量 粗网格:衰减误差的长波分量 迭代:控制迭代次数,监视迭代误差 尽可能采用直接法求解 最细层次网格上的迭代:控制迭代精度,监视迭代次数,多重网格法,两层网格之间: 有尽可能多的“继承关系” 减少插值(由细到粗) 简化由粗到细网格的插值 (插值方法在这里是关键技术),多重网格法,在精度要求不是特别高时,可以明显加快收敛过程 如果精度要求非常高,效果不明显,多重网格法,缺点: 程序复杂化 专业程序开发人员,5.4.3 块修正法,Block-correction technique 基本出发点: 减少结点数目 加快边界信息向求解区域传递 基本思
10、想: 把求解区域分为若干个“大的块儿” 在进行下一次迭代前对迭代初值进行估算: 下次迭代值上次迭代值修正值 假定同一块上的节点有相同的修正值,块修正法,对于二维问题,将方程(2)改写:,经过若干次迭代后,得到了近似解*i,j 在此基础上,估算新的迭代值:,块修正法,这相当于假定i,j (j1,2,3,M)这M个待求变量可以在上次迭代值*i,j的基础上加上同一个修正值得到。 将方程(12)代入方程(11),块修正法,整理后得到:,其中,,块修正法,将方程(14)对j求和,,令,,块修正法,于是有,,求解上述方程,得到修正量,代入方程(12),得到新的迭代值。,块修正法,收敛时,必然有参见方程(1
11、1),,于是,,从而,,块修正法,所以,方程(17)当迭代收敛时有0解:,当迭代没有收敛时,利用方程(17)和方程(12)可以得到更好的试探值,块修正法,说明: 它不是一种独立的解法 它只能提供“较好”的迭代试探值 程序的复杂化 为了提高试探值的精度,可以采用多块修正法 也就是多重网格法,5.4.4 TDMA的扩展,增加直接求解的份额可以提高收敛速度 沿边界逐层构造方程组进行求解,TDMA的扩展,优点 最大限度地应用了TDMA方法 增加了直接求解的份额 提高了收敛速度 缺点 程序大大复杂化 在计算机上的实现很困难 文献中很少采用,5.5加速收敛的其它方法,边界节点消去法(附加源项法) 消去边界
12、节点待求变量 明显减少待求变量的数量 正方形平面区域,边界节点所占份额4(N1/2-1)/N N=1000, 12.25% N=10000, 3.92% 立方体区域,边界节点所占份额(6N2/3-11N1/3+8)/N N=1000, 49.8% N=10000, 25.6% N=100000, 12.4% 求解区域缩小,边界内移,提高收敛速度,加速收敛的其它方法,调整步长和精度控制 尽可能采用较大的步长 较低的精度控制 前提:获得精度控制及步长无关解,5.6 收敛判据与收敛速度的控制,收敛判据:精度无关解 最大相对误差:max(- *)/ 最大绝对误差: max- * 余量范数: 最大迭代次数:,收敛判据与收敛速度的控制,收敛速度的控制 求解稳态问题的非稳态方法 欠松弛法 源项松弛 源项逐步加大法 网格尺寸的确定:网格无关解 等步长与变步长计算:均匀网格优先原则,简单的算例,求解下面的一维稳态导热问题:,节点数目对求解结果的影响,精度控制:0.5105,节点数量对迭代次数的影响,精度控制对迭代次数的影响,N300,精度控制对计算结果的影响,N300,End of This Lecture 5,THANK YOU,