计算传热学第5讲离散方程的求解、加速及注意事项
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
陶文铨《数值传热学》
第4章第4.4节 第7章
5.1 离散化方程的求解必须讲求方法
离散化代数方程的求解
不论何种方法 不论问题的性质如何 且一般是非线性的 具有基本重要性 不可或缺
离散化方程的求解必须讲求方法
直接方法(或精确解法)direct solution
计算传热学第5讲
离散方程的求解 Solution of Difference
Equations
本讲内容:
引言 几个基本事实 基本迭代法 加速收敛技术-块迭代法 加速收敛技术-多重网格法 加速收敛技术-块修正法 加速收敛技术-其它方法 收敛判据、收敛速度的控制及其它
阅读要求
法
也就是多重网格法
5.4.4 TDMA的扩展
增加直接求解的份额可以提高收敛速度 沿边界逐层构造方程组进行求解
迭代法的收敛速度
问题的性质 结点数目增加,收敛速度迅速降低 Recall:数值解的精度与子区域的大小有关
实际问题:结点数目非常大
为什么节点数增加,收敛速度下降?
边界条件信息向区域内部的传递速度
节点多了,层次多了,“路径” 长了,收敛速度慢了!
特别提示
加速边界信息的传递,必然会提高收敛 速度
i )
b ( * i1, j i1, j
i1)
c ( * i1, j i1, j
i1)
di, j1(
* i, j1
i ) ei, j1(i*, j1 i )
fi, j
整理后得到:
(ai, j di, j1 ei, j1)i bi1, j i1 ci1, j i1 gi, j
2nd
1st
扫描方向
3rd
2nd
线迭代法-说明
程序中扫描方向的设计
最佳方案:每个坐标方向上各进行来回两次扫描 简化方案:每个坐标方向上各进行一次扫描
对坐标系进行调整,起始线:确定信息
y
3rd
y
2nd
2nd 2nd
1st
1st
x
3rd
2nd
x
5.4.2 多重网格法
Multi-grid method的依据
未知数个数巨大 计算工作量太大,根本得不到解 舍入误差(round-off error)
得不到“精确解” 精确解法的结果往往是错误的
只能采用迭代法(iteration method)
在数值传热学中:基本重要性
普通迭代法
效率低 收敛速度慢 采用加速收敛方法(acceleration methods)
b' b aSS aNN
(8)
方程(7)形式上变为一维问题
线迭代法
说明: 形式上变为一维问题
b’中的S和N是未知的:上次迭代值
在同一条线上求解 逐线求解,直到覆盖整个求解区域。
扫 描 方 向
扫 描 方 向
线迭代法
当然,将方程(2) 还可以这样改写,
加速收敛的主要思路之一
几个基本事实
收敛速度与边界条件的类型有关
第一类边界:
边界信息最为确定,收敛速度最快
第三类边界:
边界信息较确定,收敛速度较快
第二类边界:
边界信息最不确定,收敛速度最慢
几个基本事实
收敛速度与问题的类型有关:
扩散型方程易于收敛 对流-扩散方程收敛慢 层流比紊流问题收敛更困难 线性问题比非线性问题容易收敛
线迭代法-说明
分类
Jacobi迭代 Gauss-Seidel迭代 松弛迭代 系数一定要采用Jacobi迭代,否则
扩散系数计算的不一致 导致违反流的相容性原则 迭代过程发散
线迭代法-说明
扫描方向与扫描起始线
对收敛速度的影响比较大
有确定信息的边界作为扫描起始线 扫描方向:对着边界信息较确定的边界 各边界信息量相同时:“短路径”原则
影响收敛速度的关键因素:边界信息的传递 节点数目增加,收敛速度降低
节点数目增加,边界到内部的相对路径增加,层 次增多
网格加密不利于误差矢量长波分量的衰减
方案:
在粗网格上求解:加速边界相息的传递 在密网格上求解:得到满足精度要求的解
多重网格法
由疏到密的过程
多重网格法
由密到疏的过程
(6)
5.4 加速收敛技术
为什么一定要采用加速收敛方法?
收敛速度成为制约因素
加速收敛的基本出发点:
加速边界信息的传递 增加直接求解的份额 最大限度地减少待求变量的数目
5.4.1块迭代法
块迭代法:Block iteration
将求解区域分成若干块(大的子区域) 未知数个数巨大 块:一条线和数条网格线组成 同一块上的待求变量用直接法求解 不同块之间用迭代法求解 这相当于:
其中,
g b c *
*
i, j
i1, j i1, j i1, j i1, j
di, j1
e *
i, j 1
i, j1
*
i, j1
fi, j
ai, j
* i, j
(13) (14) (15)
块修正法
将方程(14)对j求和,
(ai, j di, j1 ei, j1)i b i1, j i1 c i1, j i1 gi, j
j
0
Di gi, j 0
j
块修正法
所以,方程(17)当迭代收敛时有0解:
Bii Aii1 Cii1 Di (17)
Di gi, j 0
j
当迭代没有收敛时,利用方程(17)和 方程(12)可以得到更好的试探值
块修正法
说明:
它不是一种独立的解法 它只能提供“较好”的迭代试探值 程序的复杂化 为了提高试探值的精度,可以采用多块修正
复杂问题一般用亚松弛
公式(5):点迭代(stepwise iteration)
程序简单 收敛速度慢 计算机速度的提高:点迭代的可能性
松弛法(Relaxation method)
松弛法的基本思想:具有重要意义
点迭代 线迭代 源项等的处理:对于强源项问题,
S S (0) [S S (0) ]
代数方程可以分区域求解 各个区域间用迭代法完成
5.Leabharlann Baidu.1 块迭代法
最常用的方案:线迭代(line iteration)
对于二维问题,参见方程(2):
aPP aWW aEE aSS aNN b
改写:
aWW aPP aEE b'
(2) (7)
多重网格法
在精度要求不是特别高时,可以明显加 快收敛过程
如果精度要求非常高,效果不明显
1
2
3
n1
n2
n3
迭代 次数
多重网格法
缺点:
程序复杂化 专业程序开发人员
5.4.3 块修正法
Block-correction technique
基本出发点:
减少结点数目 加快边界信息向求解区域传递
5.2 几个基本事实
离散化方程的形式:
aPP anbnb b
对于二维问题, aPP aWW aEE aSS aNN b
对于一维问题,
aPP aWW aEE b 或者写成,
aWW aPP aEE b
39
迭代解,即,
P
(0) P
[P
(0) P
]
(1 )P(0) P
(4)
从方程(1)中解出P代入(4),有,
P (1)P(0)
anb aP
nb
b aP
(5)
松弛法(Relaxation method)
是松弛因子, relaxation factor
i, j
* i,j
i
(12)
i 1,2,3, ......, N j 1,2,3,.... .., M
这相当于假定i,j (j=1,2,3,…,M)这M个 待求变量可以在上次迭代值*i,j的基础上
加上同一个修正值得到。
将方程(12)代入方程(11)
块修正法
ai, j (i*, j
求解上述方程,得到修正量,代入方
程(12),得到新的迭代值。
i, j
* i,j
i
(12)
块修正法
收敛时,必然有[参见方程(11)],
a b c * i, j i, j
* i1, j i1, j
* i1, j i1, j
d e f *
多重网格法
实际操作时:
先由密到疏,再由疏到密
细网格:衰减误差的短波分量 粗网格:衰减误差的长波分量
迭代:控制迭代次数,监视迭代误差
尽可能采用直接法求解
最细层次网格上的迭代:控制迭代精度,监 视迭代次数
多重网格法
两层网格之间:
有尽可能多的“继承关系” 减少插值(由细到粗) 简化由粗到细网格的插值 (插值方法在这里是关键技术)
j
j
j
j
令,
Bi (ai, j di, j1 ei, j1)
j
Ai bi1, j
j
Ci ci1, j
j
Di gi, j
j
(16)
块修正法
于是有,
Bii Aii1 Cii1 Di (17)
i 2,3,4,......,N 1
基本思想:
把求解区域分为若干个“大的块儿” 在进行下一次迭代前对迭代初值进行估算: 下次迭代值=上次迭代值+修正值 假定同一块上的节点有相同的修正值
块修正法
对于二维问题,将方程(2)改写:
a b c i, j i, j
i1, j i1, j i1, j i1, j
0 < < 2 =1: Gauss-Seidel 迭代法 <1: 亚松弛(Under relaxation)~ >1: 超松弛(Over relaxation)~
松弛法(Relaxation method)
最佳松弛因子opt:
获得最快的收敛速度 不能事先预测
对于扩散型问题:超松弛可以加速收敛 亚松弛:改善收敛特性,抑制发散
aSS aPP aNN b''
(9)
b'' b aWW aEE
(10)
显然,它给出了竖直线之间的迭代。
扫描方向
扫描方向
线迭代法-说明
交替方向法(ADI, Alternative Direction Iteration) 特点:
增加了直接求解的份额 加速了边界信息的传递速度 大幅度地提高了收敛速度(与点迭代相比) 程序仍然相对简单 内存占用增加不多 属于必须掌握的方法
*
i, j1 i, j1 i, j1 i, j1 i, j
(18)
于是,
g b c *
*
i, j
i1, j i1, j i1, j i1, j
从而,
d e * i, j1 i, j1
* i, j1 i, j1
fi, j
ai,
*
j i,
收敛速度与迭代顺序有关 设定边界条件时一定要慎重
确定的待求变量数值
几个基本事实
三对角方程:可以高效直接求解
直接解法可以一次性传递边界信息 迭代过程中要尽可能多地采用直接法
5.3 基本迭代法-松弛法
松弛法(Relaxation method)
用上次迭代值(0)和本次迭代值构造本轮
(1) (2) (3)
(3a)
几个基本事实
离散化方程的形式
对于一维问题,它是一个三对角方程,TDMA法 对于多维问题:
大型稀疏系数矩阵 不能形成“对角”方程
对角方程:高效的求解方法
聪明的节点编号:“对角方程”
几个基本事实
迭代法是近似法
理论上:给出任意指定精度的近似解
di, j1 e i, j1 i, j1 i, j1 fi, j
(11)
经过若干次迭代后,得到了近似解*i,j
在此基础上,估算新的迭代值:
i, j
* i,j
i
i 1,2,3, ......, N j 1,2,3,.... .., M
(12)
块修正法
第4章第4.4节 第7章
5.1 离散化方程的求解必须讲求方法
离散化代数方程的求解
不论何种方法 不论问题的性质如何 且一般是非线性的 具有基本重要性 不可或缺
离散化方程的求解必须讲求方法
直接方法(或精确解法)direct solution
计算传热学第5讲
离散方程的求解 Solution of Difference
Equations
本讲内容:
引言 几个基本事实 基本迭代法 加速收敛技术-块迭代法 加速收敛技术-多重网格法 加速收敛技术-块修正法 加速收敛技术-其它方法 收敛判据、收敛速度的控制及其它
阅读要求
法
也就是多重网格法
5.4.4 TDMA的扩展
增加直接求解的份额可以提高收敛速度 沿边界逐层构造方程组进行求解
迭代法的收敛速度
问题的性质 结点数目增加,收敛速度迅速降低 Recall:数值解的精度与子区域的大小有关
实际问题:结点数目非常大
为什么节点数增加,收敛速度下降?
边界条件信息向区域内部的传递速度
节点多了,层次多了,“路径” 长了,收敛速度慢了!
特别提示
加速边界信息的传递,必然会提高收敛 速度
i )
b ( * i1, j i1, j
i1)
c ( * i1, j i1, j
i1)
di, j1(
* i, j1
i ) ei, j1(i*, j1 i )
fi, j
整理后得到:
(ai, j di, j1 ei, j1)i bi1, j i1 ci1, j i1 gi, j
2nd
1st
扫描方向
3rd
2nd
线迭代法-说明
程序中扫描方向的设计
最佳方案:每个坐标方向上各进行来回两次扫描 简化方案:每个坐标方向上各进行一次扫描
对坐标系进行调整,起始线:确定信息
y
3rd
y
2nd
2nd 2nd
1st
1st
x
3rd
2nd
x
5.4.2 多重网格法
Multi-grid method的依据
未知数个数巨大 计算工作量太大,根本得不到解 舍入误差(round-off error)
得不到“精确解” 精确解法的结果往往是错误的
只能采用迭代法(iteration method)
在数值传热学中:基本重要性
普通迭代法
效率低 收敛速度慢 采用加速收敛方法(acceleration methods)
b' b aSS aNN
(8)
方程(7)形式上变为一维问题
线迭代法
说明: 形式上变为一维问题
b’中的S和N是未知的:上次迭代值
在同一条线上求解 逐线求解,直到覆盖整个求解区域。
扫 描 方 向
扫 描 方 向
线迭代法
当然,将方程(2) 还可以这样改写,
加速收敛的主要思路之一
几个基本事实
收敛速度与边界条件的类型有关
第一类边界:
边界信息最为确定,收敛速度最快
第三类边界:
边界信息较确定,收敛速度较快
第二类边界:
边界信息最不确定,收敛速度最慢
几个基本事实
收敛速度与问题的类型有关:
扩散型方程易于收敛 对流-扩散方程收敛慢 层流比紊流问题收敛更困难 线性问题比非线性问题容易收敛
线迭代法-说明
分类
Jacobi迭代 Gauss-Seidel迭代 松弛迭代 系数一定要采用Jacobi迭代,否则
扩散系数计算的不一致 导致违反流的相容性原则 迭代过程发散
线迭代法-说明
扫描方向与扫描起始线
对收敛速度的影响比较大
有确定信息的边界作为扫描起始线 扫描方向:对着边界信息较确定的边界 各边界信息量相同时:“短路径”原则
影响收敛速度的关键因素:边界信息的传递 节点数目增加,收敛速度降低
节点数目增加,边界到内部的相对路径增加,层 次增多
网格加密不利于误差矢量长波分量的衰减
方案:
在粗网格上求解:加速边界相息的传递 在密网格上求解:得到满足精度要求的解
多重网格法
由疏到密的过程
多重网格法
由密到疏的过程
(6)
5.4 加速收敛技术
为什么一定要采用加速收敛方法?
收敛速度成为制约因素
加速收敛的基本出发点:
加速边界信息的传递 增加直接求解的份额 最大限度地减少待求变量的数目
5.4.1块迭代法
块迭代法:Block iteration
将求解区域分成若干块(大的子区域) 未知数个数巨大 块:一条线和数条网格线组成 同一块上的待求变量用直接法求解 不同块之间用迭代法求解 这相当于:
其中,
g b c *
*
i, j
i1, j i1, j i1, j i1, j
di, j1
e *
i, j 1
i, j1
*
i, j1
fi, j
ai, j
* i, j
(13) (14) (15)
块修正法
将方程(14)对j求和,
(ai, j di, j1 ei, j1)i b i1, j i1 c i1, j i1 gi, j
j
0
Di gi, j 0
j
块修正法
所以,方程(17)当迭代收敛时有0解:
Bii Aii1 Cii1 Di (17)
Di gi, j 0
j
当迭代没有收敛时,利用方程(17)和 方程(12)可以得到更好的试探值
块修正法
说明:
它不是一种独立的解法 它只能提供“较好”的迭代试探值 程序的复杂化 为了提高试探值的精度,可以采用多块修正
复杂问题一般用亚松弛
公式(5):点迭代(stepwise iteration)
程序简单 收敛速度慢 计算机速度的提高:点迭代的可能性
松弛法(Relaxation method)
松弛法的基本思想:具有重要意义
点迭代 线迭代 源项等的处理:对于强源项问题,
S S (0) [S S (0) ]
代数方程可以分区域求解 各个区域间用迭代法完成
5.Leabharlann Baidu.1 块迭代法
最常用的方案:线迭代(line iteration)
对于二维问题,参见方程(2):
aPP aWW aEE aSS aNN b
改写:
aWW aPP aEE b'
(2) (7)
多重网格法
在精度要求不是特别高时,可以明显加 快收敛过程
如果精度要求非常高,效果不明显
1
2
3
n1
n2
n3
迭代 次数
多重网格法
缺点:
程序复杂化 专业程序开发人员
5.4.3 块修正法
Block-correction technique
基本出发点:
减少结点数目 加快边界信息向求解区域传递
5.2 几个基本事实
离散化方程的形式:
aPP anbnb b
对于二维问题, aPP aWW aEE aSS aNN b
对于一维问题,
aPP aWW aEE b 或者写成,
aWW aPP aEE b
39
迭代解,即,
P
(0) P
[P
(0) P
]
(1 )P(0) P
(4)
从方程(1)中解出P代入(4),有,
P (1)P(0)
anb aP
nb
b aP
(5)
松弛法(Relaxation method)
是松弛因子, relaxation factor
i, j
* i,j
i
(12)
i 1,2,3, ......, N j 1,2,3,.... .., M
这相当于假定i,j (j=1,2,3,…,M)这M个 待求变量可以在上次迭代值*i,j的基础上
加上同一个修正值得到。
将方程(12)代入方程(11)
块修正法
ai, j (i*, j
求解上述方程,得到修正量,代入方
程(12),得到新的迭代值。
i, j
* i,j
i
(12)
块修正法
收敛时,必然有[参见方程(11)],
a b c * i, j i, j
* i1, j i1, j
* i1, j i1, j
d e f *
多重网格法
实际操作时:
先由密到疏,再由疏到密
细网格:衰减误差的短波分量 粗网格:衰减误差的长波分量
迭代:控制迭代次数,监视迭代误差
尽可能采用直接法求解
最细层次网格上的迭代:控制迭代精度,监 视迭代次数
多重网格法
两层网格之间:
有尽可能多的“继承关系” 减少插值(由细到粗) 简化由粗到细网格的插值 (插值方法在这里是关键技术)
j
j
j
j
令,
Bi (ai, j di, j1 ei, j1)
j
Ai bi1, j
j
Ci ci1, j
j
Di gi, j
j
(16)
块修正法
于是有,
Bii Aii1 Cii1 Di (17)
i 2,3,4,......,N 1
基本思想:
把求解区域分为若干个“大的块儿” 在进行下一次迭代前对迭代初值进行估算: 下次迭代值=上次迭代值+修正值 假定同一块上的节点有相同的修正值
块修正法
对于二维问题,将方程(2)改写:
a b c i, j i, j
i1, j i1, j i1, j i1, j
0 < < 2 =1: Gauss-Seidel 迭代法 <1: 亚松弛(Under relaxation)~ >1: 超松弛(Over relaxation)~
松弛法(Relaxation method)
最佳松弛因子opt:
获得最快的收敛速度 不能事先预测
对于扩散型问题:超松弛可以加速收敛 亚松弛:改善收敛特性,抑制发散
aSS aPP aNN b''
(9)
b'' b aWW aEE
(10)
显然,它给出了竖直线之间的迭代。
扫描方向
扫描方向
线迭代法-说明
交替方向法(ADI, Alternative Direction Iteration) 特点:
增加了直接求解的份额 加速了边界信息的传递速度 大幅度地提高了收敛速度(与点迭代相比) 程序仍然相对简单 内存占用增加不多 属于必须掌握的方法
*
i, j1 i, j1 i, j1 i, j1 i, j
(18)
于是,
g b c *
*
i, j
i1, j i1, j i1, j i1, j
从而,
d e * i, j1 i, j1
* i, j1 i, j1
fi, j
ai,
*
j i,
收敛速度与迭代顺序有关 设定边界条件时一定要慎重
确定的待求变量数值
几个基本事实
三对角方程:可以高效直接求解
直接解法可以一次性传递边界信息 迭代过程中要尽可能多地采用直接法
5.3 基本迭代法-松弛法
松弛法(Relaxation method)
用上次迭代值(0)和本次迭代值构造本轮
(1) (2) (3)
(3a)
几个基本事实
离散化方程的形式
对于一维问题,它是一个三对角方程,TDMA法 对于多维问题:
大型稀疏系数矩阵 不能形成“对角”方程
对角方程:高效的求解方法
聪明的节点编号:“对角方程”
几个基本事实
迭代法是近似法
理论上:给出任意指定精度的近似解
di, j1 e i, j1 i, j1 i, j1 fi, j
(11)
经过若干次迭代后,得到了近似解*i,j
在此基础上,估算新的迭代值:
i, j
* i,j
i
i 1,2,3, ......, N j 1,2,3,.... .., M
(12)
块修正法