弱形式で書かれたラプラス方程式は以下の通り
関数
を形状関数を用いて離散化する
ここで
は節点の値であり,関数ではないので積分の外に出すことができる
マトリックス方程式は次の様にかける.
成分表示すると以下のようになる.
但し,
は全体係数マトリックス,
は全体自由度項ベクトルと呼ばれる,
構造解析の名残から全体剛性マトリックス,
全体外力ベクトルとも呼ばれることもある.
実際に全体係数マトリックスを作る際には
をすべての,について
計算することは膨大な計算を必要とする.
なぜなら,節点数の2乗回だけ形状関数同士の内積
の計算が必要となるからである.
有限要素法ではここの点がうまくできており,
形状関数同士の内積はほとんどの場合0となる.
なぜなら有限要素法では解析領域が単純な形をした
要素に分割されており,
形状関数はある節点周りの要素でしか値をもたないからである.
形状関数,が両方0でない値をとるのは
節点,の両方が属する要素上のみである.
このことから要素単位で積分を実行し,
その結果を足し合わせることで
計算に無駄がなく全体係数マトリックスを
作成することができる.
要素内で積分を実行した行列の成分は次のようにかける.
ここで,は要素内の節点番号である.
このように要素内で積分を実行した行列は要素係数マトリックス,
または要素剛性マトリックスと呼ばれる.
要素内で積分を行った要素係数マトリックスから,
全体係数マトリックスを得るためには
マージと呼ばれる手続きで要素係数マトリックスを足し合わせる.
以下にマージの関数の擬似コードを示す. ここでは全要素数, は全体係数マトリックス, は要素係数マトリックスである. は1要素に属する節点数である. また,要素内節点番号から全体節点番号を得る配列をとした.
要は要素係数行列は要素内節点番号がindexになっていて,
全体係数行列は全体節点番号がindexになっているので
要素内節点番号を全体節点番号に
対応づけながら要素係数行列を全体係数行列に足し合わせるということである.
通常,マージは次のように簡単な式で書く
ここまで,式の離散化を議論したが,
実際は式のDirichlet条件も組み込んだ
マトリックス方程式を解かなければ解が求まらない.
以下ではDirichlet条件を組み込むための
マトリックス方程式の変形について述べる.
ここでは任意のであったので,
両辺から消去することができる.
ただし,Derichlet条件が課せられた境界上では
であるためこの限りではない.
をDerichlet境界条件が課された境界に属さない節点とすると
を削除したマトリックス方程式は次の様にかける.
ここではDirichlet境界上で値が既知である.
Dirichlet境界上の値が既知の節点を
とする.またDirichlet境界上にない,
値が未知数である,節点をとすると,
マトリックス方程式は次のように変形される.
ここでDirichlet境界上の節点の値を
とした.
未知数について整理すると