2026/03/20
可視化ファイルの出力形式としてExodus
IIフォーマットを追加した。NetCDFライブラリを用いて出力を行い、ParaViewなどのポストプロセッサで読み込みが可能である。ビルド時に
WITH_NETCDF=ON を指定することで利用できる。
hecmw_part1パーティショナーの内部で使用する整数型を64bit(size_t,
idx_t)に変更した。これにより、節点・要素の番号や個数が32bit整数の範囲内であっても、内部的な配列サイズが32bit上限を超える大規模モデル(およそ3億メッシュ超)の領域分割が可能になった。METISインターフェース部のデータ型も
idx_t に統一した。
(Issue #733, #63, solver !509)
!ELEMENT ACTIVATION
の入力フォーマットを変更し、制御を排他的な3モード(MODE=FIXED|AMPLITUDE|DAMAGE)に分離した。FIXED
は要素の有効/無効を固定指定、AMPLITUDE
は時刻歴で制御、DAMAGE
は応力/ひずみ閾値による一方向遷移(破壊・損傷向け)を表す。旧フォーマットでは
STATE, DEPENDS, AMP
を同時に指定でき無意味な組み合わせが存在したが、新フォーマットでは排除される。また、応力・ひずみ依存の要素活性化機能が正しく動作しない不具合、およびテストセットの
EPSILON パラメータのスペルミスも修正した。
(Issue #727, solver !522, document !19)
CG法以外の反復法サブルーチン(BiCGSTAB,
GPBiCG等)において、ベクトル演算のdo loopによる直書き部分を
hecmw_solver_misc.f90
のBLAS様サブルーチン(hecmw_axpy_R,
hecmw_xpay_R
等)の呼び出しに置き換えた。これにより、将来のGPU化(OpenACCディレクティブ追加)の際に変更箇所を局所化できる。また、OpenMPディレクティブの修正およびゼロ×NaN積の回避処理も行った。
要素相当塑性ひずみ(PL_ESTRAIN)の要素平均の計算処理を可視化関数内から
fstr_NodalStress3D
関数内に移動した。他の要素平均量(応力・ひずみ等)と同様に
ElementPlstrain_C3
関数で事前計算する構成に変更し、計算処理の整理を行った。
VTKファイル出力において、シミュレーション時刻の出力形式を
TOTALTIME から FieldData TimeValue
に変更した。これにより、ParaViewでVTKファイルを読み込んだ際にシミュレーション時刻が正しく表示されるようになった。
(solver !524)
TRS(熱レオロジー的単純化)のアレニウス則(DEFINITION=ARRHENIUS)において、シフト因子の計算に使用するパラメータ
mvar(4) が解析制御ファイル処理
fstr_ctrl_get_TRS
で正しく設定されていなかった不具合を修正した。パラメータの読み込み処理を修正し、アレニウス則のテストケースを追加した。あわせて、ドキュメントのスペルミス(ARRHENUS
→ ARRHENIUS)および定式化・パラメータの説明を追加した。
(Issue #484, solver !529, document !21)
平滑化要素(FORM341=SELECTIVE_ESNS)を使用した領域で、要素相当塑性ひずみ(PL_ESTRAIN)の出力がゼロになる不具合を修正した。ガウス積分点の塑性ひずみ値が平滑化要素の構造体(gausses%plstrain)に正しく保存されるようにした。
v5.7より動解析陰解法では接触なしでも
fstr_solve_dynamic_nlimplicit_contactSLag
が用いられるようになったが、接触なしの場合に
solve_LINEQ_contact_elim
内で反復法ソルバーの設定によらずCG法が強制される不具合があった。これにより非対称問題(流体解析等)が解けなくなっていた。対称性の判定を修正し、ユーザーが指定した反復法ソルバーが正しく使用されるようにした。また、4自由度問題のメッセージ出力も改善した。
Selective
ES/NS法(FORM341=SELECTIVE_ESNS)と直交異方性弾性体(!ELASTIC, TYPE=ORTHOTROPIC)を組み合わせた固有値解析で、固有値が過大評価される不具合を修正した。原因は
calElasticMatrix_ortho に体積/偏差分離用の
hdflag
引数が渡されておらず、常にフルDマトリクスが使用されることで体積・偏差成分の二重計上が発生していたことにある。修正ではコンプライアンスベースのprojector
splitに差し替え、Ddev
の半正定値性を数学的に保証した。等方材料では従来の体積弾性率 K
と一致し既存の挙動は変わらない。直交異方性材料のSFEMテストケース(T09〜T11)を新規追加した。
(Issue #734, solver !528, document !20)
解析制御(cnt)ファイルにおいて、!BOUNDARY
などのカードが複数回記載された場合に、前に記載した値の配列がゼロクリアされてしまう不具合を修正した。!BOUNDARY
のほか、!CLOAD, !DLOAD, !TEMP,
!SPRING, !VELOCITY,
!ACCELERATION, !FLOAD
の読み込み処理についても同様の修正を行った。
Exodus II出力対応に伴い、WITH_NETCDF=ON
でビルドした場合に FrontISTR_INCLUDE_DIRS に
/usr/include
が追加されるようになった結果、システムに古いバージョンのMUMPSがインストールされている環境で、自前でビルドした新しいMUMPSのライブラリをリンクしているにもかかわらず
/usr/include
の古いMUMPSヘッダがインクルードされ、SEGVが発生する問題が起きていた。Metis,
MKL, MUMPS, NetCDF等のCMake Findモジュールにおいて、検出パスが
/usr/include の場合は FrontISTR_INCLUDE_DIRS
に追加しないように修正した。
CI/CDパイプラインに関する以下の不具合を修正した。
.gitlab-ci.yml 内のsed正規表現を修正し、GitLab
runnerがエスケープシーケンスを誤解釈する問題を解消した(solver !525)本リリースに対して以下のコントリビューターから貢献をいただいた。ここに感謝を申し上げる。