first DG方法:二维ODE的边值问题

DG方法:二维ODE的边值问题

考虑二维ODE的边值问题:
{ a u x + b u y = f ( x , y ) u ( x , 0 ) = g 1 ( x ) ,   0 ≤ x ≤ 1 u ( 0 , y ) = g 2 ( y ) ,   0 ≤ y ≤ 1 \left\{\begin{matrix}au_x+bu_y=f(x,y)\\ u(x,0)=g_1(x), \space 0 \leq x \leq 1 \\ u(0,y)=g_2(y), \space 0\leq y \leq 1 \end{matrix}\right. aux+buy=f(x,y)u(x,0)=g1(x), 0x1u(0,y)=g2(y), 0y1

格式导出

类似一维ODE的边值问题求法,做网格划分(mesh decomposition),其中 x x x y y y方向分别有 N x N_x Nx N y N_y Ny个单元:

0 = x 1 2 < x 3 2 < . . . < x N x + 1 2 = 1 0 = y 1 2 < y 3 2 < . . . < y N x + 1 2 = 1 I i j = [ x j − 1 2 , x j + 1 2 ] × [ y j − 1 2 , y j + 1 2 ] h : = max ⁡ { max ⁡ i Δ x i , max ⁡ j Δ y j } \begin{matrix}0=x_\frac{1}{2}<x_\frac{3}{2}<...<x_{N_x+\frac{1}{2}}=1\\ 0=y_\frac{1}{2}<y_\frac{3}{2}<...<y_{N_x+\frac{1}{2}}=1 \end{matrix}\\ I_{ij}=\left[ x_{j-\frac{1}{2}}, x_{j+\frac{1}{2}} \right] \times \left[ y_{j-\frac{1}{2}}, y_{j+\frac{1}{2}} \right]\\ h:=\max \left\{ \underset{i}{\max} \Delta x_i ,\underset{j}{\max}\Delta y_j \right\} 0=x21<x23<...<xNx+21=10=y21<y23<...<yNx+21=1Iij=[xj21,xj+21]×[yj21,yj+21]h:=max{imaxΔxi,jmaxΔyj}

解空间定义为:
V h k = { v : v ∣ I i j ∈ P k ( I i j ) , 1 ≤ i ≤ N x , 1 ≤ j ≤ N y } \bm{V}_h^k=\left\{ v : v |_{I_{ij}} \in\bm{P}^k(I_{ij}) ,1\leq i\leq N_x, 1\leq j\leq N_y\right\} Vhk={v:vIijPk(Iij),1iNx,1jNy}

测试函数则是 V h k \bm{V}_h^k Vhk中的任意函数: ∀ v ∈ V h k \forall v \in \bm{V}_h^k vVhk.

记近似解为 u h u_h uh,则原问题的弱形式为:

∫ I i j [ a ( u h ) x v + b ( u h ) y v ] d x d y = ∫ I i j f v d x d y (1) \int_{I_{ij}} \left[ a(u_h)_xv+b(u_h)_yv \right] {\rm d}x{\rm d}y = \int_{I_{ij}} fv {\rm d}x{\rm d}y \tag{1} Iij[a(uh)xv+b(uh)yv]dxdy=Iijfvdxdy(1)

类似一维ODE边值问题时的处理,单独在每个方向上用分部积分:

∫ I i j ( u h ) x v d x d y = ∫ y j − 1 2 y j + 1 2 [ ∫ x i − 1 2 x i + 1 2 ( u h ) x v d x ] d y \int_{I_{ij}} (u_h)_xv {\rm d}x{\rm d}y = \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \left[ \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} (u_h)_xv {\rm d}x \right] {\rm d}y Iij(uh)xvdxdy=yj21yj+21xi21xi+21(uh)xvdxdy

其中

∫ x i − 1 2 x i + 1 2 ( u h ) x v d x = − ∫ x i − 1 2 x i + 1 2 u h v x d x + ( u v ) ∣ x i + 1 2 − ( u v ) ∣ x i − 1 2 \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} (u_h)_xv {\rm d}x= -\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} u_h v_x {\rm d}x + (uv)|_{x_{i+\frac{1}{2}}} - (uv)|_{x_{i-\frac{1}{2}}} xi21xi+21(uh)xvdx=xi21xi+21uhvxdx+(uv)xi+21(uv)xi21

