3952

チュートリアル

今回から、著名な解析ソフトウェア NX Nastran のカスタマイズプログラムの DMAP に関しての使用方法を解説して行きます。全3回を予定しており、主にプリポスト一体型の Femapwith NX Nastran を用いた説明を行っていきます。1回目の今回は、Nastran の基礎知識と、プログラムコードの出力方法、およびデータの出力方法を説明します。例題に関しては、
Femap with NX Nastran に準じた掲載を行いますので、DMAP の使用可能な環境をご準備の上、ご参照いただければ、より一層理解が深まります。

Femap with NX Nastran – DMAP 入門（1）
桑原 雅治
1

はじめに

現在、製品開発や、製品の問題点解決を行うに当たって、PC を使用した図面作成、強度計算は無くてはならないものとなっています。
特に、日本の場合には、地震の影響を確認するために、大型の土木／建築関係に関しては必ずといっていいほど、有限要素法の解析ソフトウェアでの計算が行われています。
それ以外にも、重工業、船舶、航空など、解析の必要性は増えており、現在も多数の構造解析用ソフトウェアが販売、利用されています。
今後も、構造解析にかかわらず、熱、流体、電磁場、音響など、FEM（有限要素法）の解析需要は増加していくでしょう。
しかし、現在販売されている解析ソフトウェアのルーチンはブラックボックス化されており、中身を確認することが出来る製品はまれです。
また、別途解析内容の変更や、途中経過の取得なども出来ない場合がほとんどになります。
従って、製品化されているソフトウェアの解析機能から、必要な解析をピックアップして解析を行うことがメインとなり、該当する解析機能を持つソフトが存在しない場合には、一般的なプログラムを用いて開発するか、行列計算用のソフトウェアを使用して作成するか、近しい機能を持つ解析ソフトを使用して、近似の解析で代用することになります。
解析ソフトのうちの Nastnra は、元々は NASA で使用されていた CAE のコードを使用して作成されており、このコードを使用して作成されたソルバーは、Nastranの名前で販売されています。

現在では、各社からそれぞれ解析の目的に合わせて、Nastran のソースコードから独自に開発したソフトウェアが販売されていますが、開発には DMAP という独自の FORTRAN 言語を使用して行われています。
この DMAP ですが、ユーザー側にも提供されており、現在の解析機能の修正、機能の追加などを行うことが可能です。
本チュートリアルでは、DMAP の基本的な使用方法を、プリ・ポストおよび解析ソフトが一体となった『Femap with NX Nastran v12.0J』を用いて説明していきます。
例題を使用する際には、デモ版でご確認ください。
細かな違いはありますが、DMAP の使用手順に関しての変更はありませんので、今後、Nastran を使用する方、Nastran を使用しており、構造／熱解析の機能確認、修正、追加を行いたい方など、この機会に挑戦していただければと思います。

筆者紹介

続きは Web で
日本計算工学会誌「計算工学（Vol.24, No.3）」HP:
http://www.jsces.org/activity/journal/

くわばら まさはる（株）計算力学研究センター所属。Femap with NX
Nastran の SE と し て20年 勤 務。 受 託 解 析、 製 品 サポートを担当。

（30）

計算工学

チュートリアル2

Femap with NX Nastran – DMAP 入門（1）Nastran インプットファイル

多 く の FEM プ ロ グ ラ ム は、 そ れ ぞ れ 指 定 さ れ た
フォーマットのインプットファイルを作成し、解析を実行します。Nastran も同様に、拡張子 NAS,DAT などの テ キ ス ト 形 式 の イ ン プ ッ ト フ ァ イ ル を 作 成 し、Nastran に読み込ませることにより解析を実施します。
DMAP に よ るカス タマ イズは、Nastran の イ ン プ ット
ファイルにテキストを入力することにより実行します。
今回は Nastran を余り使用したことの無い方も考慮して、DMAP でのカスタマイズの説明前に、Nastran のイ
ンプットファイルの簡単な説明を行います。実際にDMAP でのカスタマイズを行う際には、DMAP のカスタマイズを有効に活用するため、Nastran のインプットファイルを書き換える場合があります。
Nastran のインプットファイルは、全体として以下のような構造となります。
表1

