したがって、領域積分は、次の様になります。

ここまでは、OKですか。理解できましたか。かなり詳しく説明してきましたので、理解できたと思いますが。
それでは、今まで学んだことをまとめてみましょう。次の式を、じっくり眺めてみて下さい。

上の式は、かなり一般的に書かれています。要素の種類も限定されていません。上の式の形は、いたる所で出現しますので、しっかりと理解しておて下さい。
■三角形要素の場合■
上の結果と三角形要素をリンクしてみましょう。記述が大変になりますので、[E]を Isotropic にします。つまり、kij = kδij。
手始めに、三角形要素の[B]マトリックスを計算してみましょう。左下の様になるはずです。そして、[B]T[B]は、右下の様になります。チェックしてみて下さい。
![]() | ![]() |
そして、[B]T[B]を三角形要素上で積分すると、下に示す様な対称マトリックスに成ります。

■Assembly作業■
三角形要素による要素 通称"剛性"マトリクス[k]の計算方法が分かったところで、このマトリクス[k]をグローバル"剛性"マトリクス[K]に足し込む(assembly)方法を勉強しておきましょう。
まず、要素毎に[k]を計算します。これは、3×3のマトリクスで、ここではkKLで表すことにします。この[k]を節点番号に注意を払いながらグローバル"剛性"マトリクス[K]に足し込めばよいことになります。Assemblyの実演については、 計算例をご覧下さい。ここでは、連立方程式の解法で紹介した対称Multi-Diagonal Matrixを[K]として使うことにします。
次に要素のK節点に対応したグローバル節点番号をiで表します。そして、要素のL節点に対応したグローバル節点番号からiを差し引きそして1を加算した値をjと置きます。ここで、注意したいことは、[K]の1列が[k]の対角要素に対応します。すると、kKLはKijに足し込めば良いことになります。ただし、j>0という条件が有ります。
Fortranで書くと以下のようになります。ここにNEは要素数、IELは要素番号、NDは要素の節点番号、SKは[k]、RKは[K]のことです。サブルーチンSTIFMTXは、三角形要素の[k]を計算してくれます。
DO IEL = 1 ,NE
DO I = 1 , ND
X (I) = XCOORD (NODEX(IEL,I))
Y (I) = YCOORD (NODEX(IEL,I))
END DO
CALL STIFMTX ( ND , A , B, X , Y , EXX,EXY,EYY , SK )
DO K = 1 , ND
I = NODEX(IEL,K)
DO L = 1 , ND
J = NODEX(IEL,L) - I + 1
IF ( J .GE. 1 ) RK (I,J) = RK(I,J) + SK(K,L)
END DO
END DO
END DO
プログラムの全体は、■例題1: プログラムによる計算■から見ることができます。そのページにあるFEM3Q.FORをクリックしてみて下さい。FEM3.FORは、フルマトリクスの[K]を生成します。両者を見比べると、メモリーを節約するためのテクニックが理解できます。
![]() |
![]() |
|---|
| BACK | NEXT-Boundary Integration |
|---|
| Menu | Heat Eq. | Cdtvty | WRM2 | Tri | Stiff | Bound | Ex | Rmk |