■LU Decomposition(三角行列分解法)の適用■
3次元に入る前に2次元のNSEQ8DD.FORにLU Decompositionを組み込むことから話をはじめます。
LU Decompositionで説明した手法を流体ソフトに適用する場合、時間ステップ(Δt)を固定しなければなりません。
なぜなら、[A]=(1/Δt)[GEOM] + [K]ですからΔtを途中で変える度にCALL LLDECOMPVTが必要になりLU Decomposition
の効果が発揮されません。。
LU Decompositionを用いNSEQ8DD.FORを改造すると、計算速度は数段速くなります。ただし、 CALL LLDECOMPVTでちょっと時間がかかります。今後は、LLDECOMPVTの効率化を行う必要がありますね。 作成したプログラム名は、以下になっています。
次元 | 要素 | 解析プログラム名 | 時間積分 | Input Data 作成プログラム |
Graphic Data 作成プログラム |
---|---|---|---|---|---|
2 | 4節点 | NSEQ8DD4.FOR(オリジナル) | Crank-Nicolson | SET4NS12.FOR | NSG9FILE.FOR |
2 | 4節点 | NSEQ8DD4LLDECOMPOSITION-IMPLICIT.FOR | Implicit | SET4NS12NEW.FOR | NSGFILE4.FOR |
2 | 9節点 | NSEQ8DD9LLDECOMPOSITION-IMPLICIT.FOR | Implicit | SET9NS12.FOR | NSGFILE4.FOR |
おさらいですが、ここのサイトで紹介している流体のそふとでは、時間方向の積分に
Crank-Nicolson methodを使っていました。この方法は精度の向上には役立ちますが
プログラムが複雑になるという欠点がありました。上の表にあるように、
陰解法(Implicit)を時間軸積分に用いています。3次元のプログラムも陰解法を用いてあります。
また、3次元に向けて入力データのフォーマットも変更しました。上で示した入力データ作成プログラム
では新しフォーマットでデータを作成します。
おさらいですがNSEQ8DD.FOR(上表のNSEQ8DD4.FORのこと)では、時間方向の積分にCrank-Nicolson methodを使っています。
この方法は精度の向上には役立ちますがプログラムが複雑になるという欠点がありました。
そのために、t時で[K]{u}の計算を行わなければなりません。
つまり、[K]またはそれに順ずるメモリーが余分に必用になります。
また、プログラムも複雑になっているので、今回3次元プログラムを作成する前準備として、
もっとシンプルな陰解法(Implicit)のNSEQ8DD.FORを作成しました。
プログラム名は上に示してあります。
入力データの作成には、SET4NS12.FOR、SET9NS12.FORを使っています。
計算結果をエクセルで表示できるプログラムも用意してあります。
■3次元流体プログラム■
3次元の流体プログラムは、2次元陰解法プログラムと3次元弾性解析プログラムをベースに作成しました。
基本的には、カットアンドペーストと少々の変更のみで3次元流体プログラムが出来上がりました。
プログラムには8節点ヘキサ要素用と27節点ヘキサ要素用の2つがあります。両者とも連立方程式の解法には、
三角行列分解が使われています。プログラム名は以下です。
次元 | 要素 | 解析プログラム名 | 入力データ 作成プログラム |
グラフィックデータ 作成プログラム |
---|---|---|---|---|
3 | 8節点 | NSEQ8DD3D8LLDECOMPOSITION-IMPLICIT.FOR | SET3D8NS.FOR | GRAPHIC3D8.FOR |
3 | 27節点 | NSEQ8DD3D27LLDECOMPOSITION-IMPLICIT.FOR | SET3D27NS.FOR | GRAPHIC3D27.FOR |
3D Solid | NEXT |
---|
Menu | LU Decompo | Stiff | 3D Solid | 3D Fluid | Eigen&Lanczos | Sound Eigen | Solid Eigen | Solid Axisym |