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

53 lines
6.7 KiB
Markdown

# 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](formulation-reduced-coordinate.md)는 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는 수정하지 않았다.