简易分析,对流扩散方程,在四边形等参网格中的有限元离散过程,以及数值积分

1、生成弱形式

a.等式两侧同时乘测试函数 ψ \psi ψ

ψ ( − ∇ ⋅ ∇ u ) + ψ ( v ⃗ ⋅ ∇ u ) = 0 ψ , u ∈ V (2.1) \psi(-\nabla \cdot \nabla u) + \psi (\vec{v} \cdot \nabla u )=0 \quad \quad \psi,u \in V \tag{2.1} ψ(u)+ψ(v u)=0ψ,uV(2.1)
这里 V = H 1 ( Ω ) V =H^{1}{(\Omega)} V=H1(Ω)

b.对整个求解域 Ω \Omega Ω积分

− ∫ Ω ψ ( ∇ ⋅ ∇ u ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = 0 (2.2) -\int_{\Omega} \psi ( \nabla \cdot \nabla u)+\int_{\Omega}\psi(\vec{v} \cdot \nabla u ) =0 \tag{2.2} Ωψ(u)+Ωψ(v u)=0(2.2)

c.分部积分

由于求导的性质有 ∇ ⋅ ( ψ ∇ u ) = ψ ∇ ⋅ ∇ u + ∇ ψ ⋅ ∇ u \nabla \cdot (\psi \nabla u)=\psi\nabla \cdot \nabla u+\nabla \psi \cdot \nabla u (ψu)=ψu+ψu,带入(2.2)式左侧第一项得:
∫ Ω ∇ ψ ⋅ ∇ u − ∫ Ω ∇ ⋅ ( ψ ∇ u ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = 0 (2.3) \int_{\Omega} \nabla \psi \cdot \nabla u-\int_{ \Omega}\nabla \cdot (\psi \nabla u)+\int_{\Omega} \psi(\vec{v} \cdot \nabla u )=0 \tag{2.3} ΩψuΩ(ψu)+Ωψ(v u)=0(2.3)

d.应用散度定理

散度定理可以理解成:考虑在流动得液体中取出体积为 V V V的部分,则流过该部分表面 S S S的液体通量等于散度在整个体积上的积分。
∭ V ( ∇ ⋅ F )   d V = ∯ s ( F ⋅ n ^ )   d S {\displaystyle \iiint _{V}\left(\mathbf {\nabla } \cdot \mathbf {F} \right)\,\mathrm {d} V=} \oiint{\displaystyle \scriptstyle s}{\displaystyle (\mathbf {F} \cdot \mathbf {\hat {n}} )\,\mathrm {d} S} V(F)dV= s(Fn^)dS
左侧是在整个体积 V V V上的积分,右侧是在 V V V的表面边界 S S S上的积分, n ^ {\mathbf {\hat {n}} } n^是边界上外法线方向。
对(2.3)式的左侧第二项应用散度定理,(2.3)式可以写成
∫ Ω ∇ ψ ⋅ ∇ u − ∫ ∂ Ω ψ ( ∇ u ⋅ n ^ ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = 0 ψ , u ∈ V (2.4) \int_{\Omega} \nabla \psi \cdot \nabla u-\int_{ \partial \Omega} \psi (\nabla u\cdot \mathbf {\hat {n}})+\int_{\Omega} \psi(\vec{v} \cdot \nabla u )=0 \quad \quad \psi,u \in V \tag{2.4} ΩψuΩψ(un^)+Ωψ(v u)=0ψ,uV(2.4)

e.写成内积的形式

可以把(2.4)式用内积形式表示,其中每项都能在MOOSE中找到现有类进行继承
( ∇ ψ , ∇ u ) ⏟ K e r n e l − ⟨ ψ , ∇ u ⋅ n ^ ⟩ ⏟ B o u n d a r y C o n d i t i o n + ( ψ , v ⃗ ⋅ ∇ u ) ⏟ K e r n e l = 0 ψ , u ∈ V (2.5) \underbrace{\left(\nabla\psi, \nabla u \right)}_{Kernel} - \underbrace{\langle\psi, \nabla u\cdot \hat{n} \rangle}_{BoundaryCondition} + \underbrace{\left(\psi,\vec{v} \cdot \nabla u\right)}_{Kernel} = 0 \quad \quad \psi,u \in V \tag{2.5} Kernel (ψ,u)BoundaryCondition ψ,un^+Kernel (ψ,v u)=0ψ,uV(2.5)

2、Rizt—Galerkin法

现在我们有了方程的弱形式,但是考虑到真实解 u u u所在的空间 V V V是无线维的,在大多情况下依旧难以求解,根据Ritz方法,可以选择一个 V V V的有限维子空间 W W W,即 W W W的基 { w 1 , w 2 , . . . w n } \left\{w_{1}, w_{2},...w_{n} \right\} {w1,w2,...wn}是有限个,称为基函数,则真实解 u u u可以由W的基构成的 u h u_h uh进行逼近表示
u ≈ u h = ∑ i n U i w i u \approx u_h=\sum_{i}^nU_{i}w_i uuh=inUiwi
为了方便记
a ( ψ , u ) = ( ∇ ψ , ∇ u ) − ⟨ ψ , ∇ u ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ u ) a(\psi,u)=\left(\nabla\psi, \nabla u \right) - {\langle\psi, \nabla u\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla u\right) a(ψ,u)=(ψ,u)ψ,un^+(ψ,v u)
则逼近解替换(2.5)式中的真实解后
  ( ∇ ψ , ∇ u h ) − ⟨ ψ , ∇ u h ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ u h ) = ( ∇ ψ , ∑ i n U i ∇ w i ) − ⟨ ψ , ∑ i n U i ∇ w i ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∑ i n U i ∇ w i ) = ∑ i n U i ( ∇ ψ , ∇ w i ) − ⟨ ψ , ∇ w i ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ w i ) = [ ( ∇ ψ , ∇ w 1 ) − ⟨ ψ , ∇ w 1 ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ w 1 ) ( ∇ ψ , ∇ w 2 ) − ⟨ ψ , ∇ w 2 ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ w 2 ) ⋮ ⋮ ( ∇ ψ , ∇ w n ) − ⟨ ψ , ∇ w n ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ w n ) ] T [ U 1 U 2 ⋮ ⋮ U n ] = [ a ( ψ , w 1 ) , a ( ψ , w 2 ) , ⋯   , a ( ψ , w n ) ] [ U 1 U 2 ⋮ ⋮ U n ] = 0 (2.6) \begin{aligned} &\ \quad \left(\nabla\psi, \nabla u_h \right) - {\langle\psi, \nabla u_h\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla u_h\right) \\ &=\left(\nabla\psi,\sum_{i}^nU_{i} \nabla w_i \right) - {\langle \psi, \sum_{i}^nU_{i} \nabla w_i\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \sum_{i}^nU_{i} \nabla w_i\right)\\ &= \sum_{i}^nU_{i}\left(\nabla\psi, \nabla w_i \right) - {\langle\psi, \nabla w_i\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla w_i\right) \\ &=\left[\begin{matrix}\left(\nabla\psi, \nabla w_1 \right) - {\langle\psi, \nabla w_1\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla w_1\right)\\ \left(\nabla\psi, \nabla w_2 \right) - {\langle\psi, \nabla w_2\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla w_2\right)\\ \vdots\\ \vdots\\ \left(\nabla\psi, \nabla w_n \right) - {\langle\psi, \nabla w_n\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla w_n\right)\end{matrix} \right]^\mathrm{ T } \begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix} \\ &=\begin{bmatrix}{a(\psi,w_1),a(\psi,w_2),\cdots,a(\psi,w_n)}\end{bmatrix}\begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix} \\ &=0 \end{aligned} \tag{2.6}  (ψ,uh)ψ,uhn^+(ψ,v uh)=(ψ,inUiwi)ψ,inUiwin^+(ψ,v inUiwi)=inUi(ψ,wi)ψ,win^+(ψ,v wi)= (ψ,w1)ψ,w1n^+(ψ,v w1)(ψ,w2)ψ,w2n^+(ψ,v w2)(ψ,wn)ψ,wnn^+(ψ,v wn) T U1U2Un =[a(ψ,w1),a(ψ,w2),,a(ψ,wn)] U1U2Un =0(2.6)
