Loading
Fix parallel explicit contact
close #138 (closed)
陽解法+接触解析の逐次・MPI対応を実装しました。
- fstr_dynamic_nlexplicit.f90:465
- 接触出力配列を初期出力前に確保
- 法線接触力を3次元ベクトルとして計算
- hecmw_assemble_R でghost寄与をownerへ集約
- hecmw_update_R でowner値をghostへ配信
- 接触反復の収束量を全rankで集約
- 最大反復数と面ノード数の検査を追加
- 変位・速度・加速度拘束自由度を接触補正から除外
- Coulomb摩擦、stick/slip判定、接線補正、摩擦履歴を実装
- 接触解析の既存仕様に合わせ、3自由度以外は明示的に停止
- fstr_contact.f90:131
- 陽解法の法線力・摩擦力出力を生成
- 接触有無を全rankで同期
- ロードステップごとの接触有効化を反映
- fstr_contact_search.f90:25
- optional引数の未指定参照によるクラッシュを修正
- 陽解法でも接線力方向を有限滑りに追従
- fstr_contact_assembly.f90:524
- 保存済み接線力から CONTACT_FRICTION を構築
追加テスト
- contact_slag_dynamic_explicit
- 逐次およびmaster-owner MPI
- 通常実行と2+3ステップのrestart実行
- contact_slag_dynamic_explicit_slave
- CONTACT_OWNER=SLAVE
- MPI restartを含む同一結果比較
MPI有効・METIS有効・境界チェック付きDebugビルドで検証しました。逐次、2 MPI master-owner、2 MPI slave-owner、各restartがすべて成功し、逐次との最大絶対残差は約 1.19×10^16 です。