Files
FESADev/docs/hht-implicit-dynamics/channel-newton-covariance-diagnostic.md
T
KOKO\Mimi eaa5cbeb21 feat: adopt lumped mass and reduced-coordinate shell HHT
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
2026-10-13 16:57:19 +09:00

6.7 KiB

Actual C09 공변성 실패 진단

2026-10-13. Production/tests/기준은 변경하지 않았다. Configured C09는 여섯 trajectory의 실행 성공 후 공변성 비교에서 native8/113.03s로 실패했다. 원본 로그는 .dryforge/hht-remediation-20261012/adr017-natural-c09-debug-raw.log다. 아래 private 측정은 실행 성공과 원 공변성 기준 통과를 구분한다.

실제 경로별 오차

같은 production procedure/operators와 복사한 solver library로 원 순수 병진 pair 및 finite-phi pair를 실행했다. Finite pair는 T=.02를 유지하고 h=.01/.005/.0025로 각각2/4/8증분을 자연 종료했다. 모두 원 endpoint 검사로 accepted됐다. 측정 probe native0/350.545s는 공변성 PASS가 아니라 여덟 trajectory 실행 성공이다.

원 C09 scale은 q=1, v=1/T, a/A=1/T², force=1, director/triad=1이다. 모든 node/component/frame의 최대 오차를 사용했다. 순수 병진 pair는 모든 비교에서1e-10 이하이며 q≤4.45e-16, v≤1.34e-15, a/A≤3.56e-15, force/residual≤1.79e-14, director/triad≤2.23e-16이다. 실패는 finite-phi pair에 있다.

Quantity/channel 2증분 4증분 8증분
q, angular 4.2449713e-7 1.0008274e-7 2.1971053e-8
v, angular 7.9297623e-7 2.4574791e-7 6.3087721e-8
a, angular 2.5940786e-6 6.5595226e-7 1.6907375e-7
A, angular 2.4966904e-6 6.3710091e-7 1.6818281e-7
I/Fint, max full component 5.9519130e-7 1.6052073e-7 4.1361613e-8
director 4.6176713e-7 1.0884266e-7 2.3901148e-8
triad 5.6441014e-7 1.3284724e-7 2.9211792e-8

Finite2의 translational q/v/a/A 오차도 각각6.27749e-10/1.85494e-9/4.76153e-9/4.58596e-9다. 각 경로의 full E는 수렴하지만 서로 다른 accepted physical state가 생긴다. Trajectory residual의 공변성 차이는≤2.14e-16다. Finite2 energy 차이/reference100은 kinetic1.17776e-11, physical3.48377e-12, drilling3.29e-38이다. Angular a 차이의 refinement order는 약1.983/1.956이며,8증분도 원 공변성1e-10 기준에 실패한다. Refinement를 공식 fixture/기준 변경으로 사용하지 않는다.

같은 physical state의 조립을 별도로 비교

Finite2 source의 각 accepted q/v/a/A를 fixed proper rotation R로만 변환하고 rotated Domain에서 fresh assembly했다. Target trajectory state를 사용하지 않았다. 이 bounded probe는 native0/4.111s다.

  • t=.01/.02의 inertia force 공변성 absolute defect≤5.56e-17, internal force≤1.48e-17이다. Internal force의 max-reference relative defect≤3.00e-15다.
  • 동일 mass에 대한 R*(M*x)와 M_rot*(R*x)의 unit-column action defect≤3.39e-20다.
  • Canonical scalar primitive value 차이≤3.90e-20, full gradient의 rotated comparison 차이≤3.04e-18다(gradient max reference≈.0026).
  • External force는 exact 일치했다. 잔차 차이≤1.12e-16이다. 잔차 자체가 거의0이므로 잔차를 분모로 한 relative 수치는 원 full N2 scale를 대신하지 않는다.

