用户已关闭隐式函数计算_PDE有限差分方法(7)——热方程计算效率的提升

仅用一种格式计算效率通常不如同时用几种格式,在计算的时候把各个格式的“好”的地方挑出来,“坏”的地方舍弃,从而实现计算效率的提升。

参考书:
(1) J.W. Thomas - Numerical Partial Differential Equations_ Finite Difference Methods (1995, Springer)
(2) 张强《偏微分方程的有限差分方法》科学出版社,2019年1月版。
(3) K. W. Morton, D. F. Mayers - Numerical solution of partial differential equations (2005, Cambridge University Press)

今天的内容包括:

34ab5330f87262d0ca9494ef691e96d2.png

1 时间步长的轮替策略

等距网格通常不是数值计算的最佳选择, 如果能够依据真解的局部光滑程度, 疏密相间设置时空网格点, 则利用同一类型格式达到用户精度要求的整体计算量会显著减少, 相应CPU时间会得到大幅度的降低. 下面设空间网格是等距的.

在保证全显格式
模稳定的前提下, 若采用等距时间网格, 则可用的最大时间步长是

若循环交替使用两个时间步长
则可用的平均时间步长
可以达到

证明:用Fourier方法的基本原理, 经过

时间发展之后,
波数的简谐波振幅变化率是

格式是

模稳定的充要条件是von Neumann条件成立, 即

取Chebyshev最佳逼近多项式, 即

可以满足上式, 两个网比满足

平均时间步长为
QED


2 交替使用不同格式

进行数值计算时可以交替使用两种格式,实现效率提升.

(1)按空间标号分组. 把空间指标是奇数(偶数)的点叫做奇数点(偶数点), 奇数点采用全显格式, 偶数点采用全隐格式, 则有

计算的时候, 先显式计算所有奇数点值, 再求余下的偶数点值, 这样求解过程可以显式完成. 这个格式叫半隐格式. 这个格式的局部截断误差阶是(2,1).

分析

模稳定性时, 可以把这个格式视为向量型双层格式, 代入模态解

得到递推关系与增长矩阵
, 容易验证von Neumann条件为
此时这个格式是无条件
模稳定的. 由Kreiss定理, von Neumann条件也是充分的.

与全显格式相比, 这个交替格式有宽松的

模稳定性条件, 计算效率可以达到全显格式的两倍.

(2)按时空指标之和分组. 若时空指标之和是奇数(偶数), 则把它叫做奇数点(偶数点), 让奇数点采用全显格式, 偶数点采用全隐格式, 可得到跳点格式

它无条件具有

模稳定性.

为偶数时,
为奇数, 从而

消去二阶中心差商项可得

再消去奇数点值

可得

这就是DF格式. 即偶数点集构成了DF格式. 当网比固定时, 跳点格式有二阶相容性.

(3)按时间标号分组. 如果时间指标是奇数(偶数), 则称之为奇数点(偶数点), 在时间推进过程中交替使用全显和全隐格式, 即可得到显隐交替格式. 当然, 显隐交替格式比全隐格式的计算效率更高. 由于执行次序不同, 可以先显再隐:

也可以先隐再显:

容易验证这两个格式都是无条件

模稳定的.

先显再隐格式的偶数点对应Crank-Nicolson格式, 奇数点对应Richardson格式, 因此任意网格点都有(2,2)阶局部截断误差.

3 Saul'ev格式

Saul'ev格式是非对称格式, 采取左低右高或左高右低的方式, 不再左右对称.

偏右版本(左低右高):

偏左版本(左高右低):

v2-6a24b0aba5b42cf8f1ea747a5186df91_b.jpg

偏右版本的离散过程如下: 设

为离散焦点,
先用半步中心差商离散时间导数.

再用一阶空间导数的半步中心差商, 并上下迁移时间的离散位置, 得到

继续用中心差商离散一阶空间导数, 有

这里的三阶导数可以迁移到离散焦点:

略去无穷小量, 用数值解代替真解即可得到差分方程.

根据构造过程, Saul'ev格式的局部截断误差是

这是有条件相容的! 容易验证, Saul'ev格式无条件有

模稳定性.

一般不单独使用Saul'ev格式, 而是综合运用两个版本. 4种策略如下:

(1) 循环扫描策略: 连续两次的时间推进过程中, 交替使用Saul'ev格式的两个版本.

消去中间时间层网格函数

(作业)可得

局部截断误差是

1f25e18bf41090522b52368d2b0093e7.png

(2) 平均策略. 用Saul'ev格式的两个版本给出后续时刻的两种网格函数

然后定义后续时刻的数值解为

消去辅助的

(作业), 可得

局部截断误差是

这两种策略都具有整体二阶的局部截断误差, 比单独用Saul'ev好.

注:计算局部截断误差需要消去辅助的网格函数(回顾局部截断误差的定义). 但是分析稳定性不需要消去辅助网格函数.

(3) 显式分组格式. 如下图, 搭建Saul'ev格式的两个版本: (

对应两个不同版本)

09aeb517097f53523ebbf0a73ccf4b13.png

把上面看作

的线性方程组, 可以解得

把空间网格点按奇数点与偶数点分成两组, 各组的推进可以并行计算, 分配给不同的CPU来执行, 计算效率提高.

显式分组格式与Saul'ev格式有相同的相容阶, 且显式分组格式

模稳定的充分必要条件是

(4)隐式分组格式: 相当于把显式分组格式的思想作推广. 把空间网格点分割成若干个小规模的网格点组. (下图中,

对应两个不同分组)

1387bf6f647d9b8e4c92218550ecbd87.png

在网格点组的内部用全隐格式, 而在网格点组的边界位置用Saul'ev格式(偏左或偏右). 这样, 全隐格式的耦合规模下降, 且各组变成线性方程组以后可以同步求解(并行计算), 每个网格点组只需要相邻点组提供两个公共数据即可, 并行效率很高. 此外, 隐式分组格式可以用更大的时间步长.

835d88b1361748971bf663ddc8dea125.png


今天内容貌似比上次要少一点,但实际上我省略了很多重复性的计算工作(但也有必要训练),读者需要自行补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值