コンテンツにスキップ

出力・リスタート

解析結果は、そのままではメモリ上に存在するため、後処理や可視化、復元・再開のためには適切なファイルとして出力する必要がある。それぞれの用途に応じたファイルフォーマット・出力項目・出力頻度が異なるため、FrontISTR では複数の出力系統を使い分ける.

FrontISTR の出力は,解析値を保存する結果ファイル(!WRITE,RESULT),可視化に用いる可視化ファイル(!WRITE,VISUAL),解析状態を保存するリスタートファイル(!RESTART)の 3 系統で構成される.結果ファイルと可視化ファイルに含める物理量は,それぞれ !OUTPUT_RES!OUTPUT_VIS で選択する.

機能の全体像

出力設定は,次の 3 つの軸を分けて考えると整理しやすい.

主な入力 役割
出力先 !WRITE,RESULT!WRITE,VISUAL!RESTART 結果をどの用途のファイルとして保存するかを決める.
出力変数 !OUTPUT_RES!OUTPUT_VIS 結果ファイルまたは可視化ファイルに含める物理量を決める.
出力頻度 FREQUENCY 何ステップごとにファイルへ書き出すかを決める.

!WRITE,RESULT は結果ファイルを有効化し,!OUTPUT_RES で出力変数を指定する.!WRITE,VISUAL は可視化ファイルを有効化し,!OUTPUT_VIS で可視化に渡す変数を指定する.いずれも FREQUENCY により出力間隔を制御できる.!WRITE は単一カードであり,RESULT / VISUAL / FEMAP は出力先を選ぶパラメータとして同居できる.

!OUTPUT_RES!OUTPUT_VIS のデータ行には,出力変数名と ON / OFF を列挙する.GROUP を指定すると,出力対象をグループ単位に限定できる.具体的な入力書式と指定可能なデータ行は,キーワードリファレンスを参照する.

!RESTART は結果ファイルや可視化ファイルとは別に,解析状態そのものを保存する.リスタートファイルは,解析を中断した後で同じ状態から再開するために用いる.

出力の選び方

出力は,まず確認したい目的から選ぶ.数値値を後処理や別解析で使う場合は結果ファイルを選び,形状や分布を可視化ツールで確認する場合は可視化ファイルを選ぶ.解析を途中から再開する必要がある場合は,通常の結果出力とは別にリスタートファイルを有効にする.

目的 選ぶ出力 主な指定
解析値を保存し,後処理・比較・別解析で利用する 結果ファイル !WRITE,RESULT!OUTPUT_RES
ParaView 等で分布や変形形状を確認する 可視化ファイル !WRITE,VISUAL!OUTPUT_VIS!VISUAL
長時間解析を途中から再開する リスタートファイル !RESTART
出力容量を抑える 必要な変数だけを出力 !OUTPUT_RES / !OUTPUT_VISON / OFFFREQUENCY

大規模解析では,既定出力のまま全ステップを保存すると,結果ファイルと可視化ファイルの容量が大きくなる.必要な物理量だけを ON にし,確認に不要な量を OFF にする.時刻歴を細かく追う必要がない場合は,FREQUENCY を大きくして出力間隔を粗くする.

出力変数は「確認したい物理量」「保存先」「頻度」の順で決めるとよい.たとえば,応力分布を ParaView で確認したい場合は可視化ファイルを有効にし,NSTRESSNMISES!OUTPUT_VIS で選ぶ.接触力を数値として後処理したい場合は結果ファイルを有効にし,CONTACT_NFORCE などを !OUTPUT_RES で選ぶ.

出力可能な物理量

出力変数は,構造解析,動解析,熱解析,接触解析,要素固有の結果,および識別用メタ情報に分けられる.下表は,主な変数名と型,利用する解析種別を整理したものである.変数名の完全な一覧とデータ行の書式は,!OUTPUT_RES!OUTPUT_VIS を参照する.