代回原式有

∫ I i j ( u h ) x v d x d y = − ∫ y j − 1 2 y j + 1 2 ∫ x i − 1 2 x i + 1 2 u h v x d x d y + ∫ y j − 1 2 y j + 1 2 u h ( x i + 1 2 , y ) v ( x i + 1 2 , y ) d y − ∫ y j − 1 2 y j + 1 2 u h ( x i − 1 2 , y ) v ( x i − 1 2 , y ) d y \int_{I_{ij}} (u_h)_xv {\rm d}x{\rm d}y = -\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} u_h v_x {\rm d}x {\rm d}y + \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}u_h(x_{i+\frac{1}{2}},y)v(x_{i+\frac{1}{2}},y) {\rm d}y - \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}u_h(x_{i-\frac{1}{2}},y)v(x_{i-\frac{1}{2}},y) {\rm d}y Iij(uh)xvdxdy=yj21yj+21xi21xi+21uhvxdxdy+yj21yj+21uh(xi+21,y)v(xi+21,y)dyyj21yj+21uh(xi21,y)v(xi21,y)dy

对含 ( u h ) y (u_h)_y (uh)y项也如此处理,式(1)的左端项得到

∫ I i j [ a ( u h ) x v + b ( u h ) y v ] d x d y = − ∫ I i j ( a u h v x + b u h v y ) d x d y + ∫ y j − 1 2 y j + 1 2 u h ( x i + 1 2 , y ) v ( x i + 1 2 , y ) d y − ∫ y j − 1 2 y j + 1 2 u h ( x i − 1 2 , y ) v ( x i − 1 2 , y ) d y + ∫ x i − 1 2 x i + 1 2 u h ( x , y j + 1 2 ) v ( x , y j + 1 2 ) d y − ∫ x i − 1 2 x i + 1 2 u h ( x , y j − 1 2 ) v ( x , y j − 1 2 ) d y \int_{I_{ij}} \left[ a(u_h)_xv+b(u_h)_yv \right] {\rm d}x{\rm d}y = -\int_{I_{ij}} (au_h v_x + bu_hv_y){\rm d}x {\rm d}y + \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}u_h(x_{i+\frac{1}{2}},y)v(x_{i+\frac{1}{2}},y) {\rm d}y - \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}u_h(x_{i-\frac{1}{2}},y)v(x_{i-\frac{1}{2}},y) {\rm d}y + \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}u_h(x,y_{j+\frac{1}{2}})v(x,y_{j+\frac{1}{2}}) {\rm d}y - \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}u_h(x,y_{j-\frac{1}{2}})v(x,y_{j-\frac{1}{2}}) {\rm d}y Iij[a(uh)xv+b(uh)yv]dxdy=Iij(auhvx+buhvy)dxdy+yj21yj+21uh(xi+21,y)v(xi+21,y)dyyj21yj+21uh(xi21,y)v(xi21,y)dy+xi21xi+21uh(x,yj+21)v(x,yj+21)dyxi21xi+21uh(x,yj21)v(x,yj21)dy

可见单元 I i j I_{ij} Iij的四个边界信息都会被用到。

对于Galerkin方法,测试函数 v ∈ V h k v\in \bm{V}_h^k vVhk

k = 0 k=0 k=0时,期望DG退化到一阶迎风FD方法,此时 u h ∣ I i j = u i j u_h|_{I_{ij}}=u_{ij} uhIij=uij
a u i j − u i − 1 , j Δ x + b u i j − u i , j − 1 Δ y = f i j a \frac{u_{ij} - u_{i-1,j}}{\Delta x} + b \frac{u_{ij} - u_{i,j-1}}{\Delta y} = f_{ij} aΔxuijui1,j+bΔyuijui,j1=fij

a ( u i j − u i − 1 , j ) Δ y + b ( u i j − u i , j − 1 ) Δ x = f i j Δ x Δ y a (u_{ij} - u_{i-1,j}) \Delta y + b(u_{ij} - u_{i,j-1})\Delta x = f_{ij}\Delta x \Delta y a(uijui1,j)Δy+b(uijui,j1)Δx=fijΔxΔy