るため、解析時のファイルが特別大きくなる場合を除いて、操作する必要はありません。但し、DMAP で行列の保存を行う場合などは、ここに保存するファイルをしてする必要があります。
「プレビュー」で表示した入力データでは、以下の部分に該当します。
INIT MASTER(S)NASTRAN SYSTEM(442)=-1,SYSTEM(319)=1
2.3 実行制御
ここで一番重要な設定は、解析のタイプ（SOL 番号）の指定になります。SOL 番号は、一例として、以下のタイプが存在します。
表2

Nastran インプットファイル概略

内容
ファイル制御／オプション定義
実行制御
ケースコントロール
バルクデータ
今 回 は、 プ リ ポ ス ト に Femap を 使 用 し て い る 前 提で、簡単な説明を行います。
2.1 Femap での設定方法
Femap では、［モデル］−［解析］コマンドを選択し、表示される「解析セットマネージャ」で設定を行います。今回は、［新規］ボタンを押し、表示される「解析セット」ダイアログの［解析タイプ］から、“1.. 静解析”を選択して［OK］を押します。

SOL 番号（一例）

SOL 番号101
103
109/112
106

解析タイプ
線形静解析
固有値解析
線形過渡解析
非線形静解析

SOL 番号は、プリポスト側で選択した解析タイプが設定されるため、通常の解析を選択する際には意識する必要はありません。
但し、一般的に選択されることがない SOL 番号を使用場合には、カード書き換えを行う必要があります。
後ほどの DMAP の使用説明では、古いバージョンのSOL 番号1と、DMAP でカスタマイズする際の便利なSOL 番号の100を使用します。
また、終了行に “CEND” と記載します。
「プレビュー」で表示した入力データでは、以下の部分に該当します。
ID Femap,Femap
SOL SESTATIC
CEND
2.4 ケースコントロール
解析で使用する荷重／拘束条件の選択、および解析結果のデータ指定などを行います。
また、複数の条件を解析する、もしくは別の解析タイプを実行してから、解析を実行する（線形静解析→固有値解析）場合のサブケースなどもここで定義します。

図1

Femap 解析条件の設定

設定が完了したら、［プレビュー］ボタンを押すことにより、Nastran の入力データを表示できます。
2.2 ファイル制御／オプション定義
最初の行から記載する部分で、解析時の一時保存ファイルの設定や、解析時の細かなオプションを設定します。プリポストでは、デフォルトの設定が存在す
計算工学

2.5 バルクデータ
解析モデルのデータを入力します。座標系、ノード、エレメント、マテリアル、プロパティ、荷重／拘束の設定、関数などが該当します。
また、解析条件の細かな設定（時刻暦の設定）も個々に入力します。
DMAP は、実行制御の後に記載し、CEND の前の行までに記載します。
2.6 解析の実行
Nastran のインプットファイルを作成した後、Nastran（30-2）

Vol.24, No.3 2019

チュートリアル

