ペナルティ法(MPCMETHOD=1)の固有値解析が機能していない

概要

MPCをペナルティ法(MPCMETHOD=1)で処理する固有値解析が機能していない。tests/analysis/eigen/mpc_elim/lever の !SOL VER を MPCMETHOD=1 に変えて実行すると、固有値が 6.5e-95、0、3.8e-85 のような無意味な値になり、Abs. Residual は 1e 3〜1e4 になる。消去法(MPCMETHOD=3)では正しい固有値(3.82e-2、4.08e-1、5.98e-1)が得られる。逐次でも2プロセスで も同じで、master(fa3c1bd1)でも #742 (closed) の修正(!638 (merged))の上でも変わらない。

固有値解析とペナルティ法の組み合わせにはテストが無く、対応しているのかどうかがコードからも分からない。対応しない なら入力チェックで弾き、対応するなら原因を直してテストを置く必要がある。

再現

tests/analysis/eigen/mpc_elim/lever.cnt の !SOLVER 行の MPCMETHOD=3 を MPCMETHOD=1 に変えて fistr1 を実行する。