由于测试函数是任意选取的 V h 0 \bm{V}_h^0 Vh0函数,所以将其取为 v = { 1   ,     I i j 0 ,   o t h e r v=\left\{\begin{matrix}1\space,\space \space \space I_{ij}\\ 0, \space\rm{other} \end{matrix}\right. v={1 ,   Iij0, other,则 v x = v y = 0 v_x=v_y=0 vx=vy=0。于是l类似于一维DG的推导,可以确定单元边界上的两侧值的取法:
− ∫ y j − 1 2 y j + 1 2 a u h ( x i − 1 2 − , y ) v ( x i − 1 2 + , y ) d y + ∫ y j − 1 2 y j + 1 2 a u h ( x i + 1 2 − , y ) v ( x i + 1 2 − , y ) d y − ∫ x i − 1 2 x i + 1 2 b u h ( x , y j − 1 2 − ) v ( x , y j − 1 2 + ) d x + ∫ x i − 1 2 x i + 1 2 b u h ( x , y j + 1 2 − ) v ( x , y j + 1 2 − ) d x -\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} a u_h(x_{i-\frac{1}{2}}^-,y)v(x_{i-\frac{1}{2}}^+,y) {\rm d}y +\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} a u_h(x_{i+\frac{1}{2}}^-,y)v(x_{i+\frac{1}{2}}^-,y) {\rm d}y -\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} b u_h(x,y_{j-\frac{1}{2}}^-)v(x,y_{j-\frac{1}{2}}^+) {\rm d}x +\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} b u_h(x,y_{j+\frac{1}{2}}^-)v(x,y_{j+\frac{1}{2}}^-) {\rm d}x yj21yj+21auh(xi21,y)v(xi21+,y)dy+yj21yj+21auh(xi+21,y)v(xi+21,y)dyxi21xi+21buh(x,yj21)v(x,yj21+)dx+xi21xi+21buh(x,yj+21)v(x,yj+21)dx

可以归结为,测试函数的取值永远朝向本单元的方向取,这样才能有值(=1)。而 u h u_h uh的取向永远朝向迎风的方向取。

所以完整的DG格式为:

find u h ( x ) ∈ V h k u_h(x) \in \bm{V}_h^k uh(x)Vhk,使得对于任意的测试函数 v ∈ V h k v\in\bm{V}_h^k vVhk和任意的单元 I i j I_{ij} Iij,都有

− ∫ I i j ( a u h v x + b u h v y ) d x d y + a ∫ y j − 1 2 y j + 1 2 [ u h ( x i + 1 2 − , y ) v ( x i + 1 2 − , y ) − u h ( x i − 1 2 − , y ) v ( x i − 1 2 + , y ) ] d y + b ∫ x i − 1 2 x i + 1 2 [ u h ( x , y j + 1 2 − ) v ( x , y j + 1 2 − ) − u h ( x , y j − 1 2 − ) v ( x , y j − 1 2 + ) ] d x = ∫ I i j f v d x d y -\int_{I_{ij}} (au_h v_x + bu_hv_y){\rm d}x {\rm d}y +a\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \left[u_h(x_{i+\frac{1}{2}}^-,y)v(x_{i+\frac{1}{2}}^-,y)-u_h(x_{i-\frac{1}{2}}^-,y)v(x_{i-\frac{1}{2}}^+,y)\right] {\rm d}y +b\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \left[ u_h(x,y_{j+\frac{1}{2}}^-)v(x,y_{j+\frac{1}{2}}^-) - u_h(x,y_{j-\frac{1}{2}}^-)v(x,y_{j-\frac{1}{2}}^+) \right] {\rm d}x = \int_{I_{ij}} fv {\rm d}x{\rm d}y Iij(auhvx+buhvy)dxdy+ayj21yj+21[uh(xi+21,y)v(xi+21,y)uh(xi21,y)v(xi21+,y)]dy+bxi21xi+21[uh(x,yj+21)v(x,yj+21)uh(x,yj21)v(x,yj21+)]dx=Iijfvdxdy

求解方式

