インデックスのKとLは[N]T[N]から出来るマトリクスのK行L列を意味します。インデックスmとnは実座標の独立変数を意味します。例えば、m=1ではxm=x、m=2ではxm=y、m=3ではxm=zになります。すると要素毎の剛性マトリクス[k]は、例えば以下のように書けます。
また、Amm=A(1,1,K,L)+ A(2,2, K,L)+ A(3,3, K,L)とすると、要素毎の剛性マトリクス[k]の対角要素は、以下の様に書けます。
■[k]をグローバル剛性マトリクス[K]に足しこむ操作(assembly)■
要素毎の剛性マトリクスが計算できたら、次はグローバル剛性マトリクスへのAssembly作業が待っています。
このプログラミングですが、ちょっと頭が混乱します。
[k]は対称マトリクスですから、半分だけ記憶すればよいことになります。
ここでは、連立方程式の解法で紹介した対称Multi-Diagonal Matrixを使うとこにします。もちろん、LU Decomposition法も使えます。
更に、これまでに生成された[B]T[D][B]に掛け算される変位{u}は、{u}T={u1, u2,…..u8, v1, v2,…..v8, w1,w2,…..w8} になっています。
グローバル剛性マトリクス[K]をこのような変位の配列に対応するようにAssembly作業を行うと、[K]はフルマトリクスになってしまい、大量のメモリーが必要になります。そこで、変位をu1, v1,w1,u2,v2,w2,……..…..un,vn,wnに対応するように、[K]をAssembleします。すると、[K]は圧縮されたバンドマトリクス(半バンド幅=3b)になり、メモリーが節約できるだけでなく、計算速度も速くなります。ここで注意しておきたいのは、[k]の対角要素は[K]の列1に足しこまれることになります。
さて、問題は、出来上がった24×24の[k]をどのように[K]にAssembleしたらよいかです。まず、要素のK節点に対応したグローバル節点をiとしておきます。そして、要素のL節点に対応したグローバル節点からiを差し引き1を加算した値をjとしておきます。すると、kmnKLは以下の位置の[K]に足しこまれることになります。
BACK | NEXT |
---|
Menu | LU Decompo | Stiff | 3D Solid | 3D Fluid | Eigen&Lanczos | Sound Eigen | Solid Eigen | Solid Axisym |