接触・MPCで作られる内部パッチ要素の結果出力を除外する
接触・MPC制約がある場合に内部で800番台のパッチ要素が生成され,結果出力に含まれるが,これを結果出力から除外したいです. 現状,以下の問題が発生しており,これを解決したいためです:
- ファイルサイズの肥大化
- mshに存在しない要素がresultに含まれることによる外部ツールへの影響
除外する場合は以下の2か所のみ修正すればよいです(参考コミット!262 (f526993a))
-
hecmw1/src/common/hecmw_result_f.f90
でpatch要素の出力をスキップ -
hecmw1/tools/result_file_merger/fstr_rmerge_util.c
:rmergeで分散メッシュを読み込む際に,patch要素をスキップする必要がある- patch要素の判別は
hecmw_is_etype_patch
で行う(タイプ番号ベタ打ちはしない)
- patch要素の判別は
除外した場合に発生しうる問題・現状のコミットの課題としては,以下があるように思います(他にもあるかもしれません):
- patch要素で物理量出力をしたい場合に困る(接触・MPC反力など)→節点出力で代替可能では
- コードが複雑になる(FrontISTR側でパッチ要素の出力を制御している・ミドルウェアのresult出力はメッシュ構造に関知しないので,そちらにも手を入れにくい)
patch要素出力スキップの是非,よりより方法などについて議論の上,上記問題の解決を図りたく,ご検討のほどよろしくお願い致します.