区分 変数名 主な解析種別 内容
構造解析の基本量 DISPROTREACTION ベクトル 静解析,動解析 変位,回転,節点反力.ROT は回転自由度を持つ要素で有効である.
応力 NSTRESSESTRESSISTRESS 対称テンソル 構造解析 節点平均応力,要素応力,積分点応力.
Mises 応力・主応力 NMISESEMISESPRINC_NSTRESSPRINC_ESTRESSPRINCV_NSTRESSPRINCV_ESTRESS スカラ,ベクトル 構造解析 Mises 応力,主応力値,主応力方向.
ひずみ NSTRAINESTRAINISTRAIN 対称テンソル 構造解析 節点ひずみ,要素ひずみ,積分点ひずみ.
塑性・熱ひずみ PL_ISTRAINPL_ESTRAINTH_NSTRAINTH_ESTRAINTH_ISTRAIN スカラ,対称テンソル 非線形構造解析,熱応力解析 相当塑性ひずみ,熱ひずみ.
主ひずみ PRINC_NSTRAINPRINC_ESTRAINPRINCV_NSTRAINPRINCV_ESTRAIN スカラ,ベクトル 構造解析 主ひずみ値,主ひずみ方向.
動解析 VELACC ベクトル 動解析 節点速度,節点加速度.
熱解析 TEMP スカラ 熱伝導解析 節点温度.熱解析の結果ファイル・可視化ファイルでは温度場として出力される.
接触 CONTACT_NFORCECONTACT_FRICTIONCONTACT_RELVELCONTACT_STATECONTACT_NTRACTIONCONTACT_FTRACTION ベクトル,スカラ 接触解析 接触法線力,摩擦力,相対すべり速度,接触状態,単位面積あたりの接触力.
梁要素 BEAM_NQM 12 成分値 梁要素を含む構造解析 梁要素の断面内力.
識別・状態 NODE_IDELEM_IDSECTION_IDMATERIAL_IDELEMACTYIELD_RATIO スカラ 構造解析,可視化 節点・要素・セクション・材料の識別情報,要素活性化状態,降伏比.ELEMACT は有効な要素で 1,無効(非活性化)な要素で 0 を出力する.
シェル補助情報 SHELL_LAYERSHELL_SURFACE スカラ シェル要素を含む構造解析 シェル層別出力およびシェル表面を識別する補助情報.

既定では,DISPROTNSTRESSNMISESON である.ただし,実際に意味のある値が出力されるかどうかは解析種別,要素種別,材料モデル,接触設定に依存する.たとえば,VELACC は動解析で用い,CONTACT_* は接触解析で接触情報が生成される場合に用いる.

シェル層別出力

シェル要素では,厚さ方向に複数の積分点または層を持つため,同じ要素内でも層や表面によって応力・ひずみの値が異なる.通常の節点平均値や要素値だけでは,どの層・どの面の値かを区別しにくい.

SHELL_LAYERON にすると,積層シェルの各層について,+ 側と - 側の結果を区別して出力する.出力される応力・ひずみ成分には,層番号と面側を表す識別が付くため,厚さ方向の応力分布や層ごとの損傷評価に利用できる.

SHELL_SURFACE は,シェルの上面/下面などの表面を識別するための補助情報である.シェル層別の結果を可視化する場合は,SHELL_LAYER と必要な応力・ひずみ変数を有効にし,可視化ツール側で対象の層または表面に対応する結果成分を選択する.

シェル層別出力は出力成分数を増やすため,積層数が多いモデルではファイル容量が増える.必要な応力・ひずみ変数に絞って出力することが望ましい.

出力先

結果ファイルと可視化ファイルは,用途と保存形式が異なる.同じ解析で両方を出力することも,一方だけを出力することもできる.

結果ファイル

結果ファイルは,!WRITE,RESULT で有効にする.解析結果を FrontISTR / HEC-MW の結果データとして保存し,数値後処理や別解析での読込に利用する.出力する変数は !OUTPUT_RES で選ぶ.

!WRITE,RESULT!WRITE カードに対する RESULT パラメータとして実装されており,可視化や FEMAP 出力と並ぶ出力先選択肢である.

結果ファイルには,構造解析では変位,応力,ひずみ,反力,接触情報などを,熱解析では温度場を保存できる.ステップごとの出力間隔は FREQUENCY で指定する.具体的なファイル名,配置,実行後の確認方法は実行ガイドを参照する.

