整合質量・集中質量の制御

close #70 (closed)

概要

陰解法過渡応答において、集中質量行列と整合質量行列をCNTファイルから切り替えられるようにしました。

既存の !DYNAMIC 第4データ行の先頭値 idx_mas を正式な質量行列指定として使用します。

!DYNAMIC
 1, 1
 0.0, 2.0, 10, 0.2
 0.5, 0.25
 2, 1, 0.0, 0.0
  • idx_mas=1: 集中質量行列(従来動作、デフォルト)
  • idx_mas=2: 整合質量行列
  • その他の値: 入力エラー

変更内容

  • 2D・3D連続体要素およびMITCシェル要素の整合質量行列に対応
  • 陰解法の有効剛性行列、慣性力、質量比例Rayleigh減衰へ選択した質量行列を適用
  • 整合質量式がない要素は、要素単位で集中質量へ自動フォールバック
  • フォールバックした要素タイプをログへ一度だけ出力
  • 運動エネルギー計算を fstr_calc_kinetic_energy として関数化
  • 運動エネルギー計算時に要素質量行列を再計算し、\frac12v^\mathsf{T}Mv を評価
  • 運動エネルギー用の全体質量行列 hecMAT は保持しない
  • MPIでは各ランクの内部節点に対応する行だけを加算して全体集約
  • 質量行列種別を共通定数 kMassLumped、kMassConsistent として定義

対応範囲

解析 idx_mas=1 idx_mas=2
陰解法過渡応答 集中質量 整合質量
陽解法過渡応答 集中質量 エラー停止
周波数応答 従来動作 エラー停止
固有値解析 現状維持 対象外

リスタートデータの形式および保存項目は変更していません。

フォールバック

整合質量式がない以下の要素は、自動的に集中質量を使用します。

  • 301
  • 611
  • 641
  • 761
  • 781

例:

INFO: consistent mass is unavailable for element type 761; lumped mass is used

テスト

  • fistr1 ビルド成功
  • OpenMP有効時の構文検査成功
  • 新規の整合質量回帰テストを追加
  • 整合質量の解析結果が参照値と一致
  • 既存の集中質量W342/W361テストが成功
  • Euler/Timoshenko梁要素の既存テストが成功
  • 361+761混在モデルが集中質量フォールバック付きで完走
  • 要素再計算版と旧全体質量行列版の運動エネルギー出力が完全一致
  • 不正な idx_mas、陽解法+整合質量、周波数応答+整合質量が明示的なエラーで停止することを確認
Edited by morita

Merge request reports

Loading
Loading