スマートフォンアプリ開発入門 - iOS vs. Android (1)チュートリアルでの解析は、一般的には、コマンドプロンプトから、以下のように記述して解析を実行します。
での解析は、一般的には、コマンドプロンプトから、Nastran.exe“Nastran インプットファイル名”
以下のように記述して解析を実行します。
例）インプットファイル名がaaa.dat の場合、Nastran.exe“Nastranインプットファイル名”
nastran.exe aaa.dat
例）インプットファイル名が aaa.dat の場合、で実行します。
nastran.exe aaa.datで実行します。
３ DIAG
14 について3-1. DIAG14 の使用方法
3 DIAG
14についてDMAP
でプログラムのカスタマイズを行うためには、
3.1 DIAG14の使用方法
実際にどのようなプログラムが実行されているかを確
DMAP でプログラムのカスタマイズを行うためには、認する必要があります。各 SOL 番号でのプログラムを実際にどのようなプログラムが実行されているかを確
具体的に確認するためには、”DIAG 14”を使用します。
認する必要があります。各 SOL 番号でのプログラムを具体的に確認するためには、“DIAG 14” を使用します。
例 1）Nastran インプットファイル
INIT MASTER(S)例1）Nastran インプットファイル
SOL 101
INIT MASTER(S)CEND
SOL 101DISPLACEMENT(PLOT)
= ALL
CEND
SPC =DISPLACEMENT(PLOT)
1= ALLLOAD= 1= 1SPC
BEGIN LOAD
BULK= 1PARAM,POST,-1
BEGIN BULKFORCE,1,2,0,1.,0.,0.,-.5
PARAM,POST,-1
FORCE,1,4,0,1.,0.,0.,-.5
FORCE,1,2,0,1.,0.,0.,-.5
SPC1,1,123456,1
FORCE,1,4,0,1.,0.,0.,-.5
SPC1,1,123456,3
SPC1,1,123456,1
PSHELL
,1,1,1.,1,,1,,0.
SPC1,1,123456,3
PSHELL ,1,1,1.,1,,1,,0.
MAT1,1,210000.,.3,0.,0.,0.
MAT1,1,210000.,.3,0.,0.,0.
GRID,1,0,0.,0.,0.,0
GRID,1,0,0.,0.,0.,0
GRID,2,0,10.,0.,0.,0
GRID,2,0,10.,0.,0.,0
GRID,3,0,0.,10.,0.,0
GRID,3,0,0.,10.,0.,0
GRID,4,0,10.,10.,0.,0
GRID,4,0,10.,10.,0.,0
CQUAD4,1,1,1,2,4,3
CQUAD4,1,1,1,2,4,3
ENDDATAENDDATAFemap with NX Nastran – DMAP 入門（1）
厚さ 1[mm]、10×10[mm]、端部完全拘束、開放端にそれぞれ 0.5[N]設定した解析モデルになります。
厚さ1[mm]、10×10[mm]、端部完全拘束、開放端に先ほどのインプットファイルの”SOL101”の前の行それぞれ0.5[N]設定した解析モデルになります。に、”DIAG14”を入力してから、Nastranで解析を実行
先ほどのインプットファイルの“SOL101”の前の行します。に、“DIAG14”を入力してから、Nastranで解析を実行
SOL 101します。
DIAG 14 ← この行に追加
SOL 101
CEND
DIAG 14 ← この行に追加
上記を実行すると、F06
ファイルに、SOL101 での解析
CENDプログラムが出力されます。
上記を実行すると、F06ファイルに、SOL101での解析
Femap
では、「NASTRAN 実行およびソリューションオ
プログラムが出力されます。
プション」ダイアログの[診断]に、”14”を入力します。
Femap では、「NASTRAN 実行およびソリューションオプション」ダイアログの［診断］に、“14” を入力します。
図 3 Femap での DIAG 14 の設定

図3

Femap での DIAG 14の設定

図4

DIAG14での F06一部抜粋

3-2. 解析プログラムの内容に関してF06 ファイルを開くと、以下のようにプログラムが3.2
解析プログラムの内容に関して記載されています。
F06ファイルを開くと、以下のようにプログラムが記
図 4 DIAG14 での F06 一部抜粋
載されています。

上記は、線形静解析の Nastran 実行ファイルです。
（紙
上記は、線形静解析のNastran実行ファイルです。
（紙面の関係上、カンマセパレートで記載してあります。
）
面の関係上、カンマセパレートで記載してあります。
解析に必要なカードのみにしてありますが、Femap で ）解析に必要なカードのみにしてありますが、Femap でモモデルを作成した場合、以下の形状になります。
デルを作成した場合、以下の形状になります。
図 2 インプットファイル解析モデル

図2
計算工学
計算工学

インプットファイル解析モデル

Nastran のプログラムは、SUBDMAP というクラス単
位 でNastran
プ ロ のプログラムは、SUBDMAP
グ ラ ム が 実 行 さ れ ま すというクラス単。上図では、
SUBDMAP=ADDSUMという部分になります。
位 で プ ロ グ ラ ム が 実 行 さ れ ま す。 上 図 で は、基本的には、メインとなるSUBDMAP が実行され、SUBDMAP=ADDSUMという部分になります。
CALLにより、他のSUBDMAPが呼び出されて解析処
基本的には、メインとなる SUBDMAPが実行され、理が行われます。
CALL により、他の SUBDMAP が呼び出されて解析処
また、プログラムは行ごとに記載され、”NO.”の列理が行われます。に記載されている数字が、プログラムの記載されていまた、プログラムは行ごとに記載され、“NO.” の列にる行数になります。
記載されている数字が、プログラムの記載されている行数になります。
（30-3）(??-3)

Vol.24,No.3
2019
Vol.16,No.4
2011

にプログラムが実行されたかを確認することが出来ます。
図 5 F04 一部抜粋

以下の行が追加されます。
^^^TEST_DMAP