이 결과는 해당 상태의 constitutive/mass/primitive 공변성 오차가 trajectory force 차이5.95e-7보다 훨씬 작음을 보여준다. 일반 모든 geometry/state의 공변성 증명은 아니다.

Actual recurrence에서 nonlinear selector 문제 확인

현재 RC-03/04는 fixed global-component selector의 p에 HHT/Newmark recurrence를 적용한다. 두 fixture의 initial null direction에서 global Z가 최대이므로 각 node의 φZ가 z이고 φX/φY가 p다. Source finite2의 max |φZ|는 t=.01에서1.4298223e-7, t=.02에서3.2923220e-6이며, max |φ|는 .00361005다. φZ는 algebraic graph에서 복구하므로 source의 global Z 자체는 독립 Newmark 좌표가 아니다.

Proper rotation 후 선택 좌표는 y=L'_p^T R_f Q(p)다. R이 constant linear rotation이어도 z(p)가 nonlinear이면 y(p)는 nonlinear이다. Coordinate-wise Newmark는 이 nonlinear 좌표 변환에 불변이지 않다.

Actual source history에서 p의 position recurrence defect는4.34e-19이고 velocity defect는3.47e-18이다. 같은 physical history를 R로만 변환한 뒤 target selector에 대입하면 angular position defect는4.820072708909e-7/uncancelled scale.001933790222256≈2.493e-4, velocity defect는3.878217179085e-5/.208746818840≈1.858e-4다. Public A의 selected component는 해당 private Ar와 같은 값이므로 actual history의 q/v/A로 이 recurrence를 재평가할 수 있다.

Stored binary64 입력의 Fraction 대조는 source dependent-Z position/velocity defect1.618323538251e-6/1.302098645892e-4가 R의 Z→selected-X/Y 성분을 통해 위 transformed defect를 만든다는 점을 확인했다. Source X/Y의 기여 remainder는 position≤1.64e-19, velocity≤2.99e-17뿐이다. 실제 graph/time-discretization 좌표 의존성을 확인한 근거이며, 단순 endpoint tolerance 또는 force summation 문제로 설명하지 않는다. Translation freeze 정책만을 원인으로 확정하지 않는다.

해결 후보와 결정 경계

Fully free node에서 existing initial objective triad의 tangent_a/tangent_b/director를 fixed rotational basis B로 사용하면, rotated model의 basis가 R*B가 되어 reduced scalar coordinates가 proper rotation 아래 동일하다. L_p/L_z를 coordinate scatter 대신 이 constant basis injection으로 일반화하고 graph/rates/augmented tangent/초기화/CA/N7를 함께 정식화하는 후보가 있다. 같은 physical equations라도 현재 승인된 global-component selector 및 discrete integration operator를 바꾸므로 독립 정식화 검토와 사용자 결정이 먼저 필요하다. Partial global-component BC의 admissible basis, chart/rank 조건과 public global q/v/a 의미도 별도 검토해야 한다.

현재 조사에서 production 변경이나 acceptance 완화는 하지 않았다. 더 작은 h를 공식 공변성 기준의 대체로 삼거나 실패 finite-phi fixture를 제거하지 않는다.

재현과 identity

Artifacts는 .dryforge/hht-channel-newton-20261013/covariance-*다. covariance-build.cmd 및 covariance-probe.exe --gtest_filter=DiagnosticCovariance.CurrentKernel로 trajectory를, covariance-matched-build.cmd 및 covariance-matched.exe --gtest_filter=DiagnosticCovariance.MatchedFiniteStateAssembly로 matched assembly를 실행했다. covariance-analyze.py, covariance-recurrence.py, covariance-exact-projection.py가 각각 quantity/frame/node maxima, actual recurrence, exact binary projection을 계산한다. Raw full frames/summary/recurrence/Fraction 결과는 해당 JSON에 보존했다. covariance-identity.json에는 source/library/object/probe/log SHA와 single-thread 설정을 기록했다. 공용 build/CTest와 원본 reference는 수정하지 않았다.