Three Dimensional Finite Element Method
LU Decomposition
-4

■プログラムと計算例■
簡単なプログラムと計算例を紹介します。まず、連立方程式を解くプログラムに読み込ますデータを作成する必要が 有ります。ここでは、数値をランダムに選択しマトリクス[A]と右辺のベクトル{B}を作成します。ランダム数値と して円周率のデータを使うことにしました。データは、PI.DATを見て下さい。

そして連立方程式のデータを作成するMATRIX-DATA-CREATOR2.FOR を実行すると、以下の2つのファイルを出力してくれます。

SYSFULL.DAT
MTRIXLDLVT.DAT
SYSFULL.DATにはフルマトリクス[A]とベクトル{B}が書き込まれています。
MTRIXLDLVT.DATは、バンドマトリクスに圧縮した[A]とベクトル{B}が書き込まれています。

まずフルマトリクス[A]とベクトル{B}を使ったプログラムを紹介します。プログラム名は、 SIMLUTA-SQUARE2.FORです。このプログラムを 実行すると、SOLUTION-BY-LDL.OUTが結果と してファイル出力されます。

次にハーフバンドマトリクスを用いた場合のプログラムを紹介します。プログラム名は SIMLUTA-CRUSH-VTCL-NRML.FOR です。このプログラムは今後様々なFEMのプログラムに埋め込むことにより、計算速度を 上げることができます。私も流体のプログラムNSEQ8DD.FORに埋め込みました。計算速度が 著しく向上しました。
このプログラムを実行すると、SOLUTION-CRUSHVT.SIMが結果と してファイル出力されます。SIMLUTA-SQUARE2.FORの場合と 同じ計算結果になっています。

 

 

==== 以下はここで紹介したプログラムです。参考にして下さい。====

プログラム名 機能および目的
SIMLUTA-SQUARE2.FOR フルマトリクス[A]を[L][D][L]Tに分解し連立方程式を解く。 [L][D][L]T分解の学習に活用して下さい。
SOLUTION-CRUSHVT.SIM バンドマトリクス[A]を[L][D][L]Tに分解し連立方程式を解く。FEMの プログラムに埋め込み計算速度アップに活用してみて下さい。

[L][D][L]T{x}={B}による連立方程式の計算方法の説明は以上です。

BACK NEXT-Stiffness Matrix
Menu LU Decompo Stiff 3D Solid 3D Fluid Eigen&Lanczos Sound Eigen Solid Eigen Solid Axisym