結果ファイル(拡張子 .res)は,次の構成を持つテキストデータである.先頭にフォーマットバージョンとコメント,続いてグローバル変数,最後に節点・要素ごとの出力変数を並べる.

*fstrresult 2.0
*comment
<コメント行>
*global
<グローバル変数の個数>
<グローバル変数の自由度>
<グローバル変数の名前>
<グローバル変数の値>
...
*data
<節点数> <要素数>
<節点データの個数> <要素データの個数>
<節点データの自由度> ...
<節点データの名前>
...
<節点データの値>
...
<要素データの自由度> ...
<要素データの名前>
...
<要素データの値>
...

ログファイル

ログファイル(拡張子 .log)は,解析後に常に出力される要約ファイルである.節点・要素ごとの物理量に加えて,変位・ひずみ・応力成分の最大/最小値が出力される.固有値解析では固有値と固有ベクトルの値が出力される.!WRITELOG パラメータで出力内容を制御できる.ファイル名と配置は実行ガイドを参照する.

可視化ファイル

可視化ファイルは,!WRITE,VISUAL で有効にする.メッシュと結果データを可視化ツール向けの形式に変換して出力する.出力する変数は !OUTPUT_VIS で選び,形式や可視化条件は !VISUAL で指定する.

!WRITE,VISUAL は単独のキーワードではなく,!WRITE カードに対する VISUAL パラメータとして実装されており,!WRITE,RESULT / !WRITE,FEMAP と同列で出力先を切り替える(fistr1/src/common/fstr_ctrl_common.f90fstr_ctrl_get_WRITE).

可視化を有効化するには,!VISUAL カードで可視化サーフェスと出力形式を最低限指定する必要がある.以下が最小データセットである.

!WRITE,VISUAL
!VISUAL,method=PSR
!surface_num=1
!surface 1
!output_type=VTK

surface_num!surface の指定は省略不可である.詳細な書式と利用可能なオプションは !VISUAL を参照する.

主な可視化フォーマットは次のとおりである.

フォーマット 用途
VTK ParaView 等での可視化に用いる.
AVS(UCD) AVS / UCD 形式の可視化・データ交換に用いる.
BMP 可視化結果を画像として出力する.
NEU FEMAP neutral 形式のデータ交換に用いる.

可視化ファイルは,結果ファイルよりも可視化ツールで直接扱いやすい一方,選択したフォーマットや変数数によって容量が増える.大規模モデルでは,表示に必要な変数だけを !OUTPUT_VIS で有効にする.

リスタート

リスタートは,解析中断時点の内部状態を保存し,次回実行時に同じ状態から計算を再開するための機能である.通常の結果ファイルは後処理のための出力であるのに対し,リスタートファイルはソルバが計算を継続するための状態保存である.

!RESTART, FREQUENCY=nn が正の場合は,指定したステップ間隔でリスタートファイルを書き出す.n が負の場合は,実行開始時に既存のリスタートファイルを読み込み,その後は絶対値 |n| を書出間隔としてリスタートファイルを書き出す.

構造解析のリスタートでは,現在ステップ,サブステップ,通算ステップ,時刻,時間増分,荷重履歴,変位,外力,ガウス点ごとの応力・ひずみ,材料の内部状態変数,接触状態などを保存する.動解析では,変位に加えて速度・加速度,ひずみエネルギー,現在時刻,時間増分など,時間積分の再開に必要な動的状態も保存する.熱解析では,ステップ番号,時刻,温度場を保存し,読込時には温度場を初期状態として復元する.

静解析リスタートの書出タイミングと再開挙動

静解析(fstr_solve_NLGEOM)のリスタートには,書出経路が 2 つあり,再開時の挙動が異なる.

  • サブステップ途中での書出:サブステップループ内で step_countFREQUENCY の倍数となったタイミングで書き出される.記録される時刻情報は「現ステップの開始時刻」として保存され,前ステップ分の荷重リストが付随する.
  • ステップ終端での書出:各ロードステップのサブステップループが完了した直後に,FREQUENCY の倍数か否かに関わらず常に書き出される.記録される時刻情報は「ステップ終了時刻」として保存され,当該ステップ分の荷重リストが付随する.

