2 連立方程式の決定法

前章のように、連立方程式を一本づつ計算していくと、節点のまわりに どの要素があるか、という情報が必要になり、あまり効率的ではない。 1 ここでは、要素と節点の関係が分かっているとする。

2.1 要素ごとの項

式(14)の各項は、要素一つの寄与である。 ここで、式(14)から要素$ (I)$の寄与だけを抜き出す。

$\displaystyle \left. \frac{\partial J[u]}{\partial u_i} \right\vert _{(I)}  = ...
...}}{\partial y}\right) \frac{\partial \phi_{(I)i}}{\partial y} \right\} s_{(I)}$ (17)

この式での、節点 $ (I1),(I2),(I3)$を本来の節点番号$ i,j,k$と置き、 要素番号は$ I$しか出てこないので、これは省略すると次のようになる。

\begin{displaymath}\begin{split} \left. \frac{\partial J[u]}{\partial u_i} \rig...
... y} \frac{\partial \phi_i}{\partial y} \right) u_k \end{split}\end{displaymath} (18)

これを参考に $ \frac{\partial J[u]}{\partial u_j}$の 要素$ I$の寄与分を考えると次のようになる。

$\displaystyle \left. \frac{\partial J[u]}{\partial u_j} \right\vert _{(I)} = s...
...rac{\partial \phi_k}{\partial y} \frac{\partial \phi_j}{\partial y} \right) u_k$ (19)

同様に $ \frac{\partial J[u]}{\partial u_k}$の 要素$ I$の寄与分を考えると次のようになる。

$\displaystyle \left. \frac{\partial J[u]}{\partial u_k} \right\vert _{(I)} = s...
...} \right)^2  + \left( \frac{\partial \phi_k}{\partial y} \right)^2 \right) u_k$ (20)

このように、一つの要素の方程式の寄与(式の中の項)をすべての要素について求め、 それをすべて足しあわせると解くべき連立方程式ができる。

2.2 係数行列の設定

式(18),(19),(20)の結果を係数行列に直す。

$ \frac{\partial J[u]}{\partial u_i}$は、$ i$行。その中の、 $ u_i$を含む項は、$ i$列になるので、

$\displaystyle a_{ii}\vert _{(I)} = s \left( \left( \frac{\partial \phi_i}{\partial x} \right)^2  + \left( \frac{\partial \phi_i}{\partial y} \right)^2 \right)$ (21)

となり、後は同様にして求められる。

$\displaystyle a_{ii}\vert _{(I)}$ $\displaystyle = s \left( \left( \frac{\partial \phi_i}{\partial x} \right)^2  + \left( \frac{\partial \phi_i}{\partial y} \right)^2 \right)$ $\displaystyle a_{ij}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_j}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_j}{\partial y} \frac{\partial \phi_i}{\partial y} \right)$ $\displaystyle a_{ik}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_k}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_k}{\partial y} \frac{\partial \phi_i}{\partial y} \right)$    
$\displaystyle a_{ji}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_i}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_j}{\partial y} \frac{\partial \phi_i}{\partial y} \right)$ $\displaystyle a_{jj}\vert _{(I)}$ $\displaystyle = s \left( \left( \frac{\partial \phi_j}{\partial x} \right)^2  + \left( \frac{\partial \phi_j}{\partial y} \right)^2 \right)$ $\displaystyle a_{jk}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_k}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_k}{\partial y} \frac{\partial \phi_j}{\partial y} \right)$    
$\displaystyle a_{ki}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_i}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_i}{\partial y} \frac{\partial \phi_k}{\partial y} \right)$ $\displaystyle a_{kj}\vert _{(I)}$ $\displaystyle = s \left( \frac{\partial \phi_j}{\partial x} \frac{\partial \phi...
...+ \frac{\partial \phi_j}{\partial y} \frac{\partial \phi_k}{\partial y} \right)$ $\displaystyle a_{kk}\vert _{(I)}$ $\displaystyle = s \left( \left( \frac{\partial \phi_k}{\partial x} \right)^2  + \left( \frac{\partial \phi_k}{\partial y} \right)^2 \right)$    

この中に入っている形状関数は、もちろん今考えている要素の中にある形状関数である。 $ s$も今考えている要素の面積である。

このように、すべての要素の係数行列の寄与分を考えて、足しあわせると解くべき方程式の 係数行列ができる。このような方法で係数行列を決めていく方法は実際に プログラムを組む上で非常に楽である。


ホームページ: Yamamoto's laboratory
著者: 夏井拓也
Yamamoto Masashi
平成19年8月20日


no counter