有限维子空间 W W W可以自由选取,所以基函数 w i w_i wi可以当作已知量,但是基的系数 U i U_{i} Ui是未知数,共有 n n n个,需要我们计算,由于测试函数的任意性,我们可以选用基函数 w i w_i wi当作试函数,我们就能得到 n n n个方程组,这样 n n n个方程 n n n个未知数,我们就能够求解 U i U_{i} Ui了。
( ∇ w i , ∇ u h ) − ⟨ w i , ∇ u h ⋅ n ^ ⟩ + ( w i , v ⃗ ⋅ ∇ u h ) = 0 i = 1 , 2 , ⋯   , n (2.7) \left(\nabla w_i, \nabla u_h \right) - {\langle w_i, \nabla u_h\cdot \hat{n} \rangle} + \left(w_i,\vec{v} \cdot \nabla u_h\right)=0\quad\quad i=1,2, \cdots,n \tag{2.7} (wi,uh)wi,uhn^+(wi,v uh)=0i=1,2,,n(2.7)
把(2.7)式写成矩阵的形式
  ( ∇ ψ , ∇ u ) − ⟨ ψ , ∇ u ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ u ) = [ a ( ψ , w 1 ) , a ( ψ , w 2 ) , ⋯   , a ( ψ , w n ) ] [ U 1 U 2 ⋮ ⋮ U n ] = [ a ( w 1 , w 1 ) a ( w 1 , w 2 ) ⋯ a ( w 1 , w n ) a ( w 2 , w 1 ) a ( w 2 , w 2 ) ⋯ a ( w 3 , w n ) ⋮ ⋮ ⋱ ⋮ a ( w n , w 1 ) a ( w n , w 2 ) ⋯ a ( w n , w n ) ] [ U 1 U 2 ⋮ ⋮ U n ] = K U = 0 (2.8) \begin{aligned} &\ \quad \left(\nabla\psi, \nabla u \right) - {\langle\psi, \nabla u\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla u\right) \\ &=\begin {bmatrix}a(\psi,w_1),a(\psi,w_2),\cdots,a(\psi,w_n) \end{bmatrix} \begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix}\\ &=\begin {bmatrix}a( w_1,w_1)&a( w_1,w_2)&\cdots&a( w_1,w_n) \\ a( w_2,w_1)&a( w_2,w_2)&\cdots&a( w_3,w_n) \\ \vdots &\vdots&\ddots&\vdots\\ \\a( w_n,w_1)&a( w_n,w_2)&\cdots&a( w_n,w_n) \\ \end{bmatrix} \begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix}\\ &=KU\\ &=0 \end{aligned} \tag{2.8}  (ψ,u)ψ,un^+(ψ,v u)=[a(ψ,w1),a(ψ,w2),,a(ψ,wn)] U1U2Un = a(w1,w1)a(w2,w1)a(wn,w1)a(w1,w2)a(w2,w2)a(wn,w2)a(w1,wn)a(w3,wn)a(wn,wn) U1U2Un =KU=0(2.8)
