模型降阶方法之张量方法应用举例

Posted 陆嵩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型降阶方法之张量方法应用举例相关的知识,希望对你有一定的参考价值。

模型降阶方法之张量方法应用举例

文章目录

序章

POD 方法参考:
https://blog.csdn.net/lusongno1/article/details/125944587

DEIM 方法参考:
https://blog.csdn.net/lusongno1/article/details/125955245

张量方法参考:
https://blog.csdn.net/lusongno1/article/details/126013084

很多同学看完了张量方法表示,算法流程是 clear 的,但是并不知道怎么应用。这里举两个简单的例子,热传导方程和对流扩散方程。

我们可以看到,张量方法是应用于 ODEs 的,那么如果从 PDE 得到 ODEs 呢?简单地说, PDE 在空间上做离散,比如说有限元离散或者有限差分离散,那么就把问题转为了向量值 ODEs,就可以用 ROMs 方法去处理。 如果用的是有限元方法处理的,那么向量值解的每个分量其实就表示每个基函数前面的系数(自由度)。如果是用有限差分方法处理的,那么向量值解的每个分量其实就表示每个节点上的值。

下面我们考虑这两个例子。有一些符号的含义是显而易见的,所以就不多加解释了。

热传导方程

方法

考虑热传导方程,
w t = Δ w w_t=\\Delta w wt=Δw
它的边界条件是,
( n ⋅ ∇ w + q ( x , α ) w ) ∣ ∂ Ω = g ( x , α ) \\left.(\\mathbfn \\cdot \\nabla w+q(\\mathbfx, \\boldsymbol\\alpha) w)\\right|_\\partial \\Omega=g(\\mathbfx, \\boldsymbol\\alpha) (nw+q(x,α)w)Ω=g(x,α)
其中, α ∈ R 4 \\boldsymbol\\alpha \\in \\mathbbR^4 αR4 是个四维的参数。这里的求解区域为长方形挖三个洞,

用标准的有限元方法,在空间上做离散,就得到这样一个时间连续的方程,
M u t + ( K + Q ( α ) ) u = g ( α ) \\mathrmM \\mathbfu_t+(\\mathrmK+\\mathrmQ(\\boldsymbol\\alpha)) \\mathbfu=\\mathbfg(\\boldsymbol\\alpha) Mut+(K+Q(α))u=g(α)
其中, M M M 是质量矩阵, K K K 是刚度矩阵,
( Q ) i j ( α ) = ∫ ∂ Ω q ( x , α ) θ j ( x ) θ i ( x ) d s x , ( g ) j ( α ) = ∫ ∂ Ω g ( x , α ) θ j ( x ) d s x , (\\mathrmQ)_i j(\\boldsymbol\\alpha)=\\int_\\partial \\Omega q(\\mathbfx, \\boldsymbol\\alpha) \\theta_j(\\mathbfx) \\theta_i(\\mathbfx) d s_\\mathbfx, \\quad(\\mathbfg)_j(\\boldsymbol\\alpha)=\\int_\\partial \\Omega g(\\mathbfx, \\boldsymbol\\alpha) \\theta_j(\\mathbfx) d s_\\mathbfx, (Q)ij(α)=Ωq(x,α)θj(x)θi(x)dsx,(g)j(α)=Ωg(x,α)θj(x)dsx,
那么,我们就可以将其写的 ODEs 的形式,
u t = F ( t , u , α ) \\mathbfu_t=F(t, \\mathbfu, \\boldsymbol\\alpha) ut=F(t,u,α)
其中,
F ( t , u , α ) = − M − 1 (   K + Q ( α ) ) u + M − 1 g ( α ) F(t, \\mathbfu, \\boldsymbol\\alpha)=-\\mathrmM^-1(\\mathrm~K+\\mathrmQ(\\boldsymbol\\alpha)) \\mathbfu+\\mathrmM^-1 \\mathbfg(\\boldsymbol\\alpha) F(t,u,α)=M1( K+Q(α))u+M1g(α)
有了这个,我们就可以用所谓的张量方法来寻求 reduced basis 了。首先,我们用 CN 格式得到一些快照,
ϕ k = u ( t k , α ) \\boldsymbol\\phi_k=\\mathbfu\\left(t_k, \\boldsymbol\\alpha\\right) ϕk=u(tk,α)
函数解事实上可由解向量表示出来,即
w ( t k , x , α ) = Θ ( x ) u ( t k , α ) w\\left(t_k, \\mathbfx, \\boldsymbol\\alpha\\right)=\\Theta(\\mathbfx) \\mathbfu\\left(t_k, \\boldsymbol\\alpha\\right) w(tk,x,α)=Θ(x)u(tk,α)
用之前提到的张量方法(不管是 CP、HOSVD 还是 TT),一波操作之后,我们便得到了一组 reduced 基,
Z = [ z 1 , … , z n ] ∈ R M × n \\mathrmZ=\\left[\\mathbfz_1, \\ldots, \\mathbfz_n\\right] \\in \\mathbbR^M \\times n Z=[z1,,zn]RM×n

不清楚怎么得到的,回看张量方法。事实上, Z = U U c \\mathrmZ=\\mathrmUU_c Z=UUc U c \\mathrmU_c Uc 取的是左奇异向量的前几列。

接着,类似于 POD 方法的投影方式,我们可以把这个方程投影到低阶的子空间中去做,得到
M ~ u ~ t + ( K ~ + Q ~ ( α ) ) u ~ = g ~ ( α ) \\widetilde\\mathrmM \\widetilde\\mathbfu_t+(\\widetilde\\mathrmK+\\widetilde\\mathrmQ(\\boldsymbol\\alpha)) \\widetilde\\mathbfu=\\widetilde\\mathbfg(\\boldsymbol\\alpha) M u t+(K +Q (α))u =g (α)
其中,
M ~ = Z T M Z ∈ R n × n , K ~ = Z T K Z ∈ R n × n ,  Q ~ ( α ) = Z T Q ( α ) Z ∈ R n × n , g ~ ( α ) = Z T g ( α ) ∈ R n ,  \\beginaligned &\\widetilde\\mathrmM=\\mathrmZ^T \\mathrmMZ \\in \\mathbbR^n \\times n, \\quad \\widetilde\\mathrmK=\\mathrmZ^T \\mathrmKZ \\in \\mathbbR^n \\times n \\text , \\\\ &\\widetilde\\mathrmQ(\\boldsymbol\\alpha)=\\mathrmZ^T \\mathrmQ(\\boldsymbol\\alpha) \\mathrmZ \\in \\mathbbR^n \\times n, \\quad \\widetilde\\mathbfg(\\boldsymbol\\alpha)=\\mathrmZ^T \\mathbfg(\\boldsymbol\\alpha) \\in \\mathbbR^n \\text , \\endaligned M =ZTMZRn×n,K =ZTKZRn×nQ (α)=ZTQ(α)ZRn×n,模型降阶方法之张量方法

模型降阶方法之张量方法

模型降阶方法之 DEIM

模型降阶方法之 DEIM

模型降阶方法之 POD

模型降阶方法之 POD