Femap (Nastran) の質量行列,剛性行列を読み取る方法

Femap for NX Nastran では(多分)質量行列と剛性行列を直接出力する方法がない.代わりに使われるのが.pch形式のファイル(パンチファイル)である.しかしこのパンチファイルに出力される質量行列,剛性行列の値もどう読み取っていいのか一見分かりづらい上に日本語資料に乏しい.そこで解説を試みる.ここではパンチファイルの出力方法については割愛する.必要があれば追記する.

参考資料はSIEMENSによるNX Nastranのユーザーガイド(英語, https://docs.plm.automation.siemens.com/data_services/resources/nxnastran/10/help/en_US/tdocExt/pdf/User.pdf )参考にしたのは11章.

パンチファイルの中身はDMIGというフォーマットで書かれているようである.したがってこのDMIGフォーマットを読み取ることがそのままパンチファイルを読むことにつながる.ここでは大まかな説明のみ記述する.詳細は本家のページを参照のこと.

まずパンチファイルの1行目(Header)はその行列がどのような形式なのかを示すものである.

1列目はDMIG(固定),2列目は行列名(NAME),3列目は0(固定),4列目は行列の形状(IFO)(1:正方,9 or 2:長方,6:対称),5列目は行列に数値がinputされた時のタイプ(1:実数かつ単精度,2:実数かつ倍精度),6列目は行列が作られた時のタイプ(0:マシン側による設定(デフォルト),1:実数かつ単精度,2:実数かつ倍精度),(間が空いて)9列目は行列の列の数となっている.

2行目以降に実際の値についての情報が入っている.各値にはIDのようなものがついており,これが行列内のどの位置の値なのかを示している.詳しい説明は省略するが,大まかにいえば以下の通りである.

有限要素法では各nodeがもつ質量・剛性行列があり,それがブロック状(碁盤目状?)に組み合わさって全体の質量・剛性行列を形成している.そこで,これらのブロックごとにIDなのが振り分けられていると考えてもらいたい.DMIGフォーマットではまずどのノードの情報なのかを示し,そしてそれがどこと対応した(どの自由度とどの自由度に関する)値なのかを示す.

2列目のNAMEの後にくるのはノード番号である.これが列のブロックに対応すると書かれているが,対称行列であれば行としても同じである.そして次にくるのがそのノードのうちどの自由度のものなのかを示す1~6の数字である.これで値が入る列が決まる.改行後,アスタリスクの次に来るのがノード番号である.それに続くのが自由度を示す数字であり,これで行が決まる.そして次に来るのが,その位置に入る数値である.

以上がおおざっぱながらパンチファイルの読み方である.同じような説明が英語ではあるがこちら( https://drive.google.com/file/d/0Bw1VlHh5X_tTdUZRYkh4WGxJMWM/view )から出ているのでこちらを参考にしても良い.

何か間違いや訂正すべき点,疑問点があればコメント等で質問してほしい.