这样就得到了一个简单的写法
K U = 0 (2.9) KU=0\tag{2.9} KU=0(2.9)
其中 U U U称作载荷向量, K K K称为刚度矩阵,我们的目标是求解 U U U

3、分段多项式基函数

这一小节的讨论都基于规则四边形网格,就是求解域和子域都是矩形。
求解为了快速有效的求解式(2.9),必须选择一个很好的逼近子空间,我们可以选择连续分段多项式函数组成的子空间作为逼近子空间。为了在域 Ω \Omega Ω上定义分段多项式函数,当作逼近子空间 W W W的基,将域划分为子域 Ω e \Omega_e Ωe,分段多项式是由每个子域上的多项式定义的函数,子域的集合称为网格。在本例中选择了四边形网格剖分,每个四边形有四个顶点,可以考虑一个具有四个自由度的多项式
a + b x + c y + d x y a+bx+cy+dxy a+bx+cy+dxy
这样的多项式函数,称为双线性函数,对于一个平行于坐标轴的四边形,设四个顶点坐标为 ( x 1 , y 1 ) , ( x 2 , y 1 ) , ( x 2 , y 2 ) , ( x 1 , y 2 ) (x_1,y_1),(x_2,y_1),(x_2,y_2),(x_1,y_2) (x1,y1),(x2,y1),(x2,y2),(x1,y2)以及相应的值 u 1 , u 2 , u 3 , u 4 u_1,u_2,u_3,u_4 u1,u2,u3,u4,我们可以得到四个等式
a + b x 1 + c y 1 + d x 1 y 1 = u 1 a + b x 2 + c y 1 + d x 2 y 1 = u 2 a + b x 2 + c y 2 + d x 2 y 2 = u 3 a + b x 1 + c y 2 + d x 1 y 2 = u 4 \begin{aligned} a+bx_1+cy_1+dx_1y_1=u_1\\ a+bx_2+cy_1+dx_2y_1=u_2\\ a+bx_2+cy_2+dx_2y_2=u_3\\ a+bx_1+cy_2+dx_1y_2=u_4 \end{aligned} a+bx1+cy1+dx1y1=u1a+bx2+cy1+dx2y1=u2a+bx2+cy2+dx2y2=u3a+bx1+cy2+dx1y2=u4
这样可以求出定义在该四边形区域上的多项式的系数 a , b , c , d a,b,c,d a,b,c,d,如果网格单元是规则的矩形,双线性函数在矩形单元的任何边上都可以简化为一元线性函数。因此,在规则的矩形剖分上,网格的每个节点上都能确定一个连续分段线双线性函数,这样在剖分出的 n n n个节点上我们定义出逼近子空间的基函数 { ψ 1 , ψ 2 , . . . ψ n } \left\{\psi_{1}, \psi_{2},...\psi_{n} \right\} {ψ1,ψ2,...ψn},分段多项式函数的定义方式,所以不在同一个矩形的顶点上定义的 ψ i , ψ i \psi_{i},\psi_{i} ψi,ψi乘积为零。原本定义在整个域的方程,现在可以定义到每个子域上求解然后再求和,则(2.4)式化成
∫ Ω ∇ ψ ⋅ ∇ u − ∫ ∂ Ω ψ ( ∇ u ⋅ n ^ ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = ∑ e [ ∫ Ω e ∇ ψ i ⋅ ∇ u h − ∫ ∂ Ω ψ i ( ∇ u h ⋅ n ^ ) + ∫ Ω e ψ i ( v ⃗ ⋅ ∇ u h ) ] \begin{aligned} &\int_{\Omega} \nabla \psi \cdot \nabla u-\int_{ \partial \Omega} \psi (\nabla u\cdot \mathbf {\hat {n}})+\int_{\Omega} \psi(\vec{v} \cdot \nabla u )\\ =&\sum_{e} \left[\int_{{\Omega}_e} \nabla \psi_i \cdot \nabla u_h-\int_{ \partial {\Omega}} \psi_i (\nabla u_h\cdot \mathbf {\hat {n}})+\int_{{\Omega}_e} \psi_i(\vec{v} \cdot \nabla u_h )\right]& \end{aligned} =ΩψuΩψ(un^)+Ωψ(v u)e[ΩeψiuhΩψi(uhn^)+Ωeψi(v uh)]
在这里插入图片描述)
现在我们考虑一个9节点的网格,其共有4个子域,则刚度矩形 K K K就是 9 × 9 9\times9 9×9 ∫ Ω ∇ ψ ⋅ ∇ u − ∫ ∂ Ω ψ ( ∇ u ⋅ n ^ ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = ∑ e = 1 4 [ ∫ Ω e ∇ ψ i ⋅ ∇ u h − ∫ ∂ Ω ψ i ( ∇ u h ⋅ n ^ ) + ∫ Ω e ψ i ( v ⃗ ⋅ ∇ u h ) ] = a Ω 1 ( ψ i , u ) + a Ω 2 ( ψ i , u ) + a Ω 3 ( ψ i , u ) + a Ω 4 ( ψ i , u ) i = 1 , 2 , ⋯   , 9 \begin{aligned} &\int_{\Omega} \nabla \psi \cdot \nabla u-\int_{ \partial \Omega} \psi (\nabla u\cdot \mathbf {\hat {n}})+\int_{\Omega} \psi(\vec{v} \cdot \nabla u )\\ =&\sum_{e=1}^4 \left[\int_{{\Omega}_e} \nabla \psi_i \cdot \nabla u_h-\int_{ \partial {\Omega}} \psi_i (\nabla u_h\cdot \mathbf {\hat {n}})+\int_{{\Omega}_e} \psi_i(\vec{v} \cdot \nabla u_h )\right] \\ =&a_{\Omega_1}(\psi_i,u)+a_{\Omega_2}(\psi_i,u)+a_{\Omega_3}(\psi_i,u)+a_{\Omega_4}(\psi_i,u) \quad i=1,2,\cdots,9 \end{aligned} ==ΩψuΩψ(un^)+Ωψ(v u)e=14[ΩeψiuhΩψi(uhn^)+Ωeψi(v uh)]aΩ1(ψi,u)+aΩ2(ψi,u)+aΩ3(ψi,u)+aΩ4(ψi,u)i=1,2,,9
在区域 Ω 1 {\Omega_1} Ω1中,包含四个写成刚度矩阵的形式
a Ω 1 ( ψ , u ) + a Ω 2 ( ψ , u ) + a Ω 3 ( ψ , u ) + a Ω 4 ( ψ , u ) = ∑ e = 1 4 [ K 11 K 12 K 13 K 14 K 15 K 16 K 17 K 18 K 19 K 21 K 22 K 23 K 24 K 25 K 26 K 27 K 28 K 29 K 31 K 32 K 33 K 34 K 35 K 36 K 37 K 38 K 39 K 41 K 42 K 43 K 44 K 45 K 46 K 47 K 48 K 49 K 51 K 52 K 53 K 54 K 55 K 56 K 57 K 58 K 59 K 61 K 62 K 63 K 64 K 65 K 66 K 67 K 68 K 69 K 71 K 72 K 73 K 74 K 75 K 76 K 77 K 78 K 79 K 81 K 82 K 83 K 84 K 85 K 86 K 87 K 88 K 89 K 91 K 92 K 93 K 94 K 95 K 96 K 97 K 98 K 99 ] Ω e [ U 1 U 2 ⋮ ⋮ U n ] = [ K 11 K 12 0 K 14 K 15 0 0 0 0 K 21 K 22 0 K 24 K 25 0 0 0 0 0 0 0 0 0 0 0 0 0 K 41 K 42 0 K 44 K 45 0 0 0 0 K 51 K 52 0 K 54 K 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] Ω 1 [ U 1 U 2 ⋮ ⋮ U n ] + Ω 2 + Ω 3 + Ω 4     ( Ω 234 区域的刚度矩阵与 1 类似,不同时包含区域节点上积函数的元素为零 ) (2.10) \begin{aligned} &a_{\Omega_1}(\psi,u)+a_{\Omega_2}(\psi,u)+a_{\Omega_3}(\psi,u)+a_{\Omega_4}(\psi,u) \\=&\sum_{e=1}^4 \left[ \begin {matrix} K_{11}&K_{12}&K_{13}&K_{14}&K_{15}&K_{16}&K_{17}&K_{18}&K_{19}\\ K_{21}&K_{22}&K_{23}&K_{24}&K_{25}&K_{26}&K_{27}&K_{28}&K_{29}\\ K_{31}&K_{32}&K_{33}&K_{34}&K_{35}&K_{36}&K_{37}&K_{38}&K_{39}\\ K_{41}&K_{42}&K_{43}&K_{44}&K_{45}&K_{46}&K_{47}&K_{48}&K_{49}\\ K_{51}&K_{52}&K_{53}&K_{54}&K_{55}&K_{56}&K_{57}&K_{58}&K_{59}\\ K_{61}&K_{62}&K_{63}&K_{64}&K_{65}&K_{66}&K_{67}&K_{68}&K_{69}\\ K_{71}&K_{72}&K_{73}&K_{74}&K_{75}&K_{76}&K_{77}&K_{78}&K_{79}\\ K_{81}&K_{82}&K_{83}&K_{84}&K_{85}&K_{86}&K_{87}&K_{88}&K_{89}\\ K_{91}&K_{92}&K_{93}&K_{94}&K_{95}&K_{96}&K_{97}&K_{98}&K_{99}\\ \end{matrix}\right]_{\Omega_e} \begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix}\\ =&\left[ \begin {matrix} K_{11}&K_{12}&0&K_{14}&K_{15}&0&0&0&0\\ K_{21}&K_{22}&0&K_{24}&K_{25}&0&0&0&0\\ 0&0&0&0&0&0&0&0&0\\ K_{41}&K_{42}&0&K_{44}&K_{45}&0&0&0&0\\ K_{51}&K_{52}&0&K_{54}&K_{55}&0&0&0&0\\ 0&0&0&0&0&0&0&0&0\\ 0&0&0&0&0&0&0&0&0\\ 0&0&0&0&0&0&0&0&0\\ 0&0&0&0&0&0&0&0&0\\ \end{matrix}\right]_{\Omega_1}\begin{bmatrix}U_{1}\\U_{2}\\ \vdots \\ \vdots\\ U_{n}\end{bmatrix}\\ +&{\Omega_2}+{\Omega_3}+{\Omega_4} \ \ \ (\Omega 2 34区域的刚度矩阵与1类似,不同时包含区域节点上积函数的元素为零)\\ \end{aligned} \tag{2.10} ==+aΩ1(ψ,u)+aΩ2(ψ,u)+aΩ3(ψ,u)+aΩ4(ψ,u)e=14 K11K21K31K41K51K61K71K81K91K12K22K32K42K52K62K72K82K92K13K23K33K43K53K63K73K83K93K14K24K34K44K54K64K74K84K94K15K25K35K45K55K65K75K85K95K16K26K36K46K56K66K76K86K96K17K27K37K47K57K67K77K87K97K18K28K38K48K58K68K78K88K98K19K29K39K49K59K69K79K89K99 Ωe U1U2Un K11K210K41K510000K12K220K42K520000000000000K14K240K44K540000K15K250K45K550000000000000000000000000000000000000000 Ω1 U1U2Un Ω2+Ω3+Ω4   (Ω234区域的刚度矩阵与1类似,不同时包含区域节点上积函数的元素为零)(2.10)

