曲面上变分的基础知识(方程组)

曲面上变分的基础知识(方程组)

定理:曲面上变分的格林公式(向量形式)

定理描述如下,为了方便,我们省略了严格的数学书写:
∫ Γ div ⁡ Γ ( G P ) ⋅ g d s = − ∫ Γ tr ⁡ ( G ∇ Γ g ) d s \int_{\Gamma} \operatorname{div}_{\Gamma}(\mathbf{GP} ) \cdot \mathbf{g} d s=-\int_{\Gamma} \operatorname{tr}\left(\mathbf{G} \nabla_{\Gamma} \mathbf{g}\right) d s ΓdivΓ(GP)gds=Γtr(GΓg)ds
简单的证明:
引用文献1中相关的结果,我们有:
∫ Γ ( ∇ Γ ) i g d s = ∫ Γ g κ n i d s \int_{\Gamma}\left(\nabla_{\Gamma}\right)_{i} g d s=\int_{\Gamma} g \kappa n_{i} d s Γ(Γ)igds=Γgκnids
g g g换为 f i g f_ig fig,并对 i i i求和有:
∫ Γ g div ⁡ Γ f + f ⋅ ∇ Γ g d s = ∫ Γ κ f ⋅ n g d s \int_{\Gamma} g \operatorname{div}_{\Gamma} \mathbf{f}+\mathbf{f} \cdot \nabla_{\Gamma} g d s=\int_{\Gamma} \kappa \mathbf{f} \cdot \mathbf{n} g d s ΓgdivΓf+fΓgds=Γκfngds
进一步,把 f \mathbf{f} f换成 P f \mathbf{Pf} Pf我们有:
∫ Γ g div ⁡ Γ ( P f ) d s = − ∫ Γ f ⋅ ∇ Γ g d s , ∫ Γ div ⁡ Γ ( P f ) d s = 0 \int_{\Gamma} g \operatorname{div}_{\Gamma}(\mathbf{P} \mathbf{f}) d s=-\int_{\Gamma} \mathbf{f} \cdot \nabla_{\Gamma} g d s, \quad \int_{\Gamma} \operatorname{div}_{\Gamma}(\mathbf{P} \mathbf{f}) d s=0 ΓgdivΓ(Pf)ds=ΓfΓgds,ΓdivΓ(Pf)ds=0
由第一个式子,我们自然可以得到:
∫ Γ div ⁡ Γ ( G P ) ⋅ g d s = − ∫ Γ tr ⁡ ( G T ∇ Γ g ) d s \int_{\Gamma} \operatorname{div}_{\Gamma}(\mathbf{G} \mathbf{P}) \cdot \mathbf{g} d s=-\int_{\Gamma} \operatorname{tr}\left(\mathbf{G}^T \nabla_{\Gamma} \mathbf{g}\right) d s ΓdivΓ(GP)gds=Γtr(GTΓg)ds

上面的公式中,如果把散度算子里面的部分换成 ∇ Γ f \nabla_\Gamma f Γf ∇ Γ f \nabla_\Gamma \mathbf{f} Γf,那么就变成了曲面上的格林公式,毕竟曲面上的梯度算子就等于其自身在曲面切面上的投影,这两个公式是可以直接用的。所以,这些知识都是相容的,并没有矛盾。

曲面上偏微分方程组的有限元离散

