• {{article.mytitle}}
  • DG其它格式

    1. 个人笔记(川大)

    笔记主页

    1.1. 复习回顾

    {ut+f(u)x=0u(x,0)=u0(x)\begin{cases} u_t + f(u)_x = 0\\[1em] u(x,0) = u^0(x) \end{cases}

    • 定义DG
    • 稳定性分析
    • 超收敛
    • TV格式

    1.2. Limiter格式1

    1.2.1. k=0情形

    k=0k=0
    uˉjn+1=uˉjnλ(f^Rf^L)=Hλ(uˉj1n,uˉjn,uˉj+1n).\bar u^{n+1}_j = \bar u^n_j - \lambda(\hat f_R - \hat f_L) = H_\lambda(\bar u^n_{j-1}, \bar u^n_{j}, \bar u^n_{j+1}).

    容易验证HλH_\lambda关于每个变量都是增函数。

    如果muˉjn+1Mm \leq \bar u_j^{n+1} \leq M,很显然有

    Hλ(uˉj1n,uˉjn,uˉj+1n)Hλ(m,m,m).H_\lambda(\bar u^n_{j-1}, \bar u^n_{j}, \bar u^n_{j+1}) \geq H_\lambda(m,m,m).

    1.2.2. k>0情形

    k>0k>0

    uˉjn+1=uˉjnλ(f^(uRj,uLj+1),f^(uRj1,uLj))\bar u^{n+1}_j = \bar u^n_j - \lambda( \hat f(u^j_R, u_L^{j+1}), - \hat f(u^{j-1}_R, u_L^{j}))

    此时
    uˉjn+1=Gλ(uˉjn,uRj,uLj,uRj1,uLj1).\bar u^{n+1}_j = G_\lambda(\bar u^n_{j}, u^j_R, u^j_L,u_R^{j-1}, u^{j-1}_L).

    希望GλG_\lambda关于第1,3,4个变量为增函数,关于第2,5个变量为减函数。

    uˉjn+1\bar u^{n+1}_j采用高斯-洛巴托{xlj,wl}l=0m\{x^j_l,w_l\}_{l=0}^m积分,把两端点和中点的值分开,然后逐项分析

    当满足两条件

    • uhn(xlj)[m,M]u_h^n(x_l^j)\in[m, M]

    • λw0λ0\lambda \leq w_0 \lambda_0

    uˉjn+1[m,M]\bar u^{n+1}_j \in [m, M]

    为了保证第一个条件,我们只需要把多项式限制一下,
    θj(P(x)uˉj)+uˉj,θj[0,1]\theta_j (P(x) - \bar u_j) + \bar u_j, \quad \theta_j \in [0,1]
    θj=0\theta_j =0一定保证第一个条件,但这种结构完全改变了原函数形态。当θj=1\theta_j=1相当于不做处理。因此总会有个最佳θj\theta_j,它刚好满足第一个条件。

    下面分析这种对函数的修正对精度的影响。

    1.2.3. 定理

    如果P(x)u(x)Chk+1|P(x) - u(x)| \leq Ch^{k+1},则有
    Plim(x)u(x)C1hk+1.|P^{\lim}(x) - u(x)| \leq C_1 h^{k+1}.
    定理表明对函数做修正不影响精度

    注:这种格式可以和TVD结合使用

    注: 该工作主要有由 X.Zhang
    笔记主页

    1.3. Limiter格式2

    1.3.1. WENO(weight essentially non-oscillatory) limiter

    有个非线性的动作

    参考:

    • JX Qiu(厦大)
    • X Zhong(浙大)
    • J Zhou

    1.4. 二阶方程

    ut=uxx,u(x,0)=u0(x)=sinxu_t = u_{xx}, \quad u(x,0)=u^0(x) =\sin x
    准确解:u=etsinxu = e^{-t}\sin x

    可以改写为
    ut+f(u)x=0u_t + f(u)_x = 0
    其中f(u)=uxf(u) = -u_x

    于是有离散格式:
    uhVhu_h \in V_h使得对vVh\forall v\in V_h.
    ((uh)t,v)j(f(uh),vx)j+f^j+12Vj+12f^j12Vj12+=0((u_h)_t, v)_j - (f(u_h), v_x)_j + \widehat{f}_{j+\frac{1}{2}} V^-_{j+\frac{1}{2}}- \widehat{f}_{j-\frac{1}{2}} V^+_{j-\frac{1}{2}}=0
    这里取f^j+12\widehat{f}_{j+\frac{1}{2}}为平均值

    分析稳定性:

    un+1=Gunu^{n+1} = \mathbb G u^n

    已有结论表明GCh||\mathbb G||\backsim\frac{C}{h}.因此它是不好的格式,说明这种格式有 局限性.

    既然原来的方法只是针对一阶导数,那么可以把二阶方程变成只有一阶导数的情形,也就是下面的LDG方法

    1.5. LDG

    Bassi-Rebay

    utuxx=0u_t - u_{xx} = 0拆开成
    {utvx=0vux=0\begin{cases} u_t - v_x = 0 \\ v - u_x = 0\\ \end{cases}
    uh,vhVhu_h, v_h\in V_h,使得对wh,zhVh\forall w_h, z_h\in V_h
    {((uh)t,w)j+(vh,wx)+V^RjWRjV^LjwLj=0(vh,z)j+(uh,zx)+U^RjZRjU^LjZLj=0\begin{cases} ((u_h)_t, w)_j + (v_h, w_x) + \hat V_R^jW_R^j - \hat V_L^j w_L^j = 0\\[1em] (v_h, z)_j + (u_h, z_x) + \hat U_R^jZ_R^j - \hat U_L^j Z_L^j = 0\\ \end{cases}

    如果都取均值通量,对于奇数次会掉阶。

    1.5.1. 稳定性

    w=uhVhz=vhVhw=u_h\in V_h, z=v_h\in V_h

    把两个式子合并起来,积分项放一起,边界项放一起

    困难之处在于两个积分项

    (vh,(uh)x)j,(uh,(vh)x)j,(v_h, (u_h)_x)_j, (u_h, (v_h)_x)_j,

    它们都关联两个变量,还有导数积分,所以要想办法把它处理掉,处理的思路是把它们合并起来,变成边界项。

    如果通量取
    U^Rj=URj,V^Rj=VLj+1,\hat U^j_R = U^j_R, \quad \hat V^j_R = V^{j+1}_L,
    很多边界项就可以很容易抵消掉,当然对于均值通量也是成立的。

    1.6. 作业

    1.6.1. 作业1

    用坏格式编写ut=uxxu_t = u_{xx},初值u(x,0)=sinxu(x,0)=\sin x,T=1T=1
    绘制误差图uuhu-u_h,以及uhu2hu_h - u_{2h}.

    1.6.2. 作业2

    LDG格式求解。

    1.6.3. 作业3

    换数值通量