在单元 I i j I_{ij} Iij上取基函数为 P k ( I i j ) \bm{P}^k(I_{ij}) Pk(Iij)中的函数做local bases,记为 φ i j l ( x . y ) , l = 1 , . . . , K \varphi_{ij}^l(x.y), l=1,...,K φijl(x.y),l=1,...,K,其中 K = ( k + 1 ) ( k + 2 ) 2 K=\frac{(k+1)(k+2)}{2} K=2(k+1)(k+2),共有 K K K个基函数。例如,当 k = 0 k=0 k=0 K = 1 K=1 K=1,取 φ i j 1 ( x . y ) = 1 \varphi_{ij}^1(x.y)=1 φij1(x.y)=1;当 k = 1 k=1 k=1 K = 3 K=3 K=3,取 φ i j 1 ( x . y ) = 1 , φ i j 2 ( x . y ) = x , φ i j 3 ( x . y ) = y \varphi_{ij}^1(x.y)=1, \varphi_{ij}^2(x.y)=x, \varphi_{ij}^3(x.y)=y φij1(x.y)=1,φij2(x.y)=x,φij3(x.y)=y。当然选取不是唯一的,也可以取Lagrange插值基函数。

假定 u h ∣ I i j = ∑ l = 1 K u i j l φ i j l ( x , y ) u_h|_{I_{ij}}=\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x,y) uhIij=l=1Kuijlφijl(x,y),需要求解 u i j = [ u i j 1 , u i j 2 , . . . , u i j K ] T \bm{u}_{ij}=[u_{ij}^1,u_{ij}^2,...,u_{ij}^K]^T uij=[uij1,uij2,...,uijK]T。测试函数是任意的,因此取 v = φ i j m ( x , y ) , m = 1 , 2 , . . . , K v=\varphi_{ij}^m(x,y), m=1,2,...,K v=φijm(x,y),m=1,2,...,K。所以完整的DG格式可以写成

− ∫ I i j [ a ( ∑ l = 1 K u i j l φ i j l ( x , y ) ) ( φ i j m ) x + b ( ∑ l = 1 K u i j l φ i j l ( x , y ) ) ( φ i j m ) y ] d x d y + a ∫ y j − 1 2 y j + 1 2 [ ( ∑ l = 1 K u i j l φ i j l ( x i + 1 2 , y ) ) φ i j m ( x i + 1 2 , y ) − u h ( x i − 1 2 − , y ) φ i j m ( x i − 1 2 , y ) ] d y + b ∫ x i − 1 2 x i + 1 2 [ ( ∑ l = 1 K u i j l φ i j l ( x , y j + 1 2 ) ) φ i j m ( x , y j + 1 2 ) − u h ( x , y j − 1 2 − ) φ i j m ( x , y j − 1 2 ) ] d x = ∫ I i j f φ i j m ( x , y ) d x d y -\int_{I_{ij}} \left[ a\left(\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x,y)\right) \left(\varphi_{ij}^m\right)_x + b\left(\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x,y)\right)\left(\varphi_{ij}^m\right)_y \right]{\rm d}x {\rm d}y +a\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \left[ \left(\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x_{i+\frac{1}{2}},y)\right) \varphi_{ij}^m(x_{i+\frac{1}{2}},y) - u_h(x_{i-\frac{1}{2}}^-,y) \varphi_{ij}^m(x_{i-\frac{1}{2}},y)\right] {\rm d}y +b\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \left[ \left(\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x,y_{j+\frac{1}{2}})\right) \varphi_{ij}^m(x,y_{j+\frac{1}{2}}) - u_h(x,y_{j-\frac{1}{2}}^-)\varphi_{ij}^m(x,y_{j-\frac{1}{2}}) \right] {\rm d}x =\int_{I_{ij}} f \varphi_{ij}^m(x,y) {\rm d}x{\rm d}y Iij[a(l=1Kuijlφijl(x,y))(φijm)x+b(l=1Kuijlφijl(x,y))(φijm)y]dxdy+ayj21yj+21[(l=1Kuijlφijl(xi+21,y))φijm(xi+21,y)uh(xi21,y)φijm(xi21,y)]dy+bxi21xi+21[(l=1Kuijlφijl(x,yj+21))φijm(x,yj+21)uh(x,yj21)φijm(x,yj21)]dx=Iijfφijm(x,y)dxdy

整理出来未知的待求解的 u i j l u_{ij}^l uijl值有

