§7. TVD格式
一、背景
1.求解线性波动方程utaux0aconst的经典差分格式 (1)一阶迎风格式(First order)
nnuuj1ja0n1n, ujujannujuj1a0其中t。上式也可以写为: x1nnununjj(fj1/2fj1/2)fjn1/2fjn1/2an(uj1unj)2an(unjuj1)2a2a2n(unj1uj)
n(unjuj1) (2)Lax-Friedrichs格式 (First order)
1unj1nnuj1unj1unj1uj12a0t2x
或
1nnnunu(ffjjj1/2j1/2)fjn1/2fjn1/2an1n(uj1un)(uj1unjj) 22ann(un(unjuj1)juj1)22nj1 (3)Lax-Wendroff格式 (second order)
1ununjjtuaunj12xa2tnn u2unjuj1。2j12x或
1nnununjj(fj1/2fj1/2)fnj1/2fjn1/2ana2nn(uj1uj)(uj1unj) 22ana2nn(ujuj1)(ujunj1)221
(4)Warming-Beam格式 (Second order)
1ununjjt1ununjj3uaanjn4unj1uj22x3unj4unj1unj22xa2tnnu2unj1uj a02j2 2xa2tnnu2unj1uj a02j22xt
2.二阶以上的差分或有限体积格式在间断附近的解可能会出现振荡。而一阶精度的格式通常会把激波“抹平”。参见图1和图2的(a),(b)。
图1 线性对流方程的解
图2
我们希望,构造一种二阶或以上精度的格式,使之可以比较准确的计算含有间断的流动,同时不产生非物理的数值振荡。这种格式称为“高分辨率格式”(如图1的(c),(d),图2的(c))。
2
3.单调格式
单调格式是一种没有数值振荡的格式,它的定义为: 定义:单调格式,设差分格式可以写为:
uin1H(uinr1,,uins) (1)
其中r ,s为非负整数。如果 j,
H0nuj,则(1)式称为单调格式。一阶迎风和Lax-
Friedrichs格式为单调格式。
4.单调格式的性质
u,利用单调格式(1)求得u,则:
★ 已知
nin1imax{uin1}max{uin}ii
min{uin1}min{uin}iin1min{unmax{unj}uij}jj
★线性波动方程
uua0的差分格式: txun1ibkuink (2)
kklkr是单调格式的充分必要条件是k,bk0。
★ Godunov定理 线性单调格式最多能达到一阶精度。 5.保单调性
nn1n假定ui是单调的,如果通过(1)式得到的ui具有与ui相同的单调性,则说差
分格式(1)式具有保单调性。容易证明,(1)单调格式具有保单调性,(2)不存在二阶或二阶以上精度的线性保单调格式。即如果(2)式为线性格式(bk为常数)且具有保单调性,则(2)式至多有一阶精度。
6.所谓高分辨率格式,是具有保单调性的,二阶或二阶以上精度的格式。容易知道,这类格式必定是非线性格式,即使求解的方程是线性的。本节我们只介绍其中的一种典型高分辨率格式:TVD格式。
二、TVD格式的概念
TVD(Total Variation Diminishing)格式即总变差减小(不增)格式。所谓总变差,是衡量函数的光滑性的一种指标,其定义为:
TV(u)u(x)dx (3)
在离散点上,u{ui},有:
3
nnTV(u)niuni1uin (4)
可以证明一维线性和非线性标量守恒律的解满足,
TV(u(t2))TV(u(t1))t2t1
这种性质称为TVD性质。既然一维标量守恒律的解析解满足TVD性质,要求其数值解也具有TVD性质就是很自然的了。 定义:TVD格式
uin1H(uinr1,...,uins) (5)
称为TVD格式,如果
TV(un1)TV(un)n
容易证明:TVD格式具有保单调性,所以在间断附近不会出现非物理振荡。
三、TVD格式的构造
1. TVD格式的充分条件和构造原则
设一维标量守恒律
uf0的差分格式可以写成: txuin1uinC1ui2i12D1ui2i12 (6)
nn其中ui12uni1u。C1,D1不仅与x,t有关,而且与物理量ui,ui1等有关。
nii2i2Harten证明了下列定理:
定理: (6)式是TVD格式的充分条件是:
C,, (7)
根据这一条件,我们可以构造精度高于一阶的TVD格式。下面介绍构造TVD格式的思路。 方程
i120Di1200Ci12Di121uf0;fuau的差分格式为: txuin1uintff11ixi22TVD1i2 (8a)
如果(8)具有TVD性质,记此时的数值通量为f。即
uin1uintTVDTVD (8b) ff11iix224
如果要求格式具有高于一阶精度,则fTVD1可以写成:
i2TVD1i2LD1i2ffHIL01f1f1iii222 (9)
L0HI其中fi1/2是某一阶格式的数值通量,fi1/2是二阶格式的数值通量。i1/2称为通量器
(flux limiter)。我们希望选择合适的1,使格式在光滑区具有二阶精度。当采用三点格式
i2时,fL0HIi1/2,fi1/2可写成如下一般形式:
fL0nni1/20aui1aui1
fHInni1/20aui1aui1 fL0i1/2可以有多种取法,如取
0121s,1121s 时,fL0i1/2为一阶迎风格式的数值通量,其中
ssign(a)。 当取:
011c12c,12c1c
时,fL0i1/2对应的差分格式为Lax-Friedrichs格式。注意,上式中catx。 二阶精度的三点格式只有Lax-Wendroff格式,即:
1021c111c,2
把(10)式代入(9)式,有
fTVDi12[0(00)i12](auni)[1(1n1)i12](aui1) 把(13)代入(8b)式,得:
un1iuniCui1Dui122 Cc[0(00)i1]2
Dc[1(11)i1]2
5
10)
11)
12)
13) 14)
(((((22
由(14)式,我们希望选取适当的0、0、,使得TVD条件(7)式得到满足,且格式为二阶精度。
ui1uinuin1ui1uin1uin2、迎风型TVD格式
如果我们取记
L0fi12为一阶迎风格式的数值通量,则得到的差分格式称为迎风型TVD格式,
ii1212。则TVD格式的数值通量可以写为:
fTVDi12n1nau(1c)ui11aii222aun1(1c)una11i1ii222,此时:
a0
a0当a>0时,
L0nfi1aui201,10,c0Cc[1(01)i],Dc11121012(1c),12(1c)1 (15) 2(14)式可以改写为:
ˆu1 (16) uin1uinCi2ˆCD/r,ru1u1 Cii22Harten的TVD条件此时为:
1Oc[1(01)i11i1]1 (17)
22r 由(17)式,
i12应是r的函数。显然我们要求
22c[1(01)i1]c1i1我们要求是有界的。所以可以对
11c[1(01)i1] (18)
2r112引入下列条件:
BiT12i,r (19)
B、T与i和r无关。(19)式可以等价地写为:
c[1(01)T]c[1(01)i1]c[1(01)B] (20)
2 6
易知下式是(18)式成立的充分条件:
c[1(01)T]c1i1 对(21)式左边不等式进行分析,可知:
211c[1(01)B] (21) rifr0ifr0 (22)
i(r)12LLLrT对(21)中右侧不等式进行分析,有
1r1。
1ri2RrRrifr0 if r0 (23)
RrB1crc1
利用(19),(22),(23)式可以确定
i12r的具体形式。
在讨论
i12r的具体形式之前,先讨论一下方程
uf0tx
中a0的情况。此时,(14)式可以改写为:
fau
ˆuuin1uinDi12 (24)
ˆDC DrHarten的TVD格式的充分条件为:
uri1212u
i0c111101ii22引入约束条件
11r (25)
B为了满足TVD条件,需有:
i12T
(26)
c111Tc0i1211c111Br (27)
注意到此时a0,c0,如果把c用c代替,则(27)式与(21)式在形式上是相同
7
的。但是注意到a0和a0两种情况r的定义不同。把(27)式应用于
i11i2处(把2i换为
12)。则(21),(27)式可以写成统一的形式。因此(22),(23)式也可以写成既
i12处)
(28)
使用于a0,也适用于a0的一般形式(在
BrT
rLrLrr0
r0 r0r0 21cr
(29
RrrRr (30)
LrT (31)
2RrBrc
(32)
rupwindlocaluinuin1nui1uinnnuui2i1nnuui1i
a0a0
(33)
为了确定(r)的具体形式,必须首先规定B,T的值。一个常用的取法是
B0, T2 (34) 1c2时fiTVD1/2为一阶1c注意到当
=B=0时,fTVD为一阶迎风格式的数值通量。
Ti1/2T的取法具有一定的任意性,“顺风”格式的数值通量。必须注意,不同的取法,对于r平面上TVD格式对应的区域有直接影响。如Sweby取T2,他得到的TVD区域
T2的情况不尽相同。把(34)式代入(31)、(32)有 1c 8
L(r)0,R(r)即(28)~(30)式可以化为:
2r (35) c0(r)2 (36) 1c(r)002rc2rcr0 (37) r0r0
(38)
(r)由(36)~(38)式,知:
r0220(r)min(,r)1cc (39) r0时 (r)0r0时满足(39)式的(r)对应的格式,均为TVD格式。由(39)式,(r)的取法并不唯一。 另外,如何使TVD格式达到二阶精度呢?容易看出其条件为(1)1。注意到(r)1,(8b)为Lax-Wendroff格式,这是一个二阶精度的格式。容易验证,当(r)r时,(8b)为Warming-Beam二阶迎风格式。所以,当(r)夹在直线(r)1和(r)r之间时,格式(8b)可以看作两个二阶格式的加权平均,具有二阶精度。Sweby建议:(r)应尽量位于(r)1和(r)r之间。
下面介绍几种常用的通量器(r): ULTRABEE
r00c2 ubr 0r1cc2cr1c1cSUPERBEE
9
(r)2r (r)r
(r)1
ub sb vl mb
02rsb(r)1r2VANLEER
r00r121r121r2 r2
r00vl(r)2r1r r0
VANALBADA
r00va(r)r(1r)1r2 r0
MINBEE(MINMOD)
0mb(r)r1r00r1 r1
不同的器的性能有一定差别。(r)越大,格式的耗散越小,对激波的分辨率越高。但是,(r)过大,数值结果中可能出现一些异常现象。如正弦波可能变为方波的形状,甚至
10
可能导致计算失稳。对于定常流动的计算,使用光滑的器容易收敛到较小的残差。
3、非线性标量守恒律的TVD格式
uf0考虑方程tx,设它的差分格式可以写为:
uin1uin 令
tfi1/2fi1/2 (40) xt(fi1/2f(ui))(fi1/2f(ui)),Di1/2,Ci1/2 (41) xui1/2ui1/2则(40)式可以改写为:
uin1uinCi1/2ui1/2Di1/2ui1/2 (42)
迎风型TVD格式的数值通量可以写成下面的形式,
LOHILOfi1/2fiTVDfff1/2i1/2i1/2i1/2i1/2。 (43)
迎风格式的数值通量为
LOfi1/21~fifi11aui1/222i1/2, (44)
其中:
~ai1/2fi1fiuui1ifui1/2ui1ui0ui1ui0 (45)
Lax-Wendroff格式的数值通量为
fHIi1/2~2t11ai1/2(fi1fi)(ui1ui)22x。 (46)
~把(43)-(46)式代入(42),可得(42)中C,D的表达式。容易验证C,D的表达式与(15)式形式上是相同的, 只须以a代替a即可。由此可以看出,线性方程的TVD格式的推导,同样适用于非线性方程。即ψ的形式线性方程和非线性方程是相同的。
4、非线性守恒方程组的TVD格式
可以证明,非线性双曲型守恒方程组(系统)的解析解本身不具备TVD的特点。所以
要求求解守恒方程的格式具有TVD的性质是不需要的,甚至是有害的。实际上,有人已经
11
证明,不存在求解非线性守恒系统的TVD格式。所以所谓非线性守恒系统的TVD格式只是对标量方程TVD格式的形式上的推广。
uf0tx先考虑标量方程,它的TVD格式的数值通量为
LOHILOfiTVDfff1/2i1/2i1/2i1/2i1/2 (47)
LOHIfi1/2和fi1/2的表达式见(44)、(46)式。(47)式可以进一步整理为:
fTVDi1/2~2ta11~(fi1fi)[i1/2i1/2(1i1/2)ai1/2](ui1ui)22x (48)
UF0tx (49)
下面把(48)式推广到非线性双曲型守恒系统的情况。考虑守恒律系统:
~~A(Ui,UR)存在。且A假定在i1/2处,Roe的线性化矩阵的特征值为
(j),(j1,2,...,m;m为方程的维数),相应的左右特征向量为i1/2(l(j))i1/2;(r(j))i1/2,(j1,2,...,m)。则把(48)式推广到求解(49)式的方法为:
(1)、把(48)式中的ui1ui和
1(fi1fi)用特征变量代替,即: 2ui1ui(l(j))1(Ui1Ui)i(fi1fi)/2(l(j))2i12(Fi1Fi)/2
~(j)代替。 Ai1/2,用矩阵的特征值(2)、把(48)式中的ai1/2(3)、(33)式中的r用特征变量的差分来定义,即:
r(j)(l(j))1(UinUin1)i2(j)0,(l)(UnUn)i1i1i2(j)i12 (50) nn(l(j))i1(Ui2Ui1)2(j)0,(l(j))1(Uin1Uin)i12i2(j),由特征变量的差分代替标量方程的(4)、上述(1)-(3)相当于对每一个特征值i1/2(j),(j1,2,...,m)进行上述替代后,可得第j个特征变量对应的特差分。在对每个特征值
~征数值通量为
12
1TVD(l(j))i1/2Fi1/2(l(j))i1/2(Fi1Fi)2 。 (j)2()i1/2t1[i1/2(1i1/2)((j))i1/2](l(j))i1/2(Ui1Ui)2x
最后,再把数值通量由特征变量的空间投影回物理变量的空间。利用关系
()r(j)(l(j)()),
mj1其中()代表任意的m维列向量,可知,非线性双曲型守恒系统的迎风型TVD格式的数值通量可以写为:
FTVD1i21(FiFi1)2(j))2t(1i1m(j)(j)2(j)(r)(1(r))111ii2j1i2x22 ()(rj1(j))1ii22(51)
j其中:i12(l(j))1i2(Ui1Ui),r(j)由(50)式计算,(r(j))i12~A(Ui,UR)对应的是
右特征向量。
思考:如何把TVD格式推广到求解问题?
§8、有限体积方法的高阶数据重构,MUSCL插值
一、一维问题的MUSCL-Hancock方法
MUSCL-Hancock方法是基于Riemann问题的精确解和近似解的时、空方向均为二阶精度的有限体积方法。
13
1.数据重构
[i11,i]22中是线性分布,则在
为了达到空间二阶精度,我们假定这个控制体中
U(x,tn)在控制体
niUi(x,tn)Ui(xxi)x (52)
nnnnn(UUiii1i1)/2,或其中是反应物理量坡度的矢量,最简单的取法可以为nnn(UUii1i)等。容易证明
xix121i2Ui(x,tn)dxxniUin (52)
n这一条件称为相容条件。(51)式称为对U的一阶数据重构。i的确定方法在稍后详细讨n论,现在假定i已经确定,则可以得到单元交界面的左右两侧物理量的值为:
ULi12niUi(x1,tn)Ui22ni (53)
URi12Ui1(xi12,tn)Uni1ni12 (54)
2.
tnt2时刻界面物理量的计算
为了达到时间方向二阶精度,把方程推进半个时间步,计算tnt/2时刻的单元两侧
LR的物理量Ui1/2,Ui1/2:
L1tLRU1UL1F(U)F(U)11 (55) iiii2x2222R1tRLRU1U1F(Ui1)F(Ui1) (56) ii2x2222 14
3. 求解Riemann问题
LR令ULUi1/2,URUi1/2。把UL、UR做为Riemann问题的初始条件,精确或近
似地求出Ui1/2(x/t),则数值通量Fi1/2为:
Fi1F(Ui1(0))22 (57)
这样,求解
UF0tx
的有限体积格式可以写为:
Uin1UintFi1Fi1x22
(58)
通过下一小节的分析,我们可以证明,该方法时间和空间均可达到二阶精度。
4. MUSCL插值
n1中简述了数据重构的方法,下面对i的确定方法做进一步讨论。当采用1中所述简
单重构方法时,格式为二阶精度,但在间断附近会产生数值振荡。为了避免数值振荡,必须
n对i进行某种。这种思想最初源于Van Leer的Montone Upstream-Centered Scheme for
Conservation Laws。所以通常简称为MUSCL插值(或重构)方法。MUSCL插值的方法有很多,这里介绍一种根据TVD格式中的通量器(Flux Limiter)方法构造的MUSCL重构方法。通过这种方法,对于标量线性双曲型方程,可以构造出和前面讨论的TVD格式完全等价的MUSCL-Hancock格式,由此我们知道,MUSCL-Hancock也具有时空二阶精度。
考虑标量线性双曲型方程
uua0tx
具有TVD性质的迎风格式的数值通量可以写为:
fTVD1i2n1nauii1(1c)ui1a222aun1(1c)una11i1ii222a0 (59)
a0这相当于Riemann问题的解为:
15
ui12n1nu(1c)ui11ii222un1(1c)un11i1ii222a0 (60)
a0在采用MUSL-Hancock格式时,(60)相当于(55)(56)式中,tnt/2时刻的左右状态为:
u~Ln1i1uii1(1c)un1222i2 u~Rn1i1ui12i1(1c)un122i2 又由
u~LatLi1uL2i122xui1uR2i12 u~Rati1uR2i122xuLuRi32i12
考虑到(53),(54)式,即:
nnuLniRiu1i1unii22u
i22
nnuRnni1uii1L122u
i3uii1122
可得:
uL1/2uni1i2(1c)ni uRn1i1/2ui12(1c)ni1 比较(61),(62)和(),(65)式,有:
nii1una02i12ni1i1uni1a0
22或
na0ni1u12i2i ni1ui1a0 22
16
61) 62) () (65) 65)
( ( (n在这里称为坡度器(slope limiter)。当的取法不同时,i的表达式也不相同。一
种常用的“slope limiter”是:
max[0,min(un1,un1),min(un1,un1)]iiiin2222innnnmin[0,max(ui1,ui1),max(ui1,ui1)]2222whenwhenun10ini212u0 (67)
容易证明,当(67)式中1时,相当于(66)式中 取MINMOD器。2时,相当于(66)式中
取SUPERBEE器。为了以后的表达方便,可以把(66)
,(67)
式抽象地写成in(uin1/2,uin1/2)。是坡度的平均算子。
把上述MUSEL插值方法推广到方程组时可以简单地把(66)或(67)式应用于守恒变量的差分Uin1/2的各个分量。另外一种计算效果更佳的推广方法是对特征量的差分进行坡度,即:
n,如U(1)估算U1i2ni121n为Un,Un的Roe平均。 (Uin1Uin)或者取U1i1ii22n,计算(i+1/2)处的特征值和特征向量。特征值为(2)根据U1i2(k),(k1,2,...,m;m为方程的维数),相应的左右特征向量为i1/2(l(k))i1/2;(r(k))i1/2,(k1,2,...,m)。
(3)计算(i+1/2)左右j=(i-1,i,i+1,i+2)各点的特征变量。v(k)j(l(k))i1/2Uj,
k1,2,3,...,m。
(4)计算特征变量的坡度。
n,(k)imax[0,min(vn,(1k),vn,(1k)),min(vn,(1k),vn,(1k))]iiii2222n,(k)n,(k)n,(k)n,(k)min[0,max(vi1,vi1),max(vi1,vi1)]2222max[0,min(vn,(1k),vn,(3k)),min(vn,(1k),vn,(3k))]iiii2222n,(k)n,(k)n,(k)n,(k)min[0,max(vi1,vi3),max(vi1,vi3)]2222n,(k)L,R。 1i2whenwhenwhenwhenvn,(1k)0iv2n,(k)1i20
vn,(3k)0in,(k)i1v2n,(k)3i20
(5)计算(i+1/2)处的特征变量(v(6)计算(i+1/2)处的守恒变量
)(U
nL,Ri1/2)r(k)(vn,(1k))L,R (68)
k1i2m17
L,R(7)在所有界面计算出(Uin后,即可按照(55)~(58)的步骤推进求解。 1/2)
二.问题的MUSCL-Hancock方法
下面把MUSCL-Hancock方法推广到问题。为了使问题简化,我们只考虑网格是充分光滑的情况,如下图所示:
对于网格分布不光滑和非结构网格的情况,也有适当的处理方法,这里不准备介绍。
1.重构
(x,y)(x,y) 使得指标j 相同的控制体的中心
在光滑网格上,我们可以引入坐标变换点处为
j的坐标线。指标i相同的控制体的中心为
i 的坐标线。这样,当在控制
体i,j内采用线性重构时,有:
Ui,j(x,y,tn)Ui,j(,,tn)Ui,j()i,j(j)(i)()i,j (69)
11i,ji,j2 和 2 处守恒变量的值,事实上,我们感兴趣的只是 因此,不必关心 (69) 式
中 , 的具体计算方法,由 (69) 式有:
UiLUij12i,j1,j2R1Ui1,jUij2i,j2 L1Ui,j1Uij2i,j2R1Ui,j1Uij2i,j2 (70)
,的计算方法与一维问题类似,例如:
18
i,jUi1,jUi,j,Ui,jUi1,j (71)
2.ttnt/2时刻界面物理量的计算
t4UFiGjnlSS2ij1
(72)
22111Si,ji,jSi222,j时 其中,。当
LLFiGjnlS(F(Ui1,j)iG(Ui1,j)j)ni1,jli1,j22
当Si12,j时,
RRFiGjnlS(F(Ui1,j)iG(Ui1,j)j)ni1,jli1,j2222
当Si,j12时可以类似写出。在求得U后,
L1UL1U Ui,ji,j2222 (73)
R1UR1U Ui,ji,jn1Uij3. 求解Riemann问题计算
L,R2
1U1当作左右状态,通过求解扩张的一维Euler方程的Riemann问题可以计算出把Ui,ji,jL,R2数值通量,从而求得
n1Uij。具体做法参见§4。
§7. 半离散的TVD格式
一、半离散TVD格式的定义
定义:半离散格式
ui1 (1) ff11iitx22称为TVD格式,如果
19
此时,记数值通量为fi12dTV(u)0。 dtfTVD1。
i2二 半离散TVD格式的充分条件
设一维标量守恒律
uf0的差分格式可以写成: txui1(C1u1D1u1) (2)
iiiitx2222其中u12iuni1u。C1,D1不仅与x,t有关,而且与物理量ui,ui1等有关。
nii2i2nn
则(2)式是TVD格式的充分条件是:
Ci120,
Di120 (3)
根据这一条件,我们可以构造精度高于一阶的TVD格式。下面介绍构造TVD格式的思路。 方程
iuf0;fuau的某一差分格式具有TVD性质,记此时的数值通量为txfTVD1。即
2ui1TVDTVDff (4) 11iitx22如果要求格式具有高于一阶精度,则fTVD1i2可以写成:
LOfTVD1f1i2i2HILOff111 (5) iii222其中fi1/2是某一阶格式的数值通量,fi1/2是二阶格式的数值通量。i1/2称为通量器(flux limiter)。我们希望选择合适的L0HIi12L0HI,使格式在光滑区具有二阶精度。当采用三点格式
时,fi1/2,fi1/2可写成如下一般形式:
L0nnfi1/20aui1aui1
HInnfi1/20aui1aui1 (6)
把(6)式代入(5)式,有
20
fiTVD[0(00)i1](auin)[1(11)i1](auin1) (7) 1222 把(7)代入(4)式,得:
uin1uinCui1Dui122 (8)
Cc[0(00)i1]2
Dc[1(11)i1]
2
ui1uinuin12
ui1uin1uin2,cat x 我们希望选取适当的0、0、,使得TVD条件(3)式得到满足,且格式为二阶精度。 实际上,半离散格式具有TVD性质的条件比全离散格式要宽松,所以,全离散TVD格式在半离散意义上也具有TVD性质。
三、迎风型半离散TVD格式
我们考虑迎风型格式,fi1/2取为:
L00其中ssign(a)。
11s111s22, (9)
二阶精度的三点格式取中心格式,即:
011,1 (10) 22为了方便,我们使用全离散格式的TVD条件作为半离散格式的TVD条件。这样做的原因
是:1)由此得到的半离散TVD格式在时间方向作简单的前差离散时,得到的格式有TVD性质;2)便于应用TVD-Runge-Kutta方法,因为TVD-Runge-Kutta方法应用的条件是对应的时间前差离散格式具有TVD性质。
当a>0时,
L0nfi1aui2,此时:
01,10,c0Cc[1(01)i],Dc11121012,121 (11) 2(8)式可以改写为:
ˆu1 (12) uin1uinCi2 21
ˆCD/r,ru1u1 Cii22Harten的TVD条件此时为:
1Oc[1(01)i11i1]1 (13)
22r 由(13)式,
i12应是r的函数。显然我们要求
c[1(01)i1]c1i111c[1(01)i1] (14)
22r2我们要求是有界的。所以可以对
112引入下列条件:
Bi1i,r2T B、T与i和r无关。(15)式可以等价地写为:
c[1(01)T]c[1(01)i1]c[1(01)B] 2易知下式是(14)式成立的充分条件:
c[1(01)T]c11i12r1c[1(01)B] 对(17)式左边不等式进行分析,可知:
)Lifr0i1(r2Lifr0 LrT2r。
对(17)中右侧不等式进行分析,有
Rrifr0i1r2Rr if r0 2(1c)RrBcr 1r利用(15),(18),(19)式可以确定
i2的具体形式。
r在讨论
i12的具体形式之前,先讨论一下方程
uftx0
fau
中a0的情况。此时,(8)式可以改写为:
un1iuniDˆui12 22
15)
16)
17) 18)
19)
20)
( ( ( ( ( (ˆDC DrHarten的TVD格式的充分条件为:
uri1212u
i0c111101ii22引入约束条件
11r (21)
B为了满足TVD条件,需有:
i12T
(22)
c111Tc01i211c111Br (23)
注意到此时a0,c0,如果把c用c代替,则(23)式与(17)式在形式上是相同
的。但是注意到a0和a0两种情况r的定义不同。把(23)式应用于
i11i2处(把2i换为
12)。则(17),(23)式可以写成统一的形式。因此(18),(19)式也可以写成既
i12处)
(24)
使用于a0,也适用于a0的一般形式(在
BrT
rLrLrr0
r0 r0
(25)
rRrRrr0
(26) (27)
LrT2r
2(1c)RrBr c (28)
23
rupwindlocaluinuin1nui1uinnnuui2i1nnui1ui
a0a0
(29)
为了确定(r)的具体形式,必须首先规定B,T的值。我们取
把(30)式代入(27)、(28)有
B0, T2 (30)
2(1c)L(r)0,Rrr (31) c即(24)~(26)式可以化为:
0(r)2 (32)
(r)00r0 (33) r0r0
(34)
2(1c)rc(r)2(1c)rc由(32)~(34)式,知:
r02(1c)r0,0(r)min(2,r) c (35)
r0,(r)0且二阶精度的条件为(1)1。Sweby建议:(r)应尽量位于(r)1和(r)r之间。根据上述条件,可以构造各种满足TVD条件的器。注意到,(35)式中,半离散格式的TVD条件与CFL数c有直接关系,c1时,只有一阶格式才可能满足TVD条件,所以,在实际应用中,我们应取c1(如c1/2或者更小,全离散格式的多数器都可以应用)。
四、时间离散
常用Runge-Kutta方法离散,如具有TVD性质的三阶Runge-Kutta方法:
24
ui(0)uinui(1)ui(0)tQi(u(0))(0)(1)(1)ui(2)314ui4(uitQi(u)), (0)(2)ui(3)12tQi(u(2)))3ui3(uiuin1ui(3)其中Qi
1TVDTVD ff11iix22五、基于MUSCL插值的有限体积半离散格式
uf0,fau先考虑标量线性守恒律tx的情况。此时,在i1/2(x0)
左右给定Riemann问题的初值u,u,则Riemann问题的解为:
Lu,if(x/t)au(x/t)R,
u,otherwiseLR 或者
所以,如果,
Lu,a0u(0)R。
u,otherwiseTVDfi[0(00)i1](auin)[1(11)i1](auin1), 1222或者具体说,如果
1s1sTVDnnfi[(1)](au)[(1)](au111ii1), i2i222222则该通量对应的Riemann问题的初值为:
uinuin1i1/2(n)nuui1iuLuin(uin1uin)2。 nnu2ui1i1/2(i)nnuui1iuRuin1(uin1uin)2从有限体积方法的角度,上式相当于
25
uinuin1i1/2(n)nuuni1iuLuin(uin1ui)2。 (36) nnuu1i1/2(in2i)nuuni1iuRuin(uin11ui)2这样,我们就得到了一种满足TVD条件的重构方法,称为MUSCL插值。这个方法可以直接推广到求解非线性的标量守恒律和非线性守恒系统(方程组)。对于方程组,我们可以直接推广上式为:
UinUin1i1/2(n)nUi1UinULUin(Uin1Ui)2 (37) nnUUi1i1/2(in2)nUi1UinURUin(Uin11Ui)2注意到上式右端的运算是对每一个分量分别进行;也可以仿照我们在MUSCL-Hancock格式中所介绍的那样,对特征变量进行。在通过(36)、(36)获得Riemann问题的左右状态后,数值通量通过求解精确或者近似的Riemann问题确定。
为了给大家一个对MUSCL插值的直观印象,我们考虑(36)式中器为Van Leer器的情况,此时,(36)是化为:
nnmax[(uinuin1)(ui1ui),0]uun(uin1ui1)LniuRuin1这相当于第i个单元的坡度为:
max[(uni2u)(uu),0](uin2u)ni1ni1nini,
nn2max[(uinuin)(uu1i1i),0]。 inn(ui1ui1)
26
因篇幅问题不能全部显示,请点此查看更多更全内容