« 超弾性材料の検証 | トップページ | 追従荷重(Follower force) »

2012年6月23日 (土)

結果出力の間隔設定

非線形解析は、数多くのステップ(インクリメント)にて、変位や荷重を小刻みに変化させて解析を進めます。しかし、全てのステップにおける結果が必要になるわけではありません。結果出力を数ステップ毎にすれば、結果ファイルのサイズが小さくなり、ディスクスペースが節約できます。

前回のゴム材料の引っ張り解析では、Time=0~1の間を50分割(50ステップ)で計算しており、デフォルトではその全てのステップにおける結果が出力されていました。
今回、これを5ステップ毎(つまり全体で10分割)にして、結果ファイルのサイズ低減を図ってみました。

ソフトウェアは、DEXCS2011-Salome-A3(64)(SALOME6.3 + Code_Aster STA10.5)の利用です。

その方法ですが、まず計算ステップの設定と同様に「DEFI_LIST_REEL」で出力間隔を定義します。今回は、"output"という名前で新しくDEFI_LIST_REELを作成し、DEBUT(開始時間)を"0"、JUSQU A(終了時間)を"1"、NOMBRE(分割数)を"10"としました。これで、time=0~10の間を10分割して出力してくれます。

Hype01b1

次に、「IMPR_RESU」-「RESU」の設定で、各RESU(ここではRESU_1~RESU_6)の全てについて、「b_extrac」の下に「LIST_INST」を追加します。そのパラメータとして先ほど作成した「output」を指定します。

Hype01b2


これで終了です。
計算してParaVISのObject Inspector(Informationタブ)で見ると、確かに10等分で出力されています。

Hype01b3

ファイルサイズも、前回の50ステップ全部出力では約5.5MBでしたが、今回の5ステップ毎出力では約1.1MBと、5分の1になりました。

なお、DEBUT, JUSQU A, NOMBREの値を変えることで、結果出力する時間の範囲を自由に指定できます。例えばtime=0~1で実行される解析の最後の方だけを細かく見たい場合、DEBUTの値を0.9などの値にすれば良いです。ただし、出力される間隔と計算される間隔は同期していないといけないようです。つまり、出力される時間ポイントにおいては、計算も必ず行われる必要があるということです(これがズレていると、結果がちゃんと書き出されないようです)。

それから、上記の「RESU」-「b_extrac」の下の"LIST_INST"の設定ですが、ここを"INST"にすると、出力する時間ポイントを直接指定できます(出力時間指定は、カンマ区切りで指定します)。
この場合、「DEFI_LIST_REEL」の作成は不要ですので、出力したい時間ポイントが限られている場合、こちらのほうが一見手軽のように思えます。
しかし、出力時間ポイントの変更などを行う場合、RESUの出力項目数が多いと、それらについて全て打ち変えていく必要があるので面倒です。DEFI_LIST_RELLを一箇所変えるだけのほうが楽なように思えます。

これらの設定については、Code_asterのマニュアル「U4.71.00」(4.3.5節)にて説明されています。

今回のcommファイルとmmedファイルは下記です。

hype01b.zip

« 超弾性材料の検証 | トップページ | 追従荷重(Follower force) »

ポスト処理」カテゴリの記事

コメント

検証お疲れ様です。
出力間隔は、STAT_NON_LINE > ARCHIVAGE でも設定可能ですよ。

ただし、データのディスク上への保存そのものがされないので、指定されなかった時刻のデータを見るには再計算が必要になりますが。

IMPR_RESUは、出力するフィールドデータ毎に一つ一つ指定しなくても良いです。
FORMAT、UNITE、RESULTATだけを指定すれば、持っているフィールドデータ全てを出力してくれます。


下にSTAT_NON_LINE以降のコマンドを書きました。、スペースが勝手に削除されて見にくいですが。

RESU=STAT_NON_LINE(MODELE=MODE,
CHAM_MATER=MATE,
EXCIT=(_F(CHARGE=CHAR,),
_F(CHARGE=chr_no,
FONC_MULT=depl_imp,),),
COMP_INCR=_F(RELATION='ELAS_HYPER',
DEFORMATION='GROT_GDEP',),
INCREMENT=_F(LIST_INST=pas,),
CONVERGENCE=_F(RESI_GLOB_RELA=0.05,
ITER_GLOB_MAXI=300,),
ARCHIVAGE=_F(LIST_INST=output,),);

RESU=CALC_ELEM(reuse =RESU,
MODELE=MODE,
CHAM_MATER=MATE,
RESULTAT=RESU,
OPTION=('SIEF_ELNO','SIEQ_ELNO','EPSI_ELNO','EPEQ_ELNO',),);

RESU=CALC_NO(reuse =RESU,
RESULTAT=RESU,
OPTION=('SIGM_NOEU','SIEQ_NOEU','EPSI_NOEU','SIEF_NOEU','EPEQ_NOEU','FORC_NODA','REAC_NODA',),);

IMPR_RESU(FORMAT='MED',
UNITE=80,
RESU=_F(RESULTAT=RESU,),);

MAEDAさん、こんにちは。
いつも色々とご教示ありがとうございます。

非線形解析を色々と試す前に、まずはデフォルトでかなり大量になってしまうデータ出力を何とかしないといけないと思い、自己流でやってみましたが、やはりもっとスマートな方法があるんですね。勉強になります。

添付していただきましたデータで、このあたりの出力コントロールについて演習してみて、またご報告します。
どうもありがとうございました。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1605696/45787111

この記事へのトラックバック一覧です: 結果出力の間隔設定:

« 超弾性材料の検証 | トップページ | 追従荷重(Follower force) »