∑ l = 1 K u i j l [ − ∫ I i j a φ i j l ( φ i j m ) x − ∫ I i j b φ i j l ( φ i j m ) y + a ∫ y j − 1 2 y j + 1 2 φ i j l ( x i + 1 2 , y ) φ i j m ( x i + 1 2 , y ) + b ∫ x i − 1 2 x i + 1 2 φ i j l ( x , y j + 1 2 ) φ i j m ( x , y j + 1 2 ) ] = ∫ I i j f φ m + a ∫ y j − 1 2 y j + 1 2 u h ( x i − 1 2 − , y ) φ i j m ( x i − 1 2 , y ) + b ∫ x i − 1 2 x i + 1 2 u h ( x , y j − 1 2 − ) φ i j m ( x , y j − 1 2 ) \sum_{l=1}^K u_{ij}^l \left[ -\int_{I_{ij}} a \varphi_{ij}^l \left(\varphi_{ij}^m\right)_x - \int_{I_{ij}} b \varphi_{ij}^l \left(\varphi_{ij}^m\right)_y + a \int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \varphi_{ij}^l(x_{i+\frac{1}{2}},y) \varphi_{ij}^m(x_{i+\frac{1}{2}},y) + b \int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \varphi_{ij}^l(x,y_{j+\frac{1}{2}}) \varphi_{ij}^m(x,y_{j+\frac{1}{2}}) \right] =\int_{I_{ij}} f\varphi^m + a\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} u_h(x_{i-\frac{1}{2}}^-,y) \varphi_{ij}^m(x_{i-\frac{1}{2}},y) + b\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} u_h(x,y_{j-\frac{1}{2}}^-)\varphi_{ij}^m(x,y_{j-\frac{1}{2}}) l=1KuijlIijaφijl(φijm)xIijbφijl(φijm)y+ayj21yj+21φijl(xi+21,y)φijm(xi+21,y)+bxi21xi+21φijl(x,yj+21)φijm(x,yj+21)=Iijfφm+ayj21yj+21uh(xi21,y)φijm(xi21,y)+bxi21xi+21uh(x,yj21)φijm(x,yj21)

∑ l = 1 K a i j m l u i j l = b i j m \sum_{l=1}^Ka_{ij}^{ml} u_{ij}^l=b_{ij}^m l=1Kaijmluijl=bijm,遍历 m = 1 , 2 , . . . , K m=1,2,...,K m=1,2,...,K则组成一个线性方程组: A i j u i j = b i j \bm{A}_{ij}\bm{u}_{ij}=\bm{b}_{ij} Aijuij=bij,其中 A i j = ( a i j m l ) K × K \bm{A}_{ij}=(a_{ij}^{ml})_{K\times K} Aij=(aijml)K×K b i j = [ b i j 1 , . . . , b i j K ] T \bm{b}_{ij}=\left[ b_{ij}^1, ..., b_{ij}^K \right]^T bij=[bij1,...,bijK]T

所以只要知道了邻居单元 I i − 1 , j I_{i-1,j} Ii1,j I i , j − 1 I_{i,j-1} Ii,j1的值(它们贡献给右端向量),就能解出来 u i j l u_{ij}^l uijl,也就线性组合出 u h ∣ I i j = ∑ l = 1 K u i j l φ i j l ( x , y ) u_h|_{I_{ij}}=\sum_{l=1}^K u_{ij}^l \varphi_{ij}^l(x,y) uhIij=l=1Kuijlφijl(x,y)。计算的次序为: I 1 , 1 = > I 1 , 2 , I 2 , 1 = > I 1 , 3 , I 2 , 2 , I 3 , 1 = > . . . I_{1,1} =>I_{1,2},I_{2,1} =>I_{1,3}, I_{2,2}, I_{3,1} => ... I1,1=>I1,2,I2,1=>I1,3,I2,2,I3,1=>...。注意DG的stencil非常紧凑,无论单元内部多高阶,都只要邻居单元在边界上传递一个变量即可,而不需像有限差分那样需要传递冗长的stencil依赖。

DG的一些理论性质

