●OPTIMIZER4.FOR●
このプログラムは、節点番号を並び替えて[K]マトリクスのバンド幅を縮小してくれます。
多少CPUに負荷をかけますので、最初は小規模の計算領域で計算時間をチェックして
おいて下さい。バンド幅が縮小されると、ファイル(EIGN3D8.DAT)は
更新されます。
バンド幅の縮小状況は、次の2つのファイル
BNDWDTH.FEMと
OPTIMIZATION-STATUS.FEM
で判断できます。
■LANCZOS-SOUND10-JACOB-VT.FOR■
最後に紹介するのが、ここで機能の詳細を説明するLanczos法を用いて固有値と固有ベクトルを計算するプログラムです。
このプログラムは、ファイル(EIGN3D8.DAT)を読み込み、
シフトパラメターδより大きい固有値と固有ベクトルを計算してくれます。閉空間内の流体が
空気だった場合の固有振動数ω(単位:Hz)も計算してくれます。
部分空間への射影はLanczos法、射影された[T]マトリクスの固有値と固有ベクトルの計算は
Jacob法を用いました。まず、このプログラムを構成しているサブプログラム群を下に紹介
しておきます。その後、各サブプログラムの働きを出来るだけ詳細に紹介します。
Subroutine名 | 与える 変数 |
送り返す 変数 |
役割/目的 |
---|---|---|---|
GRULE | INTEPT | SAI W |
積分点の座標と重み値を返す |
DERIV | ND,INTEPT,GE,FCTN,SAI | BPP | 形状関数の微分を積分点で計算する |
SHAPEF | ND,INTEPTGE,SAI | SF | 形状関数の値を積分点で計算する |
ISOPARA | ND,E1,E2,E3 | F | 形状関数の値を座標(E1,E2,E3)で計算する |
INPUT | MXE,MXN INPFILE MXENGN |
NE NNODE NODEX XCOORD DELTA NEIGEN |
計算に必要なデータを入力ファイルから読み取る。 更にデータのチェックも行う |
BANDWID | ND,MXE,NE,NODEX | NBWDTH | [K]マトリクスのバンド幅を計算する |
GSM | INTEPT,ND,ND3,MXE MXN,NE,BPP,SF,W,BX SK,SS,NODEX,XCOORD |
GSTIFF SOURCE |
[K]と[M]マトリクスを作るための積分を行いReturn変数に収める |
SUMUP | ND,ND3,MXE,MXN,MXW NE,NBWDTH,NNODE NODEX,GSTIFF SOURCE,SS,DELTA |
GSMTX GEOM |
[K]と[M]マトリクスを作成した後、[K]=[K]-δ[M]を計算する |
INIVEC | MXW,MXN,MXENGN GSMTX,NNODE NEIGEN |
VEC(I,1) | 初期の正規直交ベクトル{U1}を[K]の対角要素から計算する |
DECOMPVT | GSMTX,NNODE NBWDTH,MXW,MXN |
GSMTX | [K]-δ[M]を[L][D][L]Tに分解する |
LANCSEQU | MXENGN,MXN,MXW NNODE,NEIGEN,NBWDTH U1,GEOM,GSMTX |
VEC SUBSMTX |
[A]{U1}を計算する |
ATIMESU1 | MXENGN,MXN,MXW NNODE,NBWDTH,IEIGN GEOM,VEC,GSMTX |
U1 | [A]{U1}を計算する |
LANCZOS | MXN,MXENGN,NNODE IEIGN,U1,NEIGEN |
VEC SUBSMTX |
Lanczos法により[T]と[V]マトリクスを生成する |
EIGENVEC | MXN,MXENGN,DELTA NNODE,GEOM SUBSMTX,VEC,EPS NEIGEN,MAXITA |
FLMBDA SUBSVEC VEC1 |
固有値と部分空間での固有ベクトルを計算する |
CONVRGNC | DELTA,WSPD,ND3,ND MXE,MXN,MXENGN,NE NNODE,GSTIFF,U1 VEC1,FLMBDA,GEOM SS,NODEX,NEIGEN OUTFILE,EPSPLT |
なし | 実空間での固有ベクトル{x}を計算した後、[K]{x}=λ[M]{x}の収束状況を調べる |
JACOBS | MXENGN,EPS,MAXTRTN NEIGEN,SUBSMTX |
SUBSMTX SUBSVEC |
Jacob法で固有値と固有ベクトルを計算する |
SORTING | NNODE,MXN,MXENGN NEIGEN,FLAMBDA EIGENVEC |
FLAMBDA EIGENVEC |
固有値を並び替える |
VECTOR | MXN,MXENGN,OUTFILE NNODE,VEC1,IEIGN |
なし | モード別に実空間の固有ベクトルをファイルに書き込む |
FILEMAKE | MXENGN,NEIGEN | OUTFILE | 固有ベクトルのファイル名を生成する |
BACK | NEXT |
---|
Menu | LU Decompo | Stiff | 3D Solid | 3D Fluid | Eigen&Lanczos | Sound Eigen | Solid Eigen | Solid Axisym |