■[k]を剛性マトリクス[K]に足し込む操作(Assembly)■
要素毎の剛性マトリクスが計算できたら、次はグローバル剛性マトリクスへのAssembly作業が待っています。このプログラミングですが、ちょっと頭が混乱します。順を追って説明しますので、何べんも復習してみて下さい。まず、[k]は対称マトリクスですから、半分だけ記憶すればよいことになります。ここでは、連立方程式の解法で紹介した対称Multi-Diagonal Matrixを使うことにします。更に、これまで説明してきた[B]T[D][B]に掛け算される変位ベクトルは、u1,u2,.....u8,v1,v2,.....v8,w1,w2,.....w8の並びになっています。グローバル剛性マトリクス[K]をこのような変数配列に対応するようにAssembly作業を行うとフルマトリクスに近い状態になってしまい、大量のメモリーが必要になります。そこで、変数をu1,v1,w1,u2,v2,w2,.....u8,v8,w8に対応するように[k]を[K]にassembleします。すると、[K]は圧縮されたバンドマトリクスになり、メモリーが節約できるだけでなく、計算速度も速くなります。ここで注意しておきたいことは、[k]の対角要素は[K]の列1に足し込まれることになります。
さて問題は出来上がった24×24の[k]をどのように[K]にAssembleしたらよいかです。頭が混乱するのはここです。まず、要素のK節点に対応したグローバル節点をiとしておきます。そして要素のL節点に対応したグローバル節点からiを差し引き1を加算した値をjとします。すると、kmnKLは以下の位置の[K]に足し込まなければなりません。
j×3-4 | j×3-3 | j×3-2 | j×3-1 | j×3-0 | |
---|---|---|---|---|---|
i×3-2 | - | - | k11KL | k12KL | k13KL |
i×3-1 | - | k21KL | k22KL | k23KL | - |
i×3-0 | k31KL | k32KL | k33KL | - | - |
例えば、k13KLはKi×3-2,j×3へ足し込まれることになります。ただし、条件として、足し込む際 Ki,jのjがゼロまたは負になってはなりません。全ての要素に対し、KとLをそれぞれ1からnまで、この足し込み操作(assembly)を行うとGlobal stiffness matrix [K]が出来上がります。
BACK | NEXT |
---|
Menu | Basics | Material | τ-ε | Failure | Navier | 3dim | 2dim | Sample |