优点:

  1. 解的存在唯一性。证明类似一维。

  2. a u x + b u y = f ( x , y ) au_x+bu_y=f(x,y) aux+buy=f(x,y)对于任意的常量 a a a b b b均成立

  3. 精度,有Lasaint & Ravart 在1974年证明stable accuracy。对于光滑的 u u u,如果解空间选为 V h k = { v : v ∣ I i j ∈ Q k ( I i j ) } \bm{V}_h^k=\left\{ v:v|_{I_{ij}} \in \bm{Q}^k(I_{ij}) \right\} Vhk={v:vIijQk(Iij)},有
    ∣ ∣ u − u h ∣ ∣ L 2 ≤ C h k + 1 ||u-u_h||_{L_2}\leq Ch^{k+1} uuhL2Chk+1
    其中 Q k ( I i j ) \bm{Q}^k(I_{ij}) Qk(Iij)内的函数为 ∑ m = 0 k ∑ n = 0 k a m n x m y n \sum_{m=0}^k\sum_{n=0}^k a_{mn}x^my^n m=0kn=0kamnxmyn,区别于 P k ( I i j ) \bm{P}^k(I_{ij}) Pk(Iij)内的函数为 ∑ m + n ≤ k a m n x m y n \sum_{m+n\leq k} a_{mn}x^my^n m+nkamnxmyn。例如,当 k = 1 k=1 k=1时, P 1 \bm{P}^1 P1包含 1 , x , y 1,x,y 1,x,y,而 Q 1 \bm{Q}^1 Q1包含 1 , x , y , x y 1,x,y,xy 1,x,y,xy
    而如果采用 P k \bm{P}^k Pk,则数值上可以观测到optimal order of accuracy,但没有证明。

  4. 可推广到三角单元。此时对于光滑的 u u u,如果解空间选为 V h k = { v : v ∣ I i j ∈ P k ( I i j ) } \bm{V}_h^k=\left\{ v:v|_{I_{ij}} \in \bm{P}^k(I_{ij}) \right\} Vhk={v:vIijPk(Iij)},有
    ∣ ∣ u − u h ∣ ∣ L 2 ≤ C h k + 1 2 ||u-u_h||_{L_2}\leq Ch^{k+\frac{1}{2}} uuhL2Chk+21

  5. h h h-自适应性。对任意的三角划分,可以局部加密,且允许hanging nodes(即一个三角形的一条边同时与另外多个三角形的边相挨)。

  6. p p p-自适应性。不同单元可以使用不同阶数的多项式基函数。而这对于传统的连续FE是不允许的,因为FE要求单元边界时连续的,如 P 2 \bm{P}^2 P2 P 3 \bm{P}^3 P3就无法在单元相挨边界处连续。

  7. 方法可以推广到线性的初边值问题(非定常)。例如,将上述原问题的 y y y空间项换成时间项 t t t,整个PDE结构并没有改变。

局限性:

  1. 难以处理非线性。例如 2 u u x + u y = f 2uu_x+u_y=f 2uux+uy=f,意味着 u u u的大小决定了风向,不知道 u u u什么时候取什么符号。
  2. 难以处理hyperbolic系统。例如 { u x + v y = 0 v x + u y = 0 \left\{\begin{matrix}u_x+v_y=0\\ v_x + u_y =0 \end{matrix}\right. {ux+vy=0vx+uy=0,变量替换 ξ = u + v \xi=u+v ξ=u+v η = u − v \eta=u-v η=uv可以解耦得到 { ξ x + ξ y = 0 η x − η y = 0 \left\{\begin{matrix}\xi_x+\xi_y=0\\ \eta_x - \eta_y =0 \end{matrix}\right. {ξx+ξy=0ηxηy=0。于是两个scalar方程在 y y y方向上的风向不一样,不知道如何初始化,因为有三个方向需要邻居的信息,所以不能one by one地去算。也就是说不能应对单元需要多于两个边界条件地情况。
  3. time-dependent的初边问题。例如 { u t + u x = 0 u ( x , 0 ) = g ( x ) u ( 0 , t ) = u ( 1 , t ) \left\{\begin{matrix}u_t+u_x=0\\ u(x,0)=g(x)\\ u(0,t)=u(1,t) \end{matrix}\right. ut+ux=0u(x,0)=g(x)u(0,t)=u(1,t)的周期边界问题。

所以应对的办法是:RKDG(Runge-Kutta Discontinuous Galerkin)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zongy17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值