4、等参单元

多数情况的求解域都不是规则的矩形,所以为了减少计算复杂度,同时让定义的基函数有效,可以引入等参单元 Ω ^ e \hat{\Omega}_{e} Ω^e,构造一个与坐标轴平行的规则矩形,把要在网格中求解的不规则四边形 Ω e \Omega_e Ωe通过仿射变换映射到该等参单元上求解。把等参单元的坐标用 ( ξ , η ) ( \xi,\eta) (ξ,η)表示,那么 ( ξ , η ) ( \xi,\eta) (ξ,η) ( x , y ) (x,y) (x,y)的映射 F ( ξ , η ) F( \xi,\eta) F(ξ,η)可以表示为
x = a 1 + a 2 ξ + a 3 η + a 4 ξ η y = b 1 + b 2 ξ + b 3 η + b 4 ξ η (2.11) \begin{aligned} x&=a_1+a_2 \xi+a_3 \eta+a_4\xi\eta\\ y&=b_1+b_2 \xi+b_3 \eta+b_4\xi\eta \end{aligned} \tag{2.11} xy=a1+a2ξ+a3η+a4ξη=b1+b2ξ+b3η+b4ξη(2.11)
等参单元 Ω ^ e \hat{\Omega}_{e} Ω^e的四个顶点坐标可以规定为 ( − 1 , − 1 ) , ( 1 , − 1 ) , ( 1 , 1 ) , ( − 1 , 1 ) (-1,-1),(1,-1),(1,1),(-1,1) (1,1),(1,1),(1,1),(1,1),设 Ω e \Omega_e Ωe的坐标为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , ( x 4 , y 4 ) (x_1,y_1),(x_2,y_2),(x_3,y_3),(x_4,y_4) (x1,y1),(x2,y2),(x3,y3),(x4,y4),带入式(3.1)可以得到
a 1 − a 2 − a 3 + a 4 = x 1 a 1 + a 2 − a 3 − a 4 = x 2 a 1 + a 2 + a 3 + a 4 = x 3 a 1 − a 2 + a 3 − a 4 = x 4 (2.12) \begin{aligned} a_1-a_2 -a_3 +a_4&=x_1\\ a_1+a_2 -a_3 -a_4&=x_2\\ a_1+a_2 +a_3 +a_4&=x_3\\ a_1-a_2 +a_3 -a_4&=x_4 \end{aligned} \tag{2.12} a1a2a3+a4a1+a2a3a4a1+a2+a3+a4a1a2+a3a4=x1=x2=x3=x4(2.12)
可以发现关于 x x x y y y的方程组系数是一样的
M = [ 1 − 1 − 1 1 1 1 − 1 − 1 1 1 1 1 1 − 1 1 − 1 ] M=\begin{bmatrix} 1& -1 & -1 & 1 \\ 1& 1 & -1 &- 1 \\ 1& 1 & 1 & 1 \\ 1& -1 & 1 & -1 \end{bmatrix} M= 1111111111111111
所以可以得到
M a = x M b = y Ma=x \quad\quad\quad\quad Mb=y Ma=xMb=y
这样就很容易的的到 a , b a,b a,b的值, ( x , y ) (x,y) (x,y) ( ξ , η ) ( \xi,\eta) (ξ,η)之间就能相互转化。然后就可以定义等参单元 Ω ^ e \hat{\Omega}_{e} Ω^e上的形状函数,我们可以选择山形基函数,在当前节点为1其余节点为0,对于等参单元的(-1,-1)点,根据拉格朗日插值的想法( ξ \xi ξ η \eta η等于1的时要等于0),可以设形状函数 γ 1 \gamma_1 γ1 c ( ξ − 1 ) ( η − 1 ) c( \xi-1)( \eta-1) c(ξ1)(η1),其中 c c c为常数,当 ξ \xi ξ= η = − 1 \eta=-1 η=1时基函数为1,则 γ 1 = 1 \gamma_1=1 γ1=1,解得 c = 1 4 c=\frac{1}{4} c=41,对于等参单元 Ω ^ e \hat{\Omega}_{e} Ω^e另外三个顶点,采用相同的想法,可以构造出四个形状函数:
γ 1 = 1 4 ( 1 − ξ − η + ξ η ) γ 2 = 1 4 ( 1 + ξ − η − ξ η ) γ 3 = 1 4 ( 1 + ξ + η + ξ η ) γ 4 = 1 4 ( 1 − ξ + η − ξ η ) (2.13) \begin{aligned} \gamma_1=\frac{1}{4}(1- \xi-\eta+\xi\eta)\\ \gamma_2=\frac{1}{4}(1+ \xi-\eta-\xi\eta)\\ \gamma_3=\frac{1}{4}(1+ \xi+\eta+\xi\eta)\\ \gamma_4=\frac{1}{4}(1-\xi+\eta-\xi\eta)\\ \end{aligned} \tag{2.13} γ1=411ξη+ξηγ2=411+ξηξηγ3=411+ξ+η+ξηγ4=411ξ+ηξη(2.13)
这样通过坐标转换就能得到 Ω e \Omega_e Ωe上的形状函数,值得注意的是 Ω ^ e \hat{\Omega}_{e} Ω^e上的形状函数是双线性的,但是 Ω e \Omega_e Ωe上的形状函数通常不是双线性的。
这样在网格的每个节点都能计算出相应的基函数 ϕ i \phi_{i} ϕi,这时再看 K U = 0 KU=0 KU=0,我们可以用 ϕ i \phi_{i} ϕi当作K的逼近子空间的基,局部刚度矩阵
K i j = ∑ e ( w i , w j ) = ∑ e ∫ Ω e k ∇ ϕ i ⋅ ∇ ϕ j d x d y K_{ij}=\sum_{e}\left( w_{i}, w_{j}\right)=\sum_{e}\int_{\Omega_{e_k}} \nabla \phi_{i} \cdot \nabla \phi_{j}dxdy Kij=e(wi,wj)=eΩekϕiϕjdxdy
根据从 ( x , y ) (x,y) (x,y) ( ξ , η ) ( \xi,\eta) (ξ,η)的坐标变换(3.1)式可以求出这个变换的雅可比矩阵
J ( ξ , η ) = F ′ ( ξ , η ) = [ ∂ F 1 ∂ ξ ( ξ , η ) ∂ F 1 ∂ η ( ξ , η ) ∂ F 2 ∂ ξ ( ξ , η ) ∂ F 2 ∂ η ( ξ , η ) ] = [ a 2 + a 4 η a 3 + a 4 ξ b 2 + b 4 η b 3 + b 4 ξ ] J(\xi,\eta)=F'(\xi,\eta)=\begin{bmatrix} \frac{\partial F_1}{\partial \xi}( \xi,\eta)& \frac{\partial F_1}{\partial \eta}( \xi,\eta) \\ \frac{\partial F_2}{\partial \xi}( \xi,\eta)& \frac{\partial F_2}{\partial \eta}( \xi,\eta) \\ \end{bmatrix}=\begin{bmatrix} a_2+a_4\eta&a_3+a_4\xi \\ b_2+b_4\eta&b_3+b_4\xi \\ \end{bmatrix} J(ξ,η)=F(ξ,η)=[ξF1(ξ,η)ξF2(ξ,η)ηF1(ξ,η)ηF2(ξ,η)]=[a2+a4ηb2+b4ηa3+a4ξb3+b4ξ]
则根据多重积分的性质,对于任意 f ( x , y ) f(x,y) f(x,y)的积分有
∫ Ω f ( x , y ) d x d y = ∑ e ∫ Ω e f ( x , y ) d x d y = ∑ e ∫ Ω ^ e f ( ξ , η ) ∣ J e ∣ d ξ d η \int_{{\Omega}} f(x,y) \mathrm{d}x \mathrm{d}y = \sum_{e} \int_{{\Omega}_{e}} f(x,y) \mathrm{d}x \mathrm{d}y = \sum_{e} \int_{\hat{\Omega}_{e}} f( \xi,\eta)\left|\mathcal{J}_{e}\right| \mathrm{d} {\xi} \mathrm{d} \eta Ωf(x,y)dxdy=eΩef(x,y)dxdy=eΩ^ef(ξ,η)Jedξdη

