test: capture HHT shell convergence failures and recovery probes
This commit is contained in:
+35
-3
@@ -2,6 +2,17 @@
|
||||
|
||||
최초 작성: 2026-09-22. 이 문서는 중단·재개를 위한 작업 상태 기록이다. **기능 완료 보고서가 아니며, 미실행·진행 중·INCONCLUSIVE를 PASS로 해석하면 안 된다.** 후속 작업은 아래 실행 일지에 덧붙인다. Feature의 공식 acceptance/checklist 원본은 [PRD](docs/hht-implicit-dynamics/PRD.md)다.
|
||||
|
||||
## 재개 시 우선 확인 — 2026-09-26
|
||||
|
||||
아래 §1–9는 최초 snapshot이며 최신 결과는 §10과 이 요약이 우선한다. 구현은 `f0dc42a`, 후속 인계 기록은 `97ffe46`까지 커밋되어 있다.
|
||||
|
||||
- Original reference 100 increments 완료: U 101 families PASS, UR 경고 200건. 최초 HDF5는 새로 발견한 굽힘 단면력 복구 오류를 포함하므로 해당 필드는 수정 전 evidence다.
|
||||
- C08 optimized 재현: `c08-diagnostic-20260926.log`, exit1, 3 tests/1 PASS/2 FAIL. Finest C08a angular-a error `5.67565924e-4`, 최대 시점 `t=.0390625`; 그 node의 null 성분 `5.58582318e-4`, physical 성분 `1.00582661e-4`. Null 보정만으로 통과한다고 단정할 수 없다.
|
||||
- Decimal80 독립 cubic DAE 반례에서 v 2차/a 1차. 초기 A0만 변경해도 해결되지 않는다. 재현 코드와 선택지는 [독립 수치 검토](docs/hht-implicit-dynamics/implementation-numerical-review.md)에 있다.
|
||||
- 사용자 결정: 정확도 요구를 유지하고 제약조건 기반 가속도 복구를 별도 정식화·검증한 뒤 채택 여부를 결정한다(HHT-ADR-011). Production history/output 의미를 아직 바꾸지 않는다.
|
||||
- C08b grid 초기값·시간 대응·갱신 코드의 구체적 오류는 발견하지 못했다. 회전 q/v/a self convergence는 FAIL이며 원인 미확정. Roundoff 수준 P에 감소를 요구하는 판정 문제는 별개다.
|
||||
- 굽힘 recovery `M=∫zS dz`의 두께 인자 하나 누락을 확인해 수정했다. 두께 .2/.5/2의 stress-face first moment 회귀는 수정 전 FAIL, 수정 후 optimized 관련 13 tests PASS. 내부 force/tangent에는 영향이 없다. Debug/원본 재생성은 진행 중이며 최종 결과는 §10에 이어 쓴다.
|
||||
|
||||
## 1. 사용자 요청과 권한
|
||||
|
||||
사용자는 HHT implicit 동적 해석의 requirement/research, formulation, numerical review 이후 **consistent mass**를 선택했고, 이어서 **I/O definition, implementation, physics evaluation gate를 모두 수행**하도록 요청했다. 이후 **Git에 커밋하면서 진행**, 이번에는 **HANDOFF.md 작성 후에도 계속 진행하며 추가 결과를 기록**하도록 요청했다.
|
||||
@@ -207,11 +218,11 @@ PowerShell helper의 `-B`는 named parameter로 잘못 bind될 수 있어 위 ar
|
||||
7. Feature PRD·implementation report·numerical/physics reports를 실제 결과로 갱신한다. 이전의 전체 NOT RUN 기록은 이력과 현재 상태를 구별한다. C04a qualification은 유지한다.
|
||||
8. 최종 diff/format/links/reference hashes를 확인하고 작업 파일만 commit한다. 생성 HDF5/log/build/개인 helper는 commit하지 않으며 push하지 않는다.
|
||||
|
||||
## 10. 追加作業記録
|
||||
## 10. 추가 작업 기록
|
||||
|
||||
この節に時刻、変更、実行コマンド/結果、commit、残件を追記する。途中状態を最終PASSで上書きしない。
|
||||
이 절에 시각, 변경, 실행 명령/결과, commit, 잔여 작업을 추가한다. 중간 상태를 최종 PASS로 덮어쓰지 않는다.
|
||||
|
||||
- 2026-09-22 初回記録: 本文のsnapshot作成。Reference16/100受理、最新Debug focused実行中。Comparator41testsのmain再実行PASSを確認。今後も作業を継続する。
|
||||
- 2026-09-22 최초 기록: 본문 snapshot 작성. Reference 16/100 accepted, 최신 Debug focused 실행 중. Comparator 41 tests의 main 재실행 PASS를 확인했고 작업을 계속한다.
|
||||
|
||||
- 2026-09-22 후속 확인: 독립 physics reviewer가 `physics-evaluation.md` 초안을 작성했다. 최신 Debug focused는 68 tests 중67 PASS/1 C04a INCONCLUSIVE SKIP으로 종료했다. Main은 다음 명령에서 종료코드와 summary를 직접 확인한다. C08 및 최종 reference 검증은 계속 PENDING이다.
|
||||
|
||||
@@ -220,3 +231,24 @@ PowerShell helper의 `-B`는 named parameter로 잘못 bind될 수 있어 위 ar
|
||||
- 2026-09-22 구현 커밋: `f0dc42a`에 HHT core/state/writer/log/comparator와 검증된 테스트를 커밋했다. 이후 `hht_shell_physics_test.cpp`를 tests/CMakeLists.txt에 등록했다. C08 build/run 결과는 다음 기록에 추가한다.
|
||||
|
||||
- 2026-09-22T21:41:48: C08 첫 Debug snapshot build PASS. 이후 owner가 C08a temporal fixture를 추가했고 optimized compile에서 GridEvidence.algorithmic_acceleration_gap 누락으로 실패했다. 테스트 파일 owner가 필드 위치 및 q_n 시작값을 수정 중이다. Production reference는75/100 accepted까지 확인했으며 최종 파일은 아직 기다린다.
|
||||
|
||||
- 2026-09-22T21:47:38: **원본 reference 완료**. Optimized MSVC/MKL1/OMP1 실행 session70291 exit0. 101frames HDF5 생성 완료. `reference-comparison.json` precheck441774scalars PASS, U101families PASS, blocking_failure0, UR100frames의 row/RMS 경고200건. 비교 exit0은 UR 일치나 전체 물리 gate PASS를 뜻하지 않는다. HDF5 공식 경로는 §8 input의 lexical sibling `shellNL-dyn-meshfine_results.h5`.
|
||||
- 후속 검증: C08a pointwise independent volume force/power/momentum 및 explicit-time hidden checks PASS(max phi=.547572rad). **C08a temporal FAIL**: finest angular/chart-a 전체 최대오차5.67565924e-4>1e-4, 마지막 두 차수1.02867/1.02897<1.8. 일부 finest rate는 N7 error/noise100배 분리도 미달(INCONCLUSIVE). C08b도 FAIL로 종료했다. 전체 C08 optimized는3tests/1PASS/2FAIL,136.265s. 세부 실패는 c08-optimized.log에 있으며 원인 분석 중이다.
|
||||
- 독립 수치 검토의 원인 후보: massless prescribed coordinate z(t)의 A0=a0 startup은 `a1-z''(h)=h*(1/(6*beta*(1+alpha))-1)*z'''(0)+O(h²)`를 만들어 일반 nonzero jerk에서 최대시간 acceleration 오차가1차다. C08 phi'''(0)는0이 아니고 관측 first/late 오차 경향이 일치한다. 이 주장은 독립 scalar 재현·null/physical error 분해로 추가 확인 중이다. **허용값을 완화하거나 startup 물리 계약을 몰래 바꾸지 말 것.** 실제 알고리즘/acceptance 변경이 필요하면 프로젝트 사용자 결정 경계를 따른다.
|
||||
|
||||
- 2026-09-26~27 재개: `fem-implementation-tdd`, 독립 numerical/physics review와 formulation을 재개했다. C08 driver의 initial state/grid/time mapping/history/update를 읽기 전용 대조했고 구체적인 시간 대응 오류는 찾지 못했다. `CheckUpdates` production 호출이 test driver에 없는 coverage 제한은 남는다.
|
||||
- 수정/커밋: `7b700ab fix: restore thickness factor in shell bending resultants`; flat face stress moment oracle에서 thickness .2/.5/2 모두 수정 전 FAIL을 확인했다(`bending-moment-red.log`). 수정 후 optimized 관련13 tests PASS(`recovery-green-optimized.log`). `d465245 test: cover unloaded HHT free degree channels`는 전체 free/병진만 free/회전만 free의 exact-rest 3 variants를 추가했고 optimized PASS다.
|
||||
- 사용자 선택을 HHT-ADR-011로 기록: 정확도 요구를 유지하고 별도 acceleration recovery 후보를 정식화·검증한 다음 채택 여부를 결정한다. `formulation-acceleration-recovery.md`와 독립 검토 NR-012/013을 작성했다. 시간적분 history/공식 HDF5/schema는 변경하지 않았다.
|
||||
- 진단 fixture는 `a_rec=a_h+N*eta`를 원 frame과 분리해 저장한다. `c08-recovery-probe-20260926.log` 전체3 tests/1 PASS/2 FAIL, exit1. C08a split loop가 빈 analytic metadata를 순회해 false-zero를 출력한 문제는 vector size 기반으로 수정했으며 `c08-recovery-split-spectrum-20260927.log`에서 다시 실행했다(2 tests/1 PASS/1 FAIL). 첫 로그의 C08a null/physical split=0은 유효 evidence가 아니다; full error와 C08b는 별도 검토했다.
|
||||
- 복구 후보 결과: C08a finest angular-a `1.005829141075e-4`, 마지막 두 차수 `1.77942349/1.99162617`; 승인 기준 미달. 재실행 split의 null `4.64641213e-7`, physical `1.00582661e-4`. C08b finest recovered angular-a self difference `.8689386613`, physical `.8689381530`; q/v 실패는 그대로다. Hidden2와 Mdeltaa의 작은 값은 대수 보정 근거이며 실제 정확도 통과가 아니다. C08a N3 exact denominator 및 recovery-specific N7 noise 평가가 남아 있으므로 채택하지 않는다.
|
||||
- 초기 spectrum 진단: 54 DOF 원 M/K를 별도 test로 출력하고 알려진 UR3 9개를 static condensation했다. Physical mass Cholesky PASS, condensed K symmetry defect0. 최고 각진동수319.8401253, h=1/1024에서 omega*h=.31234387. `.harness/build/hht-numerical/c08b-initial-spectrum-20260927.json`에 raw eigenvalues와 grid별 값을 보존했다. 이는 initial linearized spectrum이며 nonlinear C08b 실패 원인 확정 또는 grid/tolerance 변경 승인이 아니다.
|
||||
- 수정 후 원본 reference 재실행 exit0(session5757). `reference-after-recovery-fix.json` comparator exit0: 441774 scalars precheck, U101 PASS, UR200 warnings 유지. 원 INP/CSV SHA256은 §8과 동일하다.
|
||||
- HDF5 대조: 수정 전 archive `reference-before-recovery-fix.h5`의 SHA256 `23bac93d1f7998b2f74a0f68767ae98a9899ee92c53f5170d08a814d3ee936d4`; 수정 후 공식 HDF5 `f07beddaa232abe314e20210534a243d6deaf1f677c598c64f9334428bbecb56`. 전체2033 datasets 중100개 noninitial section_resultant만 변경됐고 bending3 components는 정확히 기존의1/2, 나머지 모든 datasets는 bitwise identical이다. `reference-recovery-audit-20260927.json`에 기록했다. 직접 face stress 차분에는 tiny strain/high stiffness cancellation이 있어 별도 relative error3.868e-10을 기록했으며 1e-12 PASS로 주장하지 않는다.
|
||||
- 전체 Debug Harness는 source 수정 전 snapshot으로 시작했다(session16398, `full-debug-20260926.log`). C08a FAIL 재현 후 장시간의 stale C08b만 main이 중단했다. CTest는 이를 non-pass로 기록하고 다른 검사를 계속하므로 전체 PASS로 해석하면 안 된다. 최신 core/recovery/C09/spectrum Debug build는 exit0이며 targeted run(session3213, `recovery-green-debug-20260927.log`)의 종료 결과를 아래에 추가한다.
|
||||
|
||||
- 2026-09-27 최신 Debug targeted exit0: `recovery-green-debug-20260927.log`,14 tests PASS/28.5s. Whole Debug snapshot은 exit1,475tests 중3failed/1skipped였다. C08a actualFAIL, C08b main중단, 기존 InpDomainMapping의 Dynamic-unsupported 기대가 실패 원인이다. 원 CTest 상세는 `full-debug-stale-snapshot-ctest.log`로 보존했다.
|
||||
- Legacy mapper regression은 “other-procedure” fixture를 이제 지원하는 Dynamic 대신 미지원 Buckle로 바꿨다. 승인된 dynamic rejection/acceptance는 기존 HHT 전용 tests가 검증한다. 최신 전체 Debug build exit0 후 C08 temporal2개만 명시 제외한476test CTest를 실행 중이다(session11819, `regression-debug-excluding-c08-temporal-20260927.log`). 이것은 전체 solver gate PASS의 대체가 아니다.
|
||||
- Physics reviewer가 새 HDF5를 독립 확인했다. 모든101frames M과 `t³Cκ/12`의 최대 symmetric relative error `1.94601e-16`, absolute `1.45519e-11`로 굽힘 오류 해소를 확인했다. Source/CSV/reference를 보정한 결과가 아니라 solver 재실행 결과다. `physics-evaluation.md` HHT-PHY-005는 해소하되 C08와 feature gate는 미통과로 유지했다.
|
||||
- Spectrum 독립 재현은 original K/M eigenpair residual `2.63e-15`, mass orthogonality `8.79e-15`, analytic6 rigid-field K-action `2.28e-17`을 확인했다. Negative roundoff eigenvalues를 clamp하지 않았다. v=0 rest elastic spectrum이므로 실제 C08b finite initial velocity의 convective Jacobian/모드 가진/비선형 trajectory를 검증한 것은 아니다.
|
||||
|
||||
다음 담당자가 할 일: (1) 최신 CTest 종료코드와 FAIL/SKIP를 확인해 이 로그에 추가, (2) 회복 후보를 production에 넣지 말고 C08b physical q/v/a 차이의 시점·공간·모드별 원인을 분리, 필요하면 추가 fine-grid를 diagnostic으로 조사하되 기존 지정 grid FAIL은 보존, (3) C08a recovery-specific N7 및 정확한 N3 scale 검증을 보충, (4) C09–C11 잔여 항목을 PRD 원본과 대조, (5) 정식화/정확도/출력 계약 채택은 구체적인 통과·실패 evidence를 제시한 뒤 결정한다. 현재 candidate는 검증 기준을 충족하지 않아 미채택이다.
|
||||
|
||||
Reference in New Issue
Block a user