Loading
Output the contact normal force in explicit dynamic analysis
Closes #566 (closed) (if reopend)
概要
陽解法(中心差分法)の接触解析で、CONTACT_NFORCE が常にゼロで出力されていた。陽解法は前進増分ラグランジュ法で接触を処理し、接触法線力を接触状態の multiplier(1) に保持するだけでラグランジュ行列を組まない。出力値を作る fstr_calc_contact_output_force は hecLagMAT%Lagrange を読むため陽解法では読む相手がなく、値を埋める経路自体が無かった。保持済みの乗数から法線力を組み立てる経路を追加し、結果ファイルと可視化の両方で値が出るようにした。
組み立てには、陰解法・静解析の出力経路と同じ要素ルーチン getContactNodalForce_Slag と足し込み assemble_contact_force_output を使っている。同じ接触状態に対して同じ値が出るため、陽解法だけ別の定義の量が出ることはない。
摩擦力は対象外とした(fcoeff = 0 を渡す)。陽解法の修正子は法線力だけを運動の更新に反映しており、摩擦の乗数は解に効いていないため、出力しても解析結果を説明しないからである。
出力変数を準備する setup_contact_output_variables には陽解法向けの任意引数を足しただけで、静解析・陰解法の呼び出しは引数を省略する。これらはソルバー内で計算済みの値をそのまま使うので、挙動は変わらない。
issue が挙げているもう一方の CONTACT_STATE は、出力前に接触状態ベクトルを更新する共通経路が既にあるため、現在の master では出力される。本MRで扱うのは CONTACT_NFORCE だけである。
変更内容
| コミット | 要約 |
|---|---|
| 05d85a7d Output the contact normal force in explicit dynamic analysis | 前進増分ラグランジュ法が保持する接触乗数から CONT_NFORCE を組み立て、陽解法でも CONTACT_NFORCE が出力されるようにした |