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ψ,u∈V(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(F⋅n^)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−∫∂Ωψ(∇u⋅n^)+∫Ωψ(v⋅∇u)=0ψ,u∈V(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
⟨ψ,∇u⋅n^⟩+Kernel
(ψ,v⋅∇u)=0ψ,u∈V(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
u≈uh=i∑nUiwi
为了方便记
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)−⟨ψ,∇u⋅n^⟩+(ψ,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)−⟨ψ,∇uh⋅n^⟩+(ψ,v⋅∇uh)=(∇ψ,i∑nUi∇wi)−⟨ψ,i∑nUi∇wi⋅n^⟩+(ψ,v⋅i∑nUi∇wi)=i∑nUi(∇ψ,∇wi)−⟨ψ,∇wi⋅n^⟩+(ψ,v⋅∇wi)=
(∇ψ,∇w1)−⟨ψ,∇w1⋅n^⟩+(ψ,v⋅∇w1)(∇ψ,∇w2)−⟨ψ,∇w2⋅n^⟩+(ψ,v⋅∇w2)⋮⋮(∇ψ,∇wn)−⟨ψ,∇wn⋅n^⟩+(ψ,v⋅∇wn)
T
U1U2⋮⋮Un
=[a(ψ,w1),a(ψ,w2),⋯,a(ψ,wn)]
U1U2⋮⋮Un
=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,∇uh⋅n^⟩+(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)−⟨ψ,∇u⋅n^⟩+(ψ,v⋅∇u)=[a(ψ,w1),a(ψ,w2),⋯,a(ψ,wn)]
U1U2⋮⋮Un
=
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)
U1U2⋮⋮Un
=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−∫∂Ωψ(∇u⋅n^)+∫Ωψ(v⋅∇u)e∑[∫Ωe∇ψi⋅∇uh−∫∂Ωψi(∇uh⋅n^)+∫Ω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−∫∂Ωψ(∇u⋅n^)+∫Ωψ(v⋅∇u)e=1∑4[∫Ωe∇ψi⋅∇uh−∫∂Ωψi(∇uh⋅n^)+∫Ω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=1∑4
K11K21K31K41K51K61K71K81K91K12K22K32K42K52K62K72K82K92K13K23K33K43K53K63K73K83K93K14K24K34K44K54K64K74K84K94K15K25K35K45K55K65K75K85K95K16K26K36K46K56K66K76K86K96K17K27K37K47K57K67K77K87K97K18K28K38K48K58K68K78K88K98K19K29K39K49K59K69K79K89K99
Ωe
U1U2⋮⋮Un
K11K210K41K510000K12K220K42K520000000000000K14K240K44K540000K15K250K45K550000000000000000000000000000000000000000
Ω1
U1U2⋮⋮Un
Ω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}
a1−a2−a3+a4a1+a2−a3−a4a1+a2+a3+a4a1−a2+a3−a4=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=
1111−111−1−1−1111−11−1
所以可以得到
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=41(1−ξ−η+ξη)γ2=41(1+ξ−η−ξη)γ3=41(1+ξ+η+ξη)γ4=41(1−ξ+η−ξη)(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(ξ,η)∣Je∣dξ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)−⟨ψ,∇u⋅n^⟩+(ψ,v⋅∇u)∫Ω∇ψ⋅∇u−∫∂Ωψ(∇u⋅n^)+∫Ωψ(v⋅∇u)e∑∣Je∣[∫Ω^e∇ψi⋅∇uh−∫∂Ω^ψi(∇uh⋅n^)+∫Ω^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
u≈uh=i∑nUiψ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(ξˉ)∣Je∣dξˉ≈e∑q∑wqf(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=4 | 1 |
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=1 | 3 |
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,±53xi3,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=8125 | 5 |
对于四边形等参单元,可以选取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(ξ,η)∣Je∣dξdη≈[8125f(−53,53)+8140f(0,53)+8125f(53,53)+8140f(−53,0)+8164f(0,0))+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}
Ri(uh)=e∑q∑wq∣Je∣[∇ψi⋅∇uh+ψi(v⋅∇uh)](xq)−f∑qface∑wqface∣Jf∣[ψi∇uh⋅n](xqface)}
这个式子也可以按着(2.6)式的推导方式,写成KU的形式。其中
R
(
u
h
)
R(u_h)
R(uh)是逼近解产生的残差,是逼近解求得的右端项
b
h
b_h
bh与真实的右端项之间的差值.
上文肯定错误百出,希望大家能够指出。我学习改正!