読込時,FrontISTR は記録された「現在時刻」と「基準時刻」が一致するかどうかでステップ完了状態を判定する(fstr_Restart.f90fstr_read_restart).

書出時の状態 再開時の挙動
サブステップ途中 同じステップの次サブステップから継続する.書出時点でのサブステップ位置を引き継ぎ,残りのサブステップループを実行する.
ステップ終端 次ステップの先頭サブステップから開始する.cstep を 1 つ進め,substep=1 にリセットしたうえで以後の解析を行う.

このため,同じ FREQUENCY 設定でも,書出が起きたタイミング(サブステップ途中/ステップ終端)によって再開後のステップ番号と時刻基準が変わる点に注意する.特に,ステップ終端の書出は FREQUENCY 設定と独立に毎ステップ末尾で必ず行われる.

動解析リスタートの書出タイミングと再開挙動

時刻歴動解析のリスタートも,サブステップ途中の書出とステップ終端の書出を区別する.サブステップ途中では通算サブステップ数 step_countFREQUENCY の倍数になった時点で書き出され,ステップ終端では FREQUENCY に関わらずそのステップの最後に書き出される.

読込時は,保存されたステップ番号,サブステップ番号,通算サブステップ数から再開位置を復元する.現行形式(restart_version >= 5)では静解析と共通のヘッダを用い,現在時刻,時間増分,Newton 反復統計,自動増分状態を保存する.これにより,複数 !STEP と自動増分・カットバックを使う動解析でも,再開後の時間基準と時間増分を引き継げる.旧形式の動解析リスタートファイルも一部読込互換性を持つが,新規解析では現行形式を使用する.

リスタート時の !STEP カードの書き方

リスタート再開時,FrontISTR は cnt ファイル内の !STEP カードを「再開後に実行するステップ列」として読み,常に先頭(tot_step=1)から順に処理する.読み込まれたリスタート情報のステップ番号は,画面表示の通算ステップ番号合わせに用いられ,cnt の !STEP インデックス自体には影響しない.加えて,現行形式では cnt の各 !STEPstarttime は,リスタート読込時に基準時刻分が一括加算され,再開時刻を基点としたタイムラインに揃えられる.

したがって,リスタート再開用の cnt は次の方針で用意する.

中断のされ方 cnt に残す !STEP の範囲
サブステップ途中で書出(ステップ未完了) 中断したステップを 先頭に残す.以降の未実行ステップを続けて並べる.
ステップ終端で書出(ステップ完了) 完了済みステップは 削除し,次に実行するステップから先頭に並べる.

いずれの場合も,既に完了したステップは cnt から削除するのが原則である.starttime はリスタート時刻が自動加算されるため,cnt 側では 0 起点(または相対的なステップ開始時刻)で書いておけばよい.境界条件・荷重などの参照は,残した !STEP カードに対応する分だけを cnt に保持する.この方針は,複数 !STEP を使う動解析リスタートでも同じである.

リスタートを用いる典型的な流れは次のとおりである.

  1. 初回実行で !RESTART, FREQUENCY=n を指定し,リスタートファイルを書き出す.
  2. 解析を再開する実行では !RESTART, FREQUENCY=-n を指定する.
  3. FrontISTR は起動時にリスタートファイルを読み込み,以後は n ステップごとに新しい状態を書き出す.

リスタートファイルの命名,配置,実行時の指定方法は,実行ガイドを参照する.旧版フォーマットの読込にも一部互換性があるが,新規解析では現行版の形式を使用する.

関連項目

  • 逐次実行 — 解析実行時のファイル配置と出力確認の基本.
  • !OUTPUT_RES!OUTPUT_VIS — 結果ファイル・可視化ファイルへ出力する変数の指定.
  • !WRITE — 結果ファイル・可視化ファイル・ログの出力有効化と出力頻度(RESULT / VISUAL / LOG / FEMAP パラメータ).
  • !VISUAL — 可視化サーフェス・出力形式の指定(最小データセット例を含む).
  • !RESTART — リスタートファイルの読込・書出し指定.
  • 解析種別 — 解析種別ごとの主な結果項目.
  • 接触・埋め込み — 接触出力の意味と接触状態の扱い.
  • ステップ制御 — 出力ステップや時間点との関係.