4.8 KiB
S3 partial-BC 정적 평형 불일치
- Feature:
mitc4-shell-feast-eigen2; Owner:numerical-review-agent; 검토일:2026-09-09. - Finding: NR-IMP-10 / upstream-contract-conflict. 현재 보고서의 추가 검토다.
- 입력: S3 정식화, E2-C09, 채택 C7, 기존 linear formulation §14.1, linear I/O §6.5.
독립 수치 결론
d=(3/5,0,4/5), node1 URZ만 free, applied moment (-4/3,0,1)=(5/3)b,
M0=1인 승인 S3에서 다음은 정확하다. Moment의 단위는 [force·length]다.
[ \theta_{1Z}=7500/10369,\qquad \gamma_1=d^T\theta_1=6000/10369,\qquad k_d=19/4800. ]
Physical stiffness의 spatial total moment는 0이지만,
Kdrill은 node1에 tau_d=kd gamma1 d를 더한다. r=Kq-F의 free 성분은 0이므로
applied load와 constrained full residual을 더한 기존 global moment evidence는
[ e_M=\tau_d=(57/41476,\ 0,\ 19/10369),\qquad |e_M|=95/41476\approx0.002290481242164143\ne0. ]
Global Z45° 회전에서는 e_M'=Q e_M이며 norm은 같다. Applied moment가 tangent라는 사실은
partial global BC가 만든 gamma1!=0을 없애지 않는다. Load의 constrained X 성분을 추가해도
Ff=1과 위 nonzero torque는 그대로다. Physical rigid representative의 회전은 P_i Omega이고,
full spatial Omega와 numerical drilling energy를 혼동하면 이 불일치를 놓친다.
기존 독립 oracle의 첫 Python block을 그대로 실행한 뒤
원 K,q,F에서 constrained Kq-F, 각 node의 X cross R+RM을 따로 합산했다.
현재 global recovery 193–249행과 같은
정규화에서 reaction moment scale=3.1253278233567374,
applied moment scale=5/3, eta_M=0.0007328771161369957을 얻었다.
Fraction 산술의 위 exact torque와 일치한다. 따라서 기존 1e-10 검사가 실패하는 것은 예상된 결과다.
이것은 독립 수학 실행이며 C++/reference/solver 재실행이 아니다.
E2-C09 검증 계층과 계약 경계
E2-C09 자체는 public LinearStaticProcedureExecutor::Execute의 성공을 명시하지 않는다.
S3, E2-C09 및 채택 C7의 해당 문장은 thetaZ, complete full Kq-F, same-BC/load 회전 공변성을 요구한다.
기존 독립 evidence도 direct1DOF partition solve로 이를 검증했고 zero global moment를 확인한 적은 없다.
따라서 production kernel의 complete K를 geometry/frame부터 재계산하여 Kff theta=Ff를 풀고,
전체 r=Kq-F와 원/회전 결과를 비교하는 직접 pencil 테스트는 E2-C09에 맞는 검증이다.
Constrained residual이 0이어야 한다는 의미로 complete residual 기준을 적용하지 않는다.
이는 case의 test layer를 바로잡는 것이며 threshold·물리·reaction 계약을 바꾸지 않는다.
동시에 public static 실패는 별개의 실제 계약 충돌로 남는다. 기존 linear requirements의 017–019는 이 global component BC와 tangent CLOAD를 지원하고, 029/046/057 및 기존 I/O는 full residual reaction과 spatial global balance를 유지한다. 새 요구 024/027은 그 의미를 보존한다. 승인된 M2의 rotation-only drill penalty와 이 조합은 S3에서 exact algebra상 동시에 public 성공 조건을 만족할 수 없다. 직접 테스트 통과만으로 public static 회귀가 해소되었다거나 이 입력이 새로 unsupported라고 선언하면 안 된다.
처리: E2-C09의 algebraic 검증과 현재 public failure 재현은 따로 보존한다. Global balance를 완화하거나 drill torque를 빼거나 reaction을 projection하거나 fixture BC/load를 바꾸어 실패를 감추지 않는다. Public static의 해당 supported 범위까지 성공해야 하는 완료 판정을 내려면 메인이 formulation/requirements owner에게 이 exact 반례를 전달하고, physics·지원 범위·recovery/acceptance 중 어떤 계약을 바꿀지 사용자 결정을 받아야 한다. 현재 numerical reviewer에게 그 변경을 자체 승인할 권한은 없다. Eigen S3의 finite-pencil target은 이 static 충돌로 바뀌지 않는다.
후속 실행 전달: 메인은 E2-C09를 direct pencil/full Kq-F covariance 테스트로 수정하여 통과했고,
별도 public static 테스트는 현재 global-equilibrium rejection을 재현한다고 보고했다.
이는 수학 case와 public 실패를 분리해 검증한 evidence이며, 지원 범위의 상위 계약 충돌을 해결하거나
public failure를 승인된 unsupported-input 진단으로 바꾼 결정은 아니다.