其中 ∣ J e ∣ \left| \mathcal{J}_{e}\right| Je ,是等参单元到积分单元的雅可比行列式,再根据(2.7)式,则(2.4)可以写成
a ( ψ , u ) = ( ∇ ψ , ∇ u ) − ⟨ ψ , ∇ u ⋅ n ^ ⟩ + ( ψ , v ⃗ ⋅ ∇ u ) = ∫ Ω ∇ ψ ⋅ ∇ u − ∫ ∂ Ω ψ ( ∇ u ⋅ n ^ ) + ∫ Ω ψ ( v ⃗ ⋅ ∇ u ) = ∑ e ∣ J e ∣ [ ∫ Ω ^ e ∇ ψ i ⋅ ∇ u h − ∫ ∂ Ω ^ ψ i ( ∇ u h ⋅ n ^ ) + ∫ Ω ^ e ψ i ( v ⃗ ⋅ ∇ u h ) ] = 0 \begin{aligned} a(\psi,u)=&\left(\nabla\psi, \nabla u \right) - {\langle\psi, \nabla u\cdot \hat{n} \rangle} + \left(\psi,\vec{v} \cdot \nabla u\right)\\ =&\int_{\Omega} \nabla \psi \cdot \nabla u-\int_{ \partial \Omega} \psi (\nabla u\cdot \mathbf {\hat {n}})+\int_{\Omega} \psi(\vec{v} \cdot \nabla u )\\ =&\sum_e \left|\mathcal{J}_{e}\right| \left[\int_{\hat{\Omega}_e} \nabla \psi_i \cdot \nabla u_h-\int_{ \partial \hat{\Omega}} \psi_i (\nabla u_h\cdot \mathbf {\hat {n}})+\int_{\hat{\Omega}_e} \psi_i(\vec{v} \cdot \nabla u_h )\right]\\ =&0 \end{aligned} a(ψ,u)====(ψ,u)ψ,un^+(ψ,v u)ΩψuΩψ(un^)+Ωψ(v u)eJe[Ω^eψiuhΩ^ψi(uhn^)+Ω^eψi(v uh)]0
其中
u ≈ u h = ∑ i n U i ψ i i = 1 , 2 , ⋯ n u \approx u_h=\sum_{i}^nU_{i}\psi_i \quad \quad i = 1,2,\cdots n uuh=inUiψii=1,2,n
这样刚度矩阵的

