• {{article.mytitle}}
  • DG理论

    1. 个人笔记(川大)

    笔记主页

    1.2. 复习回顾

    {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}

    • 定义
    • 稳定性,误差分析
    • 编程实现

    1.3. 超收敛分析

    • 更弱范数达到高一点的精度,例如,l,l>0||,||_{-l}, l>0
      ul=supw<u,w>wl||u||_{-l} = \sup_w\frac{<u,w>}{||w||_{l}}
      如果分析uuh12||u - u_h||_{-\frac{1}{2}}
      考虑投影P:L2PkP:L^2\mapsto\mathcal P^k
      (uPu,v)j=0,vPk(Ij)(u-Pu, v)_j = 0, \quad \forall v\in \mathcal P^k(I_j)
      (uPu,w)I=(uPu,wPw)ICh2k+2|(u - Pu, w)_{I}| = |(u - Pu, w - Pw)_{I}| \leq Ch^{2k+2}

    • Wh=QUhW_h = Q U_h,结论
      uwhCh2k+1|| u - w_h|| \leq Ch^{2k+1}

    • 在强范数的框架下,
      uhPuChk+2||u_h - P_u|| \leq Ch^{k+2}
      uuhuPu+uhPuC1hk+1+C2(1+t)hk+2\begin{aligned} ||u-u_h||& \leq || u-Pu || + ||u_h - Pu||\\[0.5em] &\leq C_1 h^{k+1} + C_2(1+t)h^{k+2} \end{aligned}

    • 在特殊点xjkx_j^k上,收敛阶高
      (uuh)(xjk)Chk+2(u - u_h)(x_j^k) \leq Ch^{k+2}
      (uuh)(xj+12k)Ch2k+1(u - u_h)(x_{j+\frac{1}{2}}^k) \leq Ch^{2k+1}
      所以在求数值积分的时候,取点也要注意!不然就会造成数值积分超收敛,比较好的一种办法是对比有限元误差和插值误差。

    1.4. 局限性

    1.4.1. 存在问题

    对间断初值问题,间断附近会有震荡,而且L2L^2范数会掉阶,稳定性不能保证无震荡。

    1.4.2. 解决办法

    • 加一些人工黏性,但是需要有经验
    • 从有限差分有限体积收到启发,加一个限制器

    1.5. 限制器详细

    向前欧拉法
    (uhn+1,v)j=(uhn,v)j+Δt((f(uhn),vx)jf^RnVRj+f^LnVLj)(u_h^{n+1}, v)_j = (u_h^n, v)_j+ \Delta t\Big( (f(u_h^n), v_x)_j - \hat f_R^n V_R^j + \hat f_L^n V_L^j \Big)
    为了提高文档可读性,此后的DG记号依从
    VRj=Vj+12,VLj=Vj12+.V_R^j = V_{j+\frac{1}{2}}^-, \quad V_L^j = V_{j-\frac{1}{2}}^+.

    定义平均值
    vˉj=1hIjvdx\bar v_j = \frac{1}{h} \int_{I_j} v dx

    u~jR=uRjuˉju~jL=uˉjuLj\begin{aligned} \tilde u_j^R &= u_R^j - \bar u_j \\[0.5em] \tilde u_j^L&= \bar u_j - u_L^j \\[0.5em] \end{aligned}

    定义minmod函数,如果元素同号取绝对值最小的那个元素,否则取0.

    m(u~jR)=minmod(u~jR,uˉj+1uˉj,uˉjuˉj1)m(\tilde u_j^R) = minmod(\tilde u_j^R, \bar u_{j+1} - \bar u_{j}, \bar u_j - \bar u_{j-1})

    m(u~jL)=minmod(u~jL,uˉj+1uˉj,uˉjuˉj1)m(\tilde u_j^L) = minmod(\tilde u_j^L, \bar u_{j+1} - \bar u_{j}, \bar u_j - \bar u_{j-1})

    目标u~jR=u~jL\tilde u _j^R = \tilde u _j^L

    • k=1k=1, u~jR=u~jL\tilde u _j^R = \tilde u _j^L, m(u~jR)=m(u~jL)m(\tilde u _j^R) = m(\tilde u _j^L)
      limited(uj)=uˉj+m(u~jR).limited(u_j) = \bar u_j + m(\tilde u _j^R).

    • k=2k=2, 二次多项式可以通过三个条件唯一确定(两端点函数值,平均值)

    • k=3k=3, 三次多项式不唯一

    1.5.1. 定理

    RKDG TVDM(total variation diminishing in the means)
    TV(uˉ)=juˉj+1uˉjTV(\bar u) = \sum_j |\bar u_{j+1} - \bar u_j|

    1.5.2. 引理

    如果uˉjn+1=uˉj+CRj(uˉj+1nuˉjn)DLj(uˉjnuˉj1n)\bar u^{n+1}_j = \bar u_j +C^j_R(\bar u_{j+1}^n - \bar u_j^n) - D^j_L(\bar u_j^n - \bar u_{j-1}^n)

    其中C>0,D>0,C+D>0C>0, D>0, C+D >0

    那么这个格式是 TVD

    证明:
    根据递推关系,再 多写一项,然后做差加绝对值做放缩最后求和得
    juˉjn+1ujnA1+A2+A3\sum_{j} | \bar u^{n+1}_j - u^n_j | \leq A_1 + A_2 + A_3
    其中
    A1=j(1CjRDjR)uˉj+1nuˉjnA_1 = \sum_j (1-C_j^R -D_j^R) |\bar u^n_{j+1} - \bar u^n _{j}|
    以及
    A2=jCj+2uˉj+2nuˉj+1nA_2 = \sum_j C_{j+2} |\bar u^n_{j+2} - \bar u^n _{j+1}|

    A3=jDj+1uˉj+1nuˉjnA_3 = \sum_j D_{j+1} |\bar u^n_{j+1} - \bar u^n _{j}|

    1.5.3. 定理证明

    (uhn+1,v)j=(uhn,v)j+Δt((f(uhn),vx)jf^RnVRj+f^LnVLj)(u_h^{n+1}, v)_j = (u_h^n, v)_j+ \Delta t\Big( (f(u_h^n), v_x)_j - \hat f_R^n V_R^j + \hat f_L^n V_L^j \Big)
    对上式取v=1v=1

    huˉjn+1=huˉjnΔtf^R+Δtf^Lh \bar u^{n+1}_j = h \bar u_j^n - \Delta t\hat f_R +\Delta t \hat f_L

    uˉjn+1=uˉjnΔtΔx(f^Rf^L)\bar u^{n+1}_j = \bar u^n_j - \frac{\Delta t}{\Delta x}(\hat f_R - \hat f_L)


    uˉjn+1=uˉjnλ(f^Rf^L)\bar u^{n+1}_j = \bar u^n_j - \lambda(\hat f_R - \hat f_L)

    通过加一项减一项f^(uRj,uLj)\hat f(u^j_R, u_L^j),根据f^\hat f的定义

    f^Rj=f^(uRj,uLj+1),f^Lj=f^(uRj1,uLj)\hat f^j_R = \hat f(u^j_R, u_L^{j+1}),\quad \hat f^j_L = \hat f(u^{j-1}_R, u_L^{j})

    注: 为了简便,把f^\hat f的上角标省略

    于是有

    uˉjn+1=uˉjnλ(f^Rf^L)\bar u^{n+1}_j = \bar u^n_j - \lambda(\hat f_R - \hat f_L)


    CRj=λf^(uRj,uLj+1)f^(uRj,uLj)uˉj+1uˉjC_R^j = -\lambda \frac{ \hat f(u^j_R, u_L^{j+1}) - \hat f(u^j_R, u_L^{j}) }{\bar u_{j+1} -\bar u_{j}}

    容易证明出
    0CRjλL10 \leq C_R^j \leq \lambda L_1

    同理
    0CRjλL20 \leq C_R^j \leq \lambda L_2

    所以
    λ12(L1+L2)\lambda \leq \frac{1}{2(L_1 + L_2)}

    1.5.4. 误差分析

    uu足够光滑,平均值在中点处是二阶逼近
    uˉj=uj+o(h2)\bar u_j = u_j + o(h^2)

    uˉj=1hIjudx=1hIju(xj)+ux(xj)(xxj)+o(h2)dx\bar u_j = \frac{1}{h} \int_{I_j} udx = \frac{1}{h}\int_{I_j} u(x_j) + u_x(x_j)(x-x_j) + o(h^2) dx

    同理
    u~jR=uRjuˉj=h2ux(xj)+o(h2)\tilde u_j^R = u^j_R - \bar u_j = \frac{h}{2}u_x(x_j) + o(h^2)

    u~jL=h2ux(xj)+o(h2)\tilde u_j^L = \frac{h}{2}u_x(x_j) + o(h^2)

    再同理
    uˉj+1uˉj=ux(xj)h+o(h2)\bar u_{j+1} - \bar u_j = u_x(x_j) h + o(h^2)

    m(u~jR)=hux(xj)+o(h2)m(\tilde u_j^R) = hu_x(x_j) + o(h^2)

    因为
    1Njej1Nh=h2\frac{1}{N} \sum_{j}|e_j| \geq \frac{1}{N}h = h^2

    TVD格式L1L^1 误差至多2阶精度

    TV(uˉn+1)TV(uˉn)+o(Δt)(1+CΔt)TV(uˉn)TV(\bar u^{n+1}) \leq TV(\bar u^n) + o(\Delta t)\leq(1+C\Delta t)TV(\bar u^n)

    修正minmod
    如果第一个分量是被Mh2M_h^2控制,就直接选它

    1.6. 作业

    1.6.1. 作业1

    RKDG求解,用到TVD与TVB格式,取M=5,10,20,40M=5,10,20,40k=0,1,2k=0,1,2
    ut+ux=0x[0,1],t>0u_t + u_x = 0, x\in[0,1], t>0
    满足周期边界条件,以及
    (1)
    u(x,0)=sin(2πx)u(x,0)=\sin(2\pi x)
    (2)
    u(x,0)={1,14x340,elseu(x,0)=\begin{cases} 1, \quad\frac{1}{4} \leq x \leq \frac{3}{4}\\[1em] 0, \quad \text{else} \end{cases}

    1.6.2. 作业2

    对TVB格式,求MM^*使得MMM \geq M^*, 对光滑函数会保持精度

    笔记主页