Two Dimensional Finite Element Method
Stiffness Matrix-4

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

ここまでは、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