4-2. メッセージプログラムの内容
Femap with NX Nastran – DMAP 入門（1）
今回のプログラムですが、それぞれ以下の意味となります。
3.3 解析プログラムの実行順序に関して解析を実行すると、F06に、通常の解析内容のほかCOMPILE “SUBDMAP 名”
解析で作成された F04ファイルを開くと、どのようにに、以下の行が追加されます。
COMPILE で、DMAP を実行する SUBDMAP の位置をプログラムが実行されたかを確認することが出来ます。
^^^TEST_DMAP
上図のうち、確認するべきは、” SubDMAP”、” Line”、”指定します。
4.2 今回は、SESTATIC
メッセージプログラムの内容(S)SubDMAP/Module”になります。の SUBDMAP を指定しています。
今回のプログラムですが、それぞれ以下の意味とな
たとえば、以下の行
ALTER “DMAP の入力行数”
ります。
ALTER で、SUBDMAP のどの行で DMAP を実行する
SESTATIC56(S)IFPLBEGNCOMPILE “SUBDMAP 名”に関しては 、『 ”SUBDMAP=SESTATIC”の、56行目
かを指定します。
図5 F04一部抜粋
COMPILE で、DMAP を実行する SUBDMAP の位置をで、”SUBDMAP=IFPL”を呼び出す(CALL）したという 指定します。
指定した行数の、次の行で、DMAP が実行されます。
ことになります。
MESSAGE //’表示内容’/$
今回は、SESTATICの SUBDMAP を指定しています。
上図のうち、確認するべきは、“SubDMAP”、“Line”、ALTER“DMAPの入力行数”“(S)SubDMAP/Module”になります。
従って、DMAPでカスタマイズを行う際には、上記で、メッセージを F06 に記載します。
ALTER
で、SUBDMAP のどの行で DMAP を実行する
たとえば、以下の行・目的の SOL 番号の DIAG14 を実行
また、変数の内容などを記載したい場合には、かを指定します。
SESTATIC56 (S)IFPL BEGN↓MESSAGE //’表示内容’/”変数名”/$
指定した行数の、次の行で、DMAP が実行されます。に 関 し て は、『“SUBDMAP=SESTATIC” の、56行 目
・F04 でプログラムの実行手順確認と記載します。
MESSAGE //ʼ 表示内容ʼ /$で、“SUBDMAP=IFPL” を呼び出す（CALL）したという↓
上記で、メッセージを F06に記載します。
ことになります。
・F06 でプログラムの詳細確認例 3）例 1 にメッセージの DMAP を記載する
また、変数の内容などを記載したい場合には、従って、DMAPでカスタマイズを行う際には、を行い、どの部分のカスタマイズを行うかを確認す
SOL101//ʼ 表示内容ʼ /” 変数名” /$MESSAGE・目的の SOL 番号の DIAG14を実行と記載します。
↓る必要があります。
COMPILE SESTATIC
・F04でプログラムの実行手順確認
ALTER 20
例3）例1にメッセージの DMAP を記載する↓
４ DMAP でメッセージ表示
MESSAGE //’MAXRATIO = ’/MAXRATIO $SOL101
・F06でプログラムの詳細確認
4-1. メッセージプログラム
CEND
COMPILE SESTATICを行い、どの部分のカスタマイズを行うかを確認す
まず、基本となる
DMAPの使用方法として、F06
ファALTER 20
る必要があります。
イルにメッセージを表示してみます。
上記を実行すると、以下のようにメッセージが表示さ
MESSAGE//ʼ MAXRATIO = ʼ /MAXRATIO $DMAPの前の行に記載しますので、例 1） CENDれます。
4 は、CEND
DMAP でメッセージ表示
4.1 メッセージプログラムの ”SOL101”と ”CEND” の 間 の 行 に 、 以 下 の よ う に^^^MAXRATIO =1.000000E+07
上記を実行すると、以下のようにメッセージが表示ず、 基 本 と な る DMAP の 使 用 方 法 と し て、F06
DMAP まを記入します。
“1.000000E+07”が、MAXRATIO 内の実数値です。
チュートリアルされます。
ファイルにメッセージを表示してみます。
^^^MAXRATIO = 1.000000E+07
DMAP は、CEND の前の行に記載しますので、例1）
例 2）例 1 にメッセージの DMAP を記載する
5 DMAP でデータ表示“1.000000E+07” が、MAXRATIO 内の実数値です。の “SOL101” と “CEND” の 間 の 行 に、 以 下 の よ う に5-1. マトリクス表示
SOL101
DMAP を記入します。

COMPILE SESTATICALTER 1 例2）例1にメッセージの DMAP を記載する
SOL101MESSAGE//’TEST_DMAP’/$COMPILESESTATIC
CEND

ALTER 1MESSAGE //ʼ TEST_DMAPʼ /$上記の太文字部分を、例 1 の内容に追加します。
CEND

先ほどは、メッセージおよび単体の変数を表示しまし
DMAPでデータ表示
次にマトリクスデータを F06 に表示してみます。
5.1 たが、マトリクス表示
5

先ほどは、メッセージおよび単体の変数を表示しまし
たが、次にマトリクスデータをF06に表示してみます。
例 4）例 1 にマトリクス表示のDMAP を記載する

SOL101
例4）例1にマトリクス表示の DMAP を記載する
COMPILE SESTATICSOL101
Femap では、「NASTRAN 実行およびソリューションオ COMPILEALTERSESTATIC
138
プション」
ダイアログの[終了文/DMAP]ボタンを押し、ALTER
138
MATPRT KJJ/$
上記の太文字部分を、例1の内容に追加します。
MATPRT表示されるテキスト部分に、上記の赤文字を入力しま
Femap では、「NASTRAN 実行およびソリューション
CENDKJJ/$
CEND
オプション」
ダイアログの［終了文／DMAP］ボタンをす。
押し、表示されるテキスト部分に、上記の赤文字を入図 6 Femap での DMAP 設定
上記を記載して、実行すると、以下のように F06 に行上記を記載して、実行すると、以下のように F06に力します。
列の内容が記載されます。
行列の内容が記載されます。

図6

計算工学

計算工学

Femap での DMAP 設定

図7(??-4)（30-4）

剛性マトリクス一部抜粋

Vol.16, No.4 2011

Vol.24, No.3 2019

チュートリアル

Femap with NX Nastran – DMAP 入門（1）記載内容ですが、COLUMN（列）ごとに記載されているため、行列としては、以下のようになります。
例5）マトリクスデータの読み方
F06の内容：COLUMN 1
1 1.0 2.0 3.0 4.0
4
COLUMN 2
1 5.0 6.0 7.0 8.04
行列：となります。
5.2 テーブルデータ表示
マトリクスではなく、ある決められたフォーマットのデータを保存する場合のデータ形式として、テーブルデータというデータが存在します。
今度はテーブルデータを表示してみます。
例6）例1にテーブルデータ表示の DMAP を記載する
SOL101COMPILE SESTATICALTER 56TABPT BULK/$CEND

例6）テーブルデータの読み方
0RECORD NO. 0
1) BULK DATA 0END OF
3 WORD RECORD.
0RECORD NO. 1
1) CORD 2C 1 00.
0.
11) 0. 0. 0. 1. +FEM APC1END OF20 WORD RECORD.
上記データの場合、RECORD NO. 0にヘッダーが記載され、“BULKDATA0” と記載されます。
この情報は、3WORD からなり、1WORD は4バイトから構成されます。
RECORD NO. 1は、円筒座標系の内容を記載しており、20WORD 使用しています。
BULK デ ー タ は、BEGIN BULK か ら ENDDATA ま での、解析に必要な情報を取得しています。
このデータや、ケースコントロールのデータを元に、マトリクスデータを作成します。

6

データの種類

単一の変数以外では、DMAP ではマトリクスデータとテーブルデータを使用できます。
但し、テーブルデータは、主に- 入力データの保存- マトリクスを生成する前のデータ保存- 出力データのフォーマット等に使用され、直接計算に用いられることはありません。
そのため、目的のカスタマイズを簡便に行うためには、・目的となる計算に近い SOL 番号を選択↓
・必要となるマトリクスデータの確認↓・計算したデータを、元のデータと入れ替える

上記を記載して、実行すると、以下のように F06にデータの内容が記載されます。

を行い、なるべくテーブルデータでは改変せず、マトリクスデータを修正／変更するようにプログラムすることをお勧めします。

図8

BULK テーブルデータ一部抜粋

テ ー ブ ル デ ー タ は、 マ ト リ ク ス と は 異 な り、“RECORD” と “WORD” と い う デ ー タ の 切 り 分 け で、フォーマットが作成されます。

計算工学

ここまでで、NASTRAN の各種データを確認することが出来るようになりました。
次回は DMAP の各種関数を使用して、確認したデータの修正／編集／計算を説明します。

（30-5）

Vol.24, No.3 2019