N2Sー拡張ラグランジュの摩擦錐の半径を実際の法線力に追従させる

変更内容

点-面接触 (node-to-surface) の拡張ラグランジュ摩擦では、摩擦力の上限 (摩擦錐の半径) を fcoeff*lambda_n、すなわち直前の拡張で確定した乗数で決めていた。
一方、同じ要素が実際に伝える法線力は lambda_n + mu*g_n (乗数 + ペナルティ×貫入)である。
本 MR では、錐の半径を残差と接線剛性の両方で max(0, lambda_n + mu*g_n) に追従させ、滑り摩擦力の厳密な線形化から出る結合項 fcoeff*mu*(Ht^T that) (x) Bn を接線剛性に加え、この項が非対称であるため、摩擦つき ALag 接触の線形 solver を一般行列として初期化する (標準ラグランジュが既に使っている fstr_is_matrixStruct_symmetric の判定に統一)。ソース 3 ファイル、+52/−9 行。乗数更新の箇所は変更不要 (更新直後の乗数は mu*g_n を取り込み済みのため)。

理由

substep の途中では、凍結した錐が本来抑えるべき力に遅れて追従する。拡張ループはこの遅れを固定点反復の一部として取り込み、勾配 s の荷重経路では乗数の誤差が拡張 1 回ごとに -(fcoeff/s) 倍される。
したがって fcoeff > s では収束せず 2 状態を往復する。結果は「収束が遅い」ではなく「成功と報告しながら誤った解を返す」: 力制御の楔 (勾配 0.115、fcoeff 0.2) では現行コードは係合節点 1 個・合計接触法線力 302 N で終わる (同じ問題の解析つり合いは5624.1 N)。
修正後は同じ deck が最後まで走り 5624.1 N に 0.001% で一致する。
摩擦 0.12 / 0.2 / 0.3、固定刻みと自動刻みの楔 deck 7 件も同様で、現行は 1 件も完走せず、修正後は全件完走して解析つり合いと 0.015% 以内で一致する。
別の実用モデル(点-面、fcoeff 0.12) では Newton 反復総数が現行の 53% に減り、解は 0.03% 以内で不変 (ただしこの 2 つの数字は拡張ループの構造も変えたブランチで測ったもので、本 MR 単体の数字ではない)。

既定挙動は変わるか

変わる。ただし摩擦係数が非ゼロの拡張ラグランジュ接触に限る。摩擦なしの deck は bit 単位で同一 (tests/ の摩擦なし・TIED のALag deck 9 件、および fcoeff = 0 の楔)。標準ラグランジュ、埋め込み、動的接触の経路は触っていない。
拡張ループを収束まで回す場合の解は不変で、固着 patch test は両版とも同じ R_x = 13.3145 N に到達する (相対差 1.6e-8)。
AUGITER=50 では両版が 1e-11 で一致し、新しい値のほうがその収束解に近い。ctest -R contact は修正前後とも 66/66、ブランチ適用後の全件は 384/384。摩擦つき ALag deck 5 件の solver をCG から BiCGSTAB へ変更 (標準ラグランジュの contact_slag_iter と同じ書き分け)。
理由は、elimination 経路では solver の方法がdeck 任せで、非対称系では CG が収束しなくなるため。

コミット

master e144fa00 の上に 3 コミット:

  1. contact: make the ALag friction cone follow the applied normal force — 修正本体、ソース 3 ファイル +52/−9 行
  2. tests: solve the ALag contact decks with friction with BiCGSTAB — .cnt 5 件
  3. tests: regenerate the ALag friction references that the cone fix moves — 2 deck、参照ファイル 3 件

Merge request reports

Loading
Loading