5、高斯积分

进行离散后的积分求解起来很麻烦,为了方便就采用了高斯积分的形式
∑ e ∫ Ω ^ e f ( ξ ˉ ) ∣ J e ∣ d ξ ˉ ≈ ∑ e ∑ q w q f ( x ˉ q ) ∣ J e ( x ˉ q ) ∣ \sum_{e} \int_{\hat{\Omega}_{e}} f(\bar{\xi})\left|\mathcal{J}_{e}\right| \mathrm{d} \bar{\xi} \approx \sum_{e} \sum_{q} w_{q} f\left(\bar{x}_{q}\right)\left|\mathcal{J}_{e}\left(\bar{x}_{q}\right)\right| eΩ^ef(ξˉ)Jedξˉeqwqf(xˉq)Je(xˉq)
x ˉ q \bar{x}_{q} xˉq是正交点的位置, w q w_{q} wq是它的相关权重。

二维的高斯积分点和权重对应表

高斯点个数 n 2 ( n × n ) n^2(n \times n) n2(n×n)高斯点坐标权重精度
1 ( 1 × 1 ) 1(1 \times 1) 1(1×1) x 1 = y 1 = 1 x_1=y_1=1 x1=y1=1 w 1 = 4 w_1=4 w1=41
4 ( 2 × 2 ) 4(2 \times 2) 4(2×2) x i , y j = ± 1 3 \displaystyle x_i,y_j=\pm \sqrt{\frac{1}{3}} xi,yj=±31 w i j = 1 w_{ij}=1 wij=13
9 ( 3 × 3 ) 9(3 \times 3) 9(3×3) x 1 = y 1 = 0 x i 2 , y j 2 = 0 , ± 3 5 x i 3 , y j 3 = ± 3 5 , 0 x i 4 , y j 4 = ± 3 5 , ± 3 5 {x_1=y_1=0}\\{x_{i2},y_{j2}=0,\pm \sqrt{\frac{3}{5}}}\\{x_{i3},y_{j3}=\pm \sqrt{\frac{3}{5}}},0\\{x_{i4},y_{j4}=\pm \sqrt{\frac{3}{5}},\pm \sqrt{\frac{3}{5}}} x1=y1=0xi2,yj2=0,±53 xi3,yj3=±53 ,0xi4,yj4=±53 ,±53 w 1 = 8 9 × 8 9 = 64 81 w 2 = 8 9 × ± 5 9 = 40 81 w 3 = ± 5 9 × 8 9 = 40 81 w 4 = 5 9 × 5 9 = 25 81 {w_1= \frac{8}{9}\times\frac{8}{9}=\frac{64}{81}}\\{w_2= \frac{8}{9}\times \pm \frac{5}{9}=\frac{40}{81}}\\{w_3= \pm \frac{5}{9}\times\frac{8}{9} =\frac{40}{81}}\\{w_4= \frac{5}{9}\times \frac{5}{9}=\frac{25}{81}} w1=98×98=8164w2=98×±95=8140w3=±95×98=8140w4=95×95=81255

