●Subroutine: INPUT●
プログラムMAKING-TEST-DATA.FOR等が作成する要素や節点の座標情報が記録されているファイルEIGN3D8.DATを
読み込みます。データが取り込まれる変数名は以下のようになっています。これまでに既に説明した
変数名は省きます。
変数名 | タイプ | 配列 | 意味/目的 |
---|---|---|---|
MXE,MXN | 整数 | なし | DIMENSIONで宣言している要素数と節点数の最大値 |
NE,NNODE | 整数 | なし | 取り込まれる要素数と節点数 |
NODEX | 整数 | 2次元 | 各要素に与えられている全ての節点番号 |
XCOORD | 実数 | 2次元 | 各節点の座標値。 {節点iのX,Y,Z}={XCOORD(1,I),XCOORD(2,I),XCOORD(3,I)} |
INPFILE | 文字列 | なし | 入力ファイル名 |
DELTA | 実数 | なし | シフトパラメーターです。 領域の大きさから最小の固有値を見つけます。 そしてここでは最小の固有値に0.9を掛算した値を シフトパラメーターとしています。 |
NEIGEN | 整数 | なし | [T]マトリクスの大きさ |
●Subroutine: BANDWID●
[K]マトリクスのバンド幅をNODEX(I,J)から算出します。
引数のND,MXE,NE,NODEXは既に説明しましたので、省きます。
変数名 | タイプ | 配列 | 意味/目的 |
---|---|---|---|
NBWDTH | 整数 | なし | [K]のハーフバンド幅+1の値が入ります。 |
●Subroutine: GSM●
[K]と[M]マトリクスを構成するために必要な計算である
形状関数の微分掛算の積分と形状関数の掛算の積分を実行し、一時記憶場所に保管します。
引数のINTEPT,ND,MXE,MXN,NE,BPP,SF,W,NODEX,XCOORDは既に説明しましたので省きます。
このサブプログラムでは、要素毎に必要な積分を行います。
∫∫∫[B]T[B]dVはSK(I,J)へ、∫∫∫[N]T[N]dVはSS(I,J)へ一旦記憶し、
全ての要素の計算が修了後、SK(I,J)はGSTIFF(IEL.M)、SS(I,J)はSOURCE(IEL,M)へ保管します。
GSTIFF(IEL.M)は[K]をSOURCE(IEL,M)は[M]をassembleするためのデータです。注意:[M]は他の技術問題の
解析で使っている[GEOM]と同じです。
[K]と[M]のassemblyはSubroutine: SUMUPで行います。[K]と[M]を直接Subroutine: GSMでassembleして
しまうと、固有ベクトルの信頼性の検証のところで、もう一度積分し[K]と[M]をassembleする必要があります。
その無駄を避けるために、積分結果を一旦GSTIFF(IEL.M)とSOURCE(IEL,M)に記憶しておくことにしました。
BACK | NEXT |
---|
Menu | LU Decompo | Stiff | 3D Solid | 3D Fluid | Eigen&Lanczos | Sound Eigen | Solid Eigen | Solid Axisym |