考虑二维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), 0≤x≤1u(0,y)=g2(y), 0≤y≤1
格式导出
类似一维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=[xj−21,xj+21]×[yj−21,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:v∣Iij∈Pk(Iij),1≤i≤Nx,1≤j≤Ny}
测试函数则是 V h k \bm{V}_h^k Vhk中的任意函数: ∀ v ∈ V h k \forall v \in \bm{V}_h^k ∀v∈Vhk.
记近似解为 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=∫yj−21yj+21⎣⎡∫xi−21xi+21(uh)xvdx⎦⎤dy
其中
∫ 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}}} ∫xi−21xi+21(uh)xvdx=−∫xi−21xi+21uhvxdx+(uv)∣xi+21−(uv)∣xi−21
代回原式有
∫ 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=−∫yj−21yj+21∫xi−21xi+21uhvxdxdy+∫yj−21yj+21uh(xi+21,y)v(xi+21,y)dy−∫yj−21yj+21uh(xi−21,y)v(xi−21,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+∫yj−21yj+21uh(xi+21,y)v(xi+21,y)dy−∫yj−21yj+21uh(xi−21,y)v(xi−21,y)dy+∫xi−21xi+21uh(x,yj+21)v(x,yj+21)dy−∫xi−21xi+21uh(x,yj−21)v(x,yj−21)dy
可见单元 I i j I_{ij} Iij的四个边界信息都会被用到。
对于Galerkin方法,测试函数 v ∈ V h k v\in \bm{V}_h^k v∈Vhk。
当
k
=
0
k=0
k=0时,期望DG退化到一阶迎风FD方法,此时
u
h
∣
I
i
j
=
u
i
j
u_h|_{I_{ij}}=u_{ij}
uh∣Iij=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Δxuij−ui−1,j+bΔyuij−ui,j−1=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(uij−ui−1,j)Δy+b(uij−ui,j−1)Δ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
−∫yj−21yj+21auh(xi−21−,y)v(xi−21+,y)dy+∫yj−21yj+21auh(xi+21−,y)v(xi+21−,y)dy−∫xi−21xi+21buh(x,yj−21−)v(x,yj−21+)dx+∫xi−21xi+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 v∈Vhk和任意的单元 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+a∫yj−21yj+21[uh(xi+21−,y)v(xi+21−,y)−uh(xi−21−,y)v(xi−21+,y)]dy+b∫xi−21xi+21[uh(x,yj+21−)v(x,yj+21−)−uh(x,yj−21−)v(x,yj−21+)]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) uh∣Iij=∑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=1∑Kuijlφijl(x,y))(φijm)x+b(l=1∑Kuijlφijl(x,y))(φijm)y]dxdy+a∫yj−21yj+21[(l=1∑Kuijlφijl(xi+21,y))φijm(xi+21,y)−uh(xi−21−,y)φijm(xi−21,y)]dy+b∫xi−21xi+21[(l=1∑Kuijlφijl(x,yj+21))φijm(x,yj+21)−uh(x,yj−21−)φijm(x,yj−21)]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=1∑Kuijl⎣⎡−∫Iijaφijl(φijm)x−∫Iijbφijl(φijm)y+a∫yj−21yj+21φijl(xi+21,y)φijm(xi+21,y)+b∫xi−21xi+21φijl(x,yj+21)φijm(x,yj+21)⎦⎤=∫Iijfφm+a∫yj−21yj+21uh(xi−21−,y)φijm(xi−21,y)+b∫xi−21xi+21uh(x,yj−21−)φijm(x,yj−21)
即 ∑ 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} Ii−1,j和 I i , j − 1 I_{i,j-1} Ii,j−1的值(它们贡献给右端向量),就能解出来 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) uh∣Iij=∑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的一些理论性质
优点:
-
解的存在唯一性。证明类似一维。
-
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均成立
-
精度,有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:v∣Iij∈Qk(Iij)},有
∣ ∣ u − u h ∣ ∣ L 2 ≤ C h k + 1 ||u-u_h||_{L_2}\leq Ch^{k+1} ∣∣u−uh∣∣L2≤Chk+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=0k∑n=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+n≤kamnxmyn。例如,当 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,但没有证明。 -
可推广到三角单元。此时对于光滑的 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:v∣Iij∈Pk(Iij)},有
∣ ∣ u − u h ∣ ∣ L 2 ≤ C h k + 1 2 ||u-u_h||_{L_2}\leq Ch^{k+\frac{1}{2}} ∣∣u−uh∣∣L2≤Chk+21 -
h h h-自适应性。对任意的三角划分,可以局部加密,且允许hanging nodes(即一个三角形的一条边同时与另外多个三角形的边相挨)。
-
p p p-自适应性。不同单元可以使用不同阶数的多项式基函数。而这对于传统的连续FE是不允许的,因为FE要求单元边界时连续的,如 P 2 \bm{P}^2 P2与 P 3 \bm{P}^3 P3就无法在单元相挨边界处连续。
-
方法可以推广到线性的初边值问题(非定常)。例如,将上述原问题的 y y y空间项换成时间项 t t t,整个PDE结构并没有改变。
局限性:
- 难以处理非线性。例如 2 u u x + u y = f 2uu_x+u_y=f 2uux+uy=f,意味着 u u u的大小决定了风向,不知道 u u u什么时候取什么符号。
- 难以处理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 η=u−v可以解耦得到 { ξ 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地去算。也就是说不能应对单元需要多于两个边界条件地情况。
- 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)。