对于四边形等参单元,可以选取9个高斯积分点。当 x , y = 0 x,y=0 x,y=0时权重为 8 9 \displaystyle \frac{8}{9} 98,当 x , y = ± 3 5 \displaystyle x,y=\pm \sqrt{\frac{3}{5}} x,y=±53 时权重为 ± 5 9 \displaystyle \pm \frac{5}{9} ±95,那对该等参单元积分就可以写成
∫ Ω e f ( x , y ) d x d y = ∫ Ω ^ e f ( ξ , η ) ∣ J e ∣ d ξ d η ≈ [ 25 81 f ( − 3 5 , 3 5 ) + 40 81 f ( 0 , 3 5 ) + 25 81 f ( 3 5 , 3 5 ) + 40 81 f ( − 3 5 , 0 ) + 64 81 f ( 0 , 0 ) ) + 40 81 f ( 3 5 , 0 ) + 25 81 f ( − 3 5 , − 3 5 ) + 40 81 f ( − 3 5 , 0 ) + 25 81 f ( − 3 5 , 3 5 ) ] ∣ J e ∣ \begin{aligned}\int_{{\Omega}_e} f(x,y)\mathrm{d}x \mathrm{d}y&= \int_{\hat{\Omega}_{e}} f(\xi,\eta)\left|\mathcal{J}_{e}\right| \mathrm{d}\xi\mathrm{d}\eta\\ &\approx \left[\frac{25}{81} f\left( -\sqrt{\frac{3}{5}}, \sqrt{\frac{3}{5}}\right) +\frac{40}{81} f\left( 0, \sqrt{\frac{3}{5}}\right) +\frac{25}{81} f\left( \sqrt{\frac{3}{5}}, \sqrt{\frac{3}{5}}\right) \right.\\ &\left. +\frac{40}{81} f\left( -\sqrt{\frac{3}{5}},0\right) +\frac{64}{81} f\left(0,0)\right) +\frac{40}{81} f\left( \sqrt{\frac{3}{5}},0\right) \right.\\ &\left. +\frac{25}{81} f\left( -\sqrt{\frac{3}{5}}, -\sqrt{\frac{3}{5}}\right) +\frac{40}{81} f\left( -\sqrt{\frac{3}{5}},0\right) +\frac{25}{81} f\left( -\sqrt{\frac{3}{5}}, \sqrt{\frac{3}{5}}\right) \right]\left|\mathcal{J}_{e}\right| \end{aligned} Ωef(x,y)dxdy=Ω^ef(ξ,η)Jedξdη[8125f(53 ,53 )+8140f(0,53 )+8125f(53 ,53 )+8140f(53 ,0)+8164f(00))+8140f(53 ,0)+8125f(53 ,53 )+8140f(53 ,0)+8125f(53 ,53 )]Je

