変位の算出 は、以下の連立一次方程式を解くことによって行います
連立方程式を解くには、メモリを大量に使用するため、コンピュータの処理時間が長くなります。
そのため、固定点については解くことをしないようにするため
<有限要素法>固定条件の処理
で求めた、剛性マトリックス等を使用します。
剛性マトリックス all_valid_ESmatrix_EK
変位: valid_displacement:
荷重力(外力 節点力)valid_loading_force
後程LAPACKライブラリを使用して、さらに高速化した解法を示します。
//計算を高速化するため、固定されていない成分のみの変位を計算する
LEQ(all_valid_ESmatrix_EK, valid_loading_force, valid_displacement,valid_point_num);
valid_displacement[ ] に計算で得られた変位が入りますが、
これは、固定点を間引いた順番での並びになっていますので、これを間引く前の並びに変更します。constraint_sequence[ ]に、固定点を間引いた並びと、間引く前の並びを対応させたものが入っています。
for (int i=0; i<valid_point_num; i++) {
displacement[constraint_sequence[i]] = valid_displacement[i];
}
ガウス消去法での連立方程式の解法ファンクション(LEQ)は以下の通りです。
次のページ →
<有限要素法>変位の計算 (まとめ)
「有限要素法における平面トラスの解析」プログラムをC言語で書いてみる : 目次 |
0 件のコメント:
コメントを投稿