我们考虑这样一个例子:
{ u t − d u u Δ Γ u − d u v Δ Γ v = a u ( 1 − u ) − b u v u + α v t − d v u Δ Γ u − d v v Δ Γ v = c u v u + α − d v \left\{\begin{array}{l}{u_{t}-d_{u u} \Delta_{\Gamma} u-d_{u v} \Delta_{\Gamma} v=a u(1-u)-b \frac{u v}{u+\alpha}} \\ {v_{t}-d_{v u} \Delta_{\Gamma} u-d_{v v} \Delta_{\Gamma} v=c \frac{u v}{u+\alpha}-d v}\end{array}\right. {utduuΔΓuduvΔΓv=au(1u)bu+αuvvtdvuΔΓudvvΔΓv=cu+αuvdv
u = [ u , v ] T \mathbf{u}=[u,v]^T u=[u,v]T,那么上面的方程组可以写为:
u t − D d i v ∇ Γ u = f ( u ) \mathbf{u}_t-D\mathrm{div}\nabla_\Gamma \mathbf{u}=\mathbf{f(u)} utDdivΓu=f(u)

∇ Γ u = ∇ Γ u P \nabla_\Gamma \mathbf{u}=\nabla_\Gamma \mathbf{uP} Γu=ΓuP,取 v \mathbf{v} v,由前述定理,变分可得:
∫ u t ⋅ v + ∫ ∇ Γ u : ∇ Γ ( D T v ) = ∫ f ( u ) ⋅ v \int \mathbf{u}_t \cdot \mathbf{v}+\int \nabla_\Gamma \mathbf{u}:\nabla_\Gamma (D^T\mathbf{v})=\int \mathbf{f(u)}\cdot \mathbf{v} utv+Γu:Γ(DTv)=f(u)v

这里的冒号表示矩阵的点乘,即
A : B = t r ( A T B ) = t r ( A B T ) = ∑ i , j a i j b i j A:B=\mathrm{tr}(A^TB)=\mathrm{tr}(AB^T)=\sum_{i,j}a_{ij}b_{ij} A:B=tr(ATB)=tr(ABT)=i,jaijbij
即元素对应位置相乘,最后求和,结果是个数,也叫Frobenius內积。事实上,我们有:
D d i v ∇ Γ u ⋅ v = v T D d i v ∇ Γ u = d i v ∇ Γ u ⋅ D T v D\mathrm{div}\nabla_\Gamma \mathbf{u}\cdot \mathbf{v}= \mathbf{v}^TD\mathrm{div}\nabla_\Gamma \mathbf{u}=\mathrm{div}\nabla_\Gamma \mathbf{u}\cdot D^T\mathbf{v} DdivΓuv=vTDdivΓu=divΓuDTv

考虑向量变分形式的有限元离散,向量有限元空间,定义为:
V = span ⁡ { [ φ 1 0 ] , … , [ φ m 0 ] , [ 0 φ 1 ] , … , [ 0 φ m ] } : = span ⁡ { ( ϕ i ) } \mathbf{V}=\operatorname{span}\left\{\left[ \begin{array}{c}{\varphi_{1}} \\ {0}\end{array}\right], \ldots, \left[ \begin{array}{c}{\varphi_{m}} \\ {0}\end{array}\right], \left[ \begin{array}{c}{0} \\ {\varphi_{1}}\end{array}\right], \dots, \left[ \begin{array}{c}{0} \\ {\varphi_{m}}\end{array}\right]\right\} :=\operatorname{span}\left\{\left(\phi_{i}\right)\right\} V=span{[φ10],,[φm0],[0φ1],,[0φm]}:=span{(ϕi)}
和标量有限元离散同样的套路,令
u = ∑ i = 1 n u i ϕ i \mathbf{u} = \sum_{i=1}^{n}u_i\mathbf{\phi}_i u=i=1nuiϕi
依次取 v = ϕ i \mathbf{v}=\mathbf{\phi}_i v=ϕi,做向量形式的有限元离散,最后可得:
M u ⃗ t + A u ⃗ = [ f u ( ϕ i ) ] n × 1 M\vec{u}_t+A\vec{u}=[f_u(\mathbf{\phi}_i)]_{n\times 1} Mu t+Au =[fu(ϕi)]n×1
其中,
M = [ ∫ ϕ i ⋅ ϕ j ] n × n M = [\int \mathbf{\phi}_i\cdot\mathbf{\phi}_j]_{n\times n} M=[ϕiϕj]n×n
A = [ ∫ ∇ Γ D T ϕ i : ∇ Γ ϕ j ] n × n A = [\int \nabla_\Gamma D^T\mathbf{\phi}_i:\nabla_\Gamma\mathbf{\phi}_j]_{n\times n} A=[ΓDTϕi:Γϕj]n×n
f u ( ϕ i ) = ∫ f ( u ) ⋅ ϕ i f_u(\mathbf{\phi}_i)=\int \mathbf{f}(\mathbf{u})\cdot \mathbf{\phi}_i fu(ϕi)=f(u)ϕi
事实上,这个离散系统本质上和对原方程组两个式子分别做变分,最后再拼接组合成一个代数方程组是一样的,即:
( M s 0 0 M s ) u ⃗ t + ( d u u A s d u v A s d v u A s d v v A s ) u ⃗ = [ { f 1 ( u , φ i ) } , { f 2 ( u , φ i ) } ] T \left( \begin{array}{cc}{M_{s}} & {0} \\ {0} & {M_{s}}\end{array}\right) \vec{u}_{t}+\left( \begin{array}{ll}{d_{u u} A_{s}} & {d_{u v} A_{s}} \\ {d_{v u} A_{s}} & {d_{vv} A_{s}}\end{array}\right) \vec{u}=\left[\left\{f_{1}\left(\mathbf{u}, \varphi_{i}\right)\right\},\left\{f_{2}\left(\mathbf{u}, \varphi_{i}\right)\right\}\right]^{T} (Ms00Ms)u t+(duuAsdvuAsduvAsdvvAs)u =[{f1(u,φi)},{f2(u,φi)}]T
这里的 M s M_s Ms A s A_s As的下标 s s s表示的是 u , v u,v u,v所同属的空间 V V V中的质量矩阵和刚度矩阵。

事实上,上面的所有用到常矩阵 D \mathbf{D} D的地方,是可以随意进出梯度和散度算子的,即 ∇ Γ D u = D ∇ Γ u \nabla_\Gamma \mathbf{D}\mathbf{u}=\mathbf{D}\nabla_\Gamma \mathbf{u} ΓDu=DΓu,且 d i v D u = D d i v u \mathrm{div}\mathbf{D}\mathbf{u}=\mathbf{D}\mathrm{div} \mathbf{u} divDu=Ddivu。再一个对于矩阵的散度和梯度算子,是支持分块矩阵的操作的。

不可压方程组变分形式的基础知识

为了方便和统一,我们以后记标量的梯度是个列向量,而矢量的梯度是个矩阵,每一行都表示矢量的某个分量的梯度,即,形如:
∇ f = ( f x 1 f y 1 f z 1 f x 2 f y 2 f z 2 ) \nabla \mathbf{f}= \left( \begin{array}{lll}{f_{x}^{1}} & {f_{y}^{1}} & {f_{z}^{1}} \\ {f_{x}^{2}} & {f_{y}^{2}} & {f_{z}^{2}}\end{array}\right) f=(fx1fx2fy1fy2fz1fz2)
有些地方,关于矢量梯度的定义差一个转置。

则在曲面上,有如下定义:

∇ Γ f : = ( ∇ 1 f 1 , … , ∇ n f ) T = P ( ∇ f ) \nabla_{\Gamma} f :=\left(\nabla_{1} f_{1}, \ldots, \nabla_{n} f\right)^T=\mathbf{P}(\nabla f) Γf:=(1f1,,nf)T=P(f)

对于矢量,我们定义曲面上的梯度如下:
∇ i v = ∑ j = 1 n P ∂ j v ( P e i ) j ,  and  ∇ Γ v : = ( ∇ 1 v … ∇ n v ) = P ( ∇ v ) P \nabla_{i} \mathbf{v}=\sum_{j=1}^{n} \mathbf{P} \partial_{j} \mathbf{v}\left(\mathbf{P} \mathbf{e}_{i}\right)_{j}, \text { and } \nabla_{\Gamma \mathbf{v}} :=\left(\nabla_{1} \mathbf{v} \ldots \nabla_{n} \mathbf{v}\right)=\mathbf{P}(\nabla \mathbf{v}) \mathbf{P} iv=j=1nPjv(Pei)j, and Γv:=(1vnv)=P(v)P
对于矩阵,我们的曲面梯度算子定义如下:
∇ i A = ∑ j = 1 n P ∂ j A P ( P e i ) j ,  and  ∇ Γ A : = ( ∇ 1 A … ∇ n A ) \nabla_{i} \mathbf{A}=\sum_{j=1}^{n} \mathbf{P} \partial_{j} \mathbf{A} \mathbf{P}\left(\mathbf{P} \mathbf{e}_{i}\right)_{j}, \text { and } \nabla_{\Gamma} \mathbf{A} :=\left(\nabla_{1} \mathbf{A} \ldots \nabla_{n} \mathbf{A}\right) iA=j=1nPjAP(Pei)j, and ΓA:=(1AnA)
易知, ∇ Γ P = 0 \nabla_{\Gamma} \mathbf{P}=0 ΓP=0
我们有如下的乘积法则:
∇ Γ ( f g ) = g ∇ Γ f + f ∇ Γ g ∇ Γ ( u ⋅ v ) = v T ∇ Γ u + u T ∇ Γ v ,  if  P u = u , P v = v ∇ Γ ( f u ) = f ∇ Γ u + P u ∇ Γ f \begin{aligned} \nabla_{\Gamma}(f g) &=g \nabla_{\Gamma} f+f \nabla_{\Gamma} g \\ \nabla_{\Gamma}(\mathbf{u} \cdot \mathbf{v}) &=\mathbf{v}^{T} \nabla_{\Gamma \mathbf{u}}+\mathbf{u}^{T} \nabla_{\Gamma} \mathbf{v}, \quad \text { if } \mathbf{P} \mathbf{u}=\mathbf{u}, \mathbf{P} \mathbf{v}=\mathbf{v} \\ \nabla_{\Gamma}(f \mathbf{u}) &=f \nabla_{\Gamma} \mathbf{u}+\mathbf{P} \mathbf{u} \nabla_{\Gamma} f \end{aligned} Γ(fg)Γ(uv)Γ(fu)=gΓf+fΓg=vTΓu+uTΓv, if Pu=u,Pv=v=fΓu+PuΓf
因为是在曲面上的运算,所以需要将矢量投到曲面上。
矢量和矩阵的切向(界面上)散度算子的定义为:
div ⁡ Γ v : = tr ⁡ ( ∇ Γ v ) = tr ⁡ ( P ( ∇ v ) P ) = tr ⁡ ( P ( ∇ v ) ) ) = tr ⁡ ( ( ∇ v ) P ) = div ⁡ v − n T ∇ v n \operatorname{div}_{\Gamma} \mathbf{v} :=\operatorname{tr}\left(\nabla_{\Gamma} \mathbf{v}\right)=\operatorname{tr}(\mathbf{P}(\nabla \mathbf{v}) \mathbf{P})=\operatorname{tr}(\mathbf{P}(\nabla \mathbf{v})) )=\operatorname{tr}((\nabla \mathbf{v}) \mathbf{P})\\=\operatorname{div}\mathbf{v} -\mathbf{n}^T\nabla \mathbf{v} \mathbf{n} divΓv:=tr(Γv)=tr(P(v)P)=tr(P(v)))=tr((v)P)=divvnTvn
div ⁡ Γ A : = ( div ⁡ Γ ( e 1 T A ) , … , div ⁡ Γ ( e n T A ) ) T \operatorname{div}_{\Gamma} \mathbf{A} :=\left(\operatorname{div}_{\Gamma}\left(\mathbf{e}_{1}^{T} \mathbf{A}\right), \ldots, \operatorname{div}_{\Gamma}\left(\mathbf{e}_{n}^{T} \mathbf{A}\right)\right)^{T} divΓA:=(divΓ(e1TA),,divΓ(enTA))T
对矩阵求切向散度,相当于对矩阵的每一行求散度。
也就是说,我们对向量做到曲面切向的投影,往往是左乘一个 P P P,而对于矩阵,到曲面切面上的投影一般写成 P A P \mathbf{PAP} PAP
我们在考虑一般的Navier-Stokes和Stokes方程的变分的时候,往往考虑的是这一项:
div ⁡ ( ∇ v + ∇ T v ) \operatorname{div}\left(\nabla \mathbf{v}+\nabla^{T} \mathbf{v}\right) div(v+Tv)而在曲面上,这一项就变成了:
P div ⁡ Γ ( ∇ Γ v + ∇ Γ T v ) \mathbf{P} \operatorname{div}_{\Gamma}\left(\nabla_{\Gamma} \mathbf{v}+\nabla_{\Gamma}^{T} \mathbf{v}\right) PdivΓ(Γv+ΓTv)
也就是前面多了一个投影算子 P \mathbf{P} P
如果考虑 A \mathbf{A} A v \mathbf{v} v都已经在曲面切面上了,即 P A P = A , P v = v \mathbf{PAP}=\mathbf{A},\mathbf{Pv=v} PAP=A,Pv=v,那么由上面提到的格林公式,我们可以得到:
∫ Γ v ⋅ ( P div ⁡ Γ A ) d s = ∫ Γ v ⋅ div ⁡ Γ A d s = − ∫ Γ tr ⁡ ( A T ∇ Γ v ) d s \begin{aligned} \int_{\Gamma} \mathbf{v} \cdot\left(\mathbf{P} \operatorname{div}_{\Gamma} \mathbf{A}\right) d s &=\int_{\Gamma} \mathbf{v} \cdot \operatorname{div}_{\Gamma} \mathbf{A} d s \\ &=-\int_{\Gamma} \operatorname{tr}\left(\mathbf{A}^{T} \nabla_{\Gamma} \mathbf{v}\right) d s \end{aligned} Γv(PdivΓA)ds=ΓvdivΓAds=Γtr(ATΓv)ds
通过我们为上面的算子定义符号 L ( A ) = P div ⁡ Γ ( A ) \mathcal{L}(\mathbf{A})=\mathbf{P} \operatorname{div}_{\Gamma}(\mathbf{A}) L(A)=PdivΓ(A),并且为积分定义一些內积,可得:
( L ( A ) , v ) 0 = − ( A , ∇ Γ v ) 0 (\mathcal{L}(\mathbf{A}), \mathbf{v})_{0}=-\left(\mathbf{A}, \nabla_{\Gamma} \mathbf{v}\right)_{0} (L(A),v)0=(A,Γv)0可以看出 − L -\mathcal{L} L ∇ Γ \nabla_\Gamma Γ互为伴随,由此我们可以定义向量的拉普拉斯算子,叫做Bochner拉普拉斯算子:
P div ⁡ Γ ( ∇ Γ v ) = L ( ∇ Γ v ) = − ∇ Γ ∗ ∇ Γ v = : Δ Γ v \mathbf{P} \operatorname{div}_{\Gamma}\left(\nabla_{\Gamma} \mathbf{v}\right)=\mathcal{L}\left(\nabla_{\Gamma} \mathbf{v}\right)=-\nabla_{\Gamma}^{*} \nabla_{\Gamma} \mathbf{v}=: \Delta_{\Gamma} \mathbf{v} PdivΓ(Γv)=L(Γv)=ΓΓv=:ΔΓv
在欧氏空间中,对于不可压缩的情况,即 d i v v = 0 \mathrm{div}\mathbf{v}=0 divv=0,我们往往有:
div ⁡ ∇ T v = 0 \operatorname{div} \nabla^{T} \mathbf{v}=0 divTv=0那么Stokes方程中的第二项就没了,但是在曲面上,并不是这样。我们需要一些其他的结果,罗列如下:
P div ⁡ Γ ∇ Γ T v = ∇ Γ T div ⁡ Γ v + ( tr ⁡ ( H ) H − H 2 ) v , ∀ v ∈ C T 2 ( Γ ) n n ⋅ div ⁡ Γ ∇ Γ T v = n ⋅ div ⁡ Γ ( ∇ Γ v ) = − tr ⁡ ( H ∇ Γ v ) = − tr ⁡ ( H ∇ Γ v T ) − v N tr ⁡ ( H 2 ) , ∀ v ∈ C 2 ( Γ ) n P div ⁡ Γ ( H ) = ∇ Γ T κ \begin{aligned} \mathbf{P} \operatorname{div}_{\Gamma} \nabla_{\Gamma}^{T} \mathbf{v} &=\nabla_{\Gamma}^{T} \operatorname{div}_{\Gamma} \mathbf{v}+\left(\operatorname{tr}(\mathbf{H}) \mathbf{H}-\mathbf{H}^{2}\right) \mathbf{v}, \quad \forall \mathbf{v} \in C_{T}^{2}(\Gamma)^{n} \\ \mathbf{n} \cdot \operatorname{div}_{\Gamma} \nabla_{\Gamma}^{T} \mathbf{v} &=\mathbf{n} \cdot \operatorname{div}_{\Gamma}\left(\nabla_{\Gamma} \mathbf{v}\right)=-\operatorname{tr}\left(\mathbf{H} \nabla_{\Gamma} \mathbf{v}\right) \\ &=-\operatorname{tr}\left(\mathbf{H} \nabla_{\Gamma} \mathbf{v}_{T}\right)-v_{N} \operatorname{tr}\left(\mathbf{H}^{2}\right), \quad \forall \mathbf{v} \in C^{2}(\Gamma)^{n} \\ \mathbf{P} \operatorname{div}_{\Gamma}(\mathbf{H}) &=\nabla_{\Gamma}^{T} \kappa \end{aligned} PdivΓΓTvndivΓΓTvPdivΓ(H)=ΓTdivΓv+(tr(H)HH2)v,vCT2(Γ)n=ndivΓ(Γv)=tr(HΓv)=tr(HΓvT)vNtr(H2),vC2(Γ)n=ΓTκ在n=3的时候,上面的第一个式子就可以简化成:
P div ⁡ Γ ∇ Γ T v = ∇ Γ T div ⁡ Γ v + K v \mathrm{P} \operatorname{div}_{\Gamma} \nabla_{\Gamma}^{T} \mathbf{v}=\nabla_{\Gamma}^{T} \operatorname{div}_{\Gamma} \mathbf{v}+K \mathbf{v} PdivΓΓTv=ΓTdivΓv+Kv
K K K是高斯曲率,是两个主曲率的乘积。
另一个结果是:
n ˙ = H u T − ∇ Γ T u N = − P ( ∇ T u ) n P ˙ = P ( ∇ T u ) ( I − P ) + ( I − P ) ( ∇ u ) P \begin{aligned} \dot{\mathbf{n}} &=\mathbf{H u}_{T}-\nabla_{\Gamma}^{T} u_{N}=-\mathbf{P}\left(\nabla^{T} \mathbf{u}\right) \mathbf{n} \\ \dot{\mathbf{P}} &=\mathbf{P}\left(\nabla^{T} \mathbf{u}\right)(\mathbf{I}-\mathbf{P})+(\mathbf{I}-\mathbf{P})(\nabla \mathbf{u}) \mathbf{P} \end{aligned} n˙P˙=HuTΓTuN=P(Tu)n=P(Tu)(IP)+(IP)(u)P


  1. G. Wildenhain. Gilbarg, D. / Trudinger, N. S. Elliptic Partial Differential Equations of Second Order. Berlin-Heidelberg-New York-Tokyo, Springer-Verlag 1983. XIII, 513 S. DM 128,—. US $ 47.80. ISBN 3-540-13025-X (Grundlehren der mathematischen Wissenschaften 224)[J]. ZAMM - Journal of Applied Mathematics and Mechanics / Zeitschrift für Angewandte Mathematik und Mechanik, 2010, 65(11):568-568. ↩︎

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页