最终我们只需求解:
R ⃗ i ( u h ) = ∑ e ∑ q w q ∣ J e ∣ [ ∇ ψ i ⋅ ∇ u h + ψ i ( v ⃗ ⋅ ∇ u h ) ] ( x ⃗ q ) − ∑ f ∑ q f a c e w q f a c e ∣ J f ∣ [ ψ i ∇ u h ⋅ n ⃗ ] ( x ⃗ q f a c e ) } \begin{aligned} \vec{R}_i(u_h) &= \sum_e \sum_{q} w_{q} \left|\mathcal{J}_e\right|{\left[ \nabla\psi_i\cdot \nabla u_h + \psi_i \left(\vec v \cdot \nabla u_h \right) \right](\vec{x}_{q})} \\ &- \sum_f \sum_{q_{face}} w_{q_{face}} \left|\mathcal{J}_f\right|{\left[\psi_i \nabla u_h \cdot \vec{n} \right](\vec x_{q_{face}})}\} \end{aligned} R i(uh)=eqwqJe[ψiuh+ψi(v uh)](x q)fqfacewqfaceJf[ψiuhn ](x qface)}
这个式子也可以按着(2.6)式的推导方式,写成KU的形式。其中 R ( u h ) R(u_h) R(uh)是逼近解产生的残差,是逼近解求得的右端项 b h b_h bh与真实的右端项之间的差值.

上文肯定错误百出,希望大家能够指出。我学习改正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值