eaa5cbeb21
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.
488 lines
38 KiB
Markdown
488 lines
38 KiB
Markdown
# Hex8 독립 수치 검토
|
||
|
||
2026-10-11 질량 정책 변경: [HEX8-ADR-010](ADR.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](PRD.md)의 현재 checklist를 따른다.
|
||
|
||
검토 대상은 [PRD](PRD.md), [formulation](formulation.md), [numeric controls](numeric-controls.md),
|
||
[I/O](io.md), [reference mapping](reference-model.md)이다. 2026-10-08 작성자와 독립된
|
||
`hex8_t1_numerical` reviewer가 문서·관련 코드·원본을 대조했다. 수식에 추가 blocker는 없으나
|
||
필수 원본/입력 계약 충돌은2026-10-09 사용자 선택 A로 해소했다. 구현 전 문서 blocker0이며
|
||
실제 solver 수치 PASS가 아니다.
|
||
|
||
## 2026-10-09 — 승인된 high+low의 한정된 검토
|
||
|
||
`hex8_t5_numerical_spec` reviewer가 [precision formulation](precision-formulation.md)과
|
||
실제 shared arithmetic·paired kernel·geometry를 독립 검토했다. Canonical zero와 scalar
|
||
−0 lifting의 두 결함은 수정했고 native fixture로 검증했다. 동일 상대변위 gradient의 chain
|
||
rule, isotropic material Hessian·geometric 항·Cauchy 복구와 full X+high+low interval은
|
||
일관된다. 산술의 실제 graph bound와 exact-dyadic 기대값을 별도로 검토했으며 native6/6
|
||
산술 검사 로그를 확인했다. 해당 범위 bounded PASS이며 새 actionable finding은 없다.
|
||
일반 correctly-rounded106-bit 보장이나 T6 전체 state/시간수렴/원본 PASS가 아니다.
|
||
T6 consumer·backend·worker 경계와 rollback은 해당 구현이 고정된 후 별도 검토한다.
|
||
이후 같은 reviewer가 optional immutable paired-linear Hessian cache를 검토했다.
|
||
동일 graph·선형 force/energy/recovery·비선형 trial Hessian·기존 F64 Create 지원을 유지하며
|
||
native44/44 원시 로그를 확인했다. 이 캐시 변경도 bounded PASS다.
|
||
|
||
## 2026-10-10 — 전체 동적 상태와 원본 세 증분의 제한적 검토
|
||
|
||
동일 독립 reviewer가 고정된 T6 `c49cae4`의 predictor/rates, 기준 M의 전체 pair 작용,
|
||
ordered force/tangent 누적, full residual·scale, 실제 old residual을 포함한 weighted 식,
|
||
fresh solve와 실제 상태 변경의 네 보정 채널, backend/worker 이후 실행 전제 검사,
|
||
accepted low의 복사·검증·rollback을 검토했다. 원시73개 inventory와 owned/shared source,
|
||
binary·patch의 hash를 확인했고 해당 consumer 범위 bounded PASS, actionable finding0이다.
|
||
Current32/32 검사와 과거 temporal4/5 실행의 성공 사례를 구분한다.
|
||
|
||
이후 변경하지 않은 두 원본의 초기 상태와 증분1–3을 관측했다. 원래 h=0.1,T=10,INC=100,
|
||
1326 full/1275 free/51 constrained를 유지하고, 네 번째 증분 local 계산 전 test-only 예외로
|
||
종료했다. 관측 native0·2/2는 이 종료 조건의 성공이며 전체 해석 완료가 아니다.
|
||
메인은51개 raw artifact의 hash/크기를 확인한 뒤 두 binary64 성분을 exact dyadic Fraction으로
|
||
읽어 모든 상태의 normalization, 실제 Mff의 full M restriction, 원래 모든 free 성분의
|
||
물리 r/Si와 exact-zero, HHT 세 update 식과 weighted old-r 항등식을 독립 재계산했다.
|
||
|
||
Exact CSR M 작용으로 재계산한 물리 비율의 최댓값은 선형3.12680e-20,
|
||
비선형1.3043731e-16으로 승인1e-10 이내다. Update·weighted identity는1e-12 이내이며
|
||
초기1275개 free row는 모두 exact0이다. 실제 PARDISO 보정의 선형6회·비선형9회 기록으로
|
||
Newton 시작값인 이전 accepted u부터 최종 u를 재구성하고, fresh/observed 네 보정 채널도
|
||
각각 확인했다. 비선형 최대 보정 비율1.01046e-13은 승인1e-10 이내다.
|
||
|
||
Storage graph 대조의 별도 절대 오차 budget과 물리 gate를 혼동하지 않는다. Exact M 작용과
|
||
저장된 pair Ma의 상대 차이는 최대2.88e-32였다. Strict physical gate에 floor를 추가하거나
|
||
high만으로 full 상태를 대신하지 않았다. 재현 자료는 로컬
|
||
`.harness/hex8-evidence/precision/{prefix3-frozen,prefix-independent.json,check_prefix.py}`다.
|
||
Root 연결 후 관련49/49 검사의 native build/CTest는0/0이다. 이어 두 brick의 LIN/TL 직렬·TBB
|
||
전체 low 필드 일치와 실제 nonzero low를 확인한 focused1/1 검사도0/0이다.
|
||
최초 넓은 filter가 전체 원본 smoke를 선택해 중단한 실행은 CTest exit−1로 보존하며
|
||
수렴 실패 또는 통과로 해석하지 않는다. 전체101 endpoint·공식 HDF5·원본 비교는 아직 없다.
|
||
동일 독립 reviewer가 메인의 Fraction checker 전체를 정적으로 검토하고 frozen51개 자료에
|
||
읽기 전용으로 재실행해 결과가 정확히 같음을 확인했다. Oracle 수식 오류는 발견하지 않았고
|
||
source-prefix bounded PASS를 반환했다. 저장값 비교의2^-90 budget을 모든 범위의 primitive
|
||
graph/106-bit 정확도 보장으로 확대하지 않는다. 이 검산은 accepted 상태와 실제 반환 du를
|
||
확인하며 중간 각 solve의 Kt/Keff·RHS 방정식 잔차를 별도로 증명한 것은 아니다.
|
||
|
||
## 공식 결과·prepared/CLI 연결의 독립 검토
|
||
|
||
작성자 행동본 `9144eef`와 public header 직접 include·Doxygen만 보완한 후속본 `63cfdd0`을
|
||
독립 reviewer가 검토했다. Typed Solid static/frequency/dynamic outcome, 실제5절차 dispatch,
|
||
source warning, static 실제2채널·dynamic scalar 로그와 로그 실패 우선순위를 확인했다.
|
||
HDF5 field·dtype/endian/UTF-8·shape·source identity·units, 전체 pair 검증 이후 RN64 출력,
|
||
callback 이후 산술 환경, 실제 writer/reader checked-close·readback·atomic replace와 기존
|
||
final 보존을 확인했다. Rounded 배열에서 물리 gate를 다시 계산하지 않는다.
|
||
|
||
요청 mode 뒤의 backend pair에는 차원 상한·정렬·유의 음수 lambda 검증이 빠져 있었다.
|
||
전체 pair 수를 free 차원 이하로 제한하고 T5와 같은 `lambda/scale>=-1e-9` 정책을 적용했다.
|
||
실제3-free/request1 API 결과에서 요청 밖 row를 음수·역순·차원 초과로 각각 변형해
|
||
서로 다른 거부 원인과 기존 final byte 보존을 확인했다. Raw near-zero 음수를0으로
|
||
바꾸거나 그 frequency를 생성하지 않는다. 이 finding은 해소됐으며 잔여 actionable finding0이다.
|
||
|
||
행동본의 실제 native build/CTest는0/0, 관련101/101 PASS·112.60s다. Header-only 후속본은
|
||
전체 configured 대상 recompile0 및5절차 API/schema1/1 PASS·9.88s이며101개를 후속본에서
|
||
다시 실행한 것으로 보고하지 않는다. 메인 `e2c3c5b`는 같은13개 owned blob과4개 CMake
|
||
등록을 연결했고 관련17/17을 native build/CTest0/0·72.95s로 확인했다.
|
||
원시114개 SHA/크기와 source13개 committed blob/snapshot 일치를 reviewer와 메인이 각각
|
||
확인했다. 로컬 자료는 `.harness/hex8-evidence/{t7-output-frozen,t7-integrated}/`다.
|
||
이 판정은 T7의 bounded PASS다. 전체780개 CTest·공식 원본 CLI 수치 비교·기능 완료와
|
||
release PASS를 뜻하지 않는다.
|
||
|
||
## HEX8-NR-001 — 영 회전 경계와 필수 원본 충돌
|
||
|
||
검토 당시 PRD008/I/O는 BC/CLOAD DOF4–6을 값0이어도 거부했다. 그러나 모든 필수 INP에
|
||
`Set-1, 4, 4`, `Set-1, 5, 5`, `Set-1, 6, 6`의 생략된 영 지정값이 있다.
|
||
Static2/frequency는794–796행, dynamic2는796–798행이다. Read-only 원본을 그대로
|
||
사용하면5개 모두 input failure이므로 end-to-end integration/필수 비교를 진행할 수 없다.
|
||
|
||
원본의 영 회전 BC만 warning/no-op으로 수용하는 입력 호환 예외와, strict 거부를 유지하고
|
||
사용자가 원본을 수정하는 두 대안을 제시했다. 2026-10-09 사용자는 A를 승인했다.
|
||
PRD008/I/O를 zero rotational displacement BC만 source warning/no-op으로 수용하는 한정된
|
||
호환 예외로 수정했다. 비영 회전 BC·모든 회전 CLOAD는 계속 거부하고 원본을 보존한다.
|
||
따라서 문서 blocker는 해소됐으며 구현에서 경고·실제3N·거부 경계를 테스트해야 한다.
|
||
동일 독립 reviewer가 승인된 수정 부분만 bounded recheck했고 `blockers: []`를 반환했다.
|
||
정적 읽기 확인 exit0이며 수식 재검토·code 변경·solver 실행은 하지 않았다.
|
||
|
||
## 독립 검토에서 정리한 내용
|
||
|
||
초기 static convergence 문서의 max(internal_free,external_free) branch는 prescribed-only에서
|
||
residual=internal_free라 ratio1을 만들어 수렴을 막을 수 있었다. Draft를 기존
|
||
`EvaluateResidualChannel`의 external_free exact0 absolute branch로 수정했다. Reviewer는 수정 후
|
||
기존 source219–246과의 일치를 확인했다. 승인 physics/schema/external acceptance는 바꾸지 않았다.
|
||
|
||
Reviewer의 독립 표준-library 산술 확인은 exit0이며 TL tangent relative 최적 오차 약4.59e-11,
|
||
Bernstein27 재구성 최대오차7.77e-16, mass Walsh 최소 모드값.03703703703703707≈1/27,
|
||
scalar HHT u/v/physical a 관측 차수 약2.00/1.98–1.99/2.00이었다. 초기 NumPy 계산은 모듈
|
||
부재로 exit1이었고 표준-library 계산으로 대체했다. 문서/코드/원본 읽기 명령은 exit0,
|
||
glob discovery 검색 하나는 exit1이었다. File edit/build/test/external solver 실행은 하지 않았다.
|
||
이 숫자는 문서 식의 독립 산술 확인이며 production kernel/backend/mesh 검증 evidence가 아니다.
|
||
|
||
TL energy/Hessian·engineering/tensor shear, degree(2,2,2) Jacobian 인증, mass SPD와 real/FP bound
|
||
구분, original generalized K/M·최저 N, HHT a/A·weighted/endpoint tangent·초기 force/physical
|
||
reaction, typed/HDF5·failed accepted 보존에는 문서 수식의 추가 blocker가 없었다.
|
||
|
||
검토해야 할 주요 위험은 다음과 같다.
|
||
|
||
- J0의 column/gradient 변환과 point3/4·7/8 순서; det J polynomial Bernstein 변환과 outward
|
||
interval/subdivision이 whole-cell 양성을 보증하는지, uncertain/resource failure가 보수적인지.
|
||
- TL energy variation에서 material/geometric tangent의 index와 work conjugacy,
|
||
rigid rotation/strain objectivity·zero-state 선형극한과 unaveraged Cauchy/Green recovery.
|
||
- 8점 consistent M의 SPD·총질량·reference 상수성·local spectral bound와 실제 sparse pencil
|
||
roundoff/control의 구분; Shell null/nodal whitening 미사용 및 lowest-N count 검증.
|
||
- HHT auxiliary/physical acceleration·weighted/endpoint residual의 동등 조건·tangent scale,
|
||
initialization/amplitude endpoints·physical reaction·u/v/a 시간수렴과 numerical dissipation.
|
||
- Static/Newton의 approved defaults·force/length 단위·zero-scale branch, internal oracle budget과
|
||
외부 reference acceptance 분리, geometry/finite/recovery 이후 atomic state/output commit.
|
||
- Original required U/RF/Gauss S·dynamic101 frame projection·frequency 미제공 상태를 정확히
|
||
구분하는지. Coordinate sanity 확인을 stress/reference correctness로 승격하지 않는지.
|
||
|
||
이 risk는 이후 실제 interval primitive/subdivision·brick/warped oracle·tangent step sweep·
|
||
generalized runtime/count·prescribed-only state·HHT mesh 시간수렴·formal HDF5/reference 사전검사로
|
||
검증해야 한다. 아직 실행하지 않은 solver build/test/reference를 PASS로 적지 않는다.
|
||
|
||
## T8 비교기 독립 검토와 실제 원본 불일치
|
||
|
||
Frozen author `0b93c0c59cf64db44003ebe5217a4efb8307a8ba`는 bounded PASS,
|
||
추가 actionable code finding0이다. Root 연결은 `317fe5c`다. Reviewer는 별도로 네 owned
|
||
LF commit blob/current/snapshot과 manifest·65 raw artifact의 hash/size, 양 checkout의
|
||
원본13 SHA를 확인했다. Actual stdout/JUnit에서124/124(Hex8 83·기존 HHT 41),
|
||
failure/error/skip0·native0·81.41s를 확인했다. 일부 초기 로그의 count가 원시 stdout으로
|
||
증명되지 않았던 한계는 최종 raw closure로 해결했으며 과거 native 기록은 유지한다.
|
||
|
||
실제 발견하고 behavior RED 후 수정한 사항은 alternate reference 선택 시 기본 원본을
|
||
report로 덮어쓸 수 있던 보호 누락, scalar modal pair의 rank 검사 전 IndexError,
|
||
`..` lexical path가 같은 scratch의 C++ source identity와 달라지던 문제다.
|
||
Default/selected reference·input/result/record와 symlink/hardlink alias 보호, Dataset/1D
|
||
검사, C++와 같은 lexical 절대경로 정규화와 targeted5 regressions를 확인했다.
|
||
|
||
두 정적 공식 HDF5는 source/schema/model/point/frame/finite precheck PASS·CLI native0이나
|
||
세 수치 family FAIL이다. Reviewer의 독립 standard full8 조립·회복·반력/에너지와 정식
|
||
비교 metric이 일치했다. Frequency 공식 readback의 precheck와 missing Value NOT RUN을
|
||
분리한다. Whole configured Python은 기존 collection5 오류로 native2·실행0개이며 PASS가 아니다.
|
||
실제 수치는 [verification](verification.md), 물리 모델 차이는
|
||
[변경 근거](reference-discrepancy-proposal.md)에 있다. 그 변경안의 energy 미분과 선형
|
||
후보 배열의 independent K/S/energy·U/RF/S 수치 관측도 검토했지만 production 채택이나
|
||
비선형·동해석 일치 검증은 아니다. 전체 CTest와 남은 동적 원본은 이 bounded 판정 밖이다.
|
||
|
||
Root 보존 자료는 로컬 `.harness/hex8-evidence/t8-comparator-frozen/`, 독립 full8 원시
|
||
재현은 `t8-independent-full8-audit/`, 후보 계산/수식은 `t8-reference-law-investigation/`다.
|
||
|
||
## 2026-10-10 체적 평균 energy 변경 전 실행 종료와 수식 검토
|
||
|
||
이후 두 frozen API 원본은 unchanged101 endpoint를 자연 종료(native0)했고, 다섯 공식
|
||
CLI도 native0으로 종료했다. 두 동적 공식 HDF5의101-frame precheck는 PASS이나 외부 U는
|
||
각각88/101 family FAIL이다. 전체780 CTest는 native8:777 PASS·2 FAIL·1 SKIP이며,
|
||
추가163개는 모두 PASS이고 기존 예외의 status·metric body가 동일하다. 상세 raw 경로와
|
||
실패 수치는 [verification](verification.md)에 있다. 이 종료 결과는 이전 pointwise 식의
|
||
evidence이며 승인된 변경본의 numerical PASS가 아니다.
|
||
|
||
사용자 B 승인 후 reference-volume 평균 Green trace energy의 독립 정적 수학 검토에서
|
||
내력·전체 Hessian, cross-GP `kappa*b*b^T/V` 및 `S*:delta²E` 기하항의 일관성을 확인했다.
|
||
직접 F64 mu/kappa를 검증하고 pair로 lift하며, relative kinematics와 같은 Ghat derivative를
|
||
쓰는 선택을 확인했다. 이전 affine 응답과의 수학적 일치는 동일 mu/kappa/Ghat 전제다.
|
||
실제 rounded cache의 affine completeness와 partition sum을 혼동하지 않는다.
|
||
Nonuniform trace·warped weighted mean·node0 방향 미분·LINE/TL zero Hessian·low-only bulk
|
||
응답·material 경계·새 spatial/temporal evidence는 변경 구현에서 검증해야 한다.
|
||
|
||
## 체적 평균 구현의 독립 검토
|
||
|
||
Frozen `b2abd739`의8개 변경 source/current snapshot/commit blob과141개 종료된 raw
|
||
artifact의 hash·size를 독립 대조했다. 두 pass의 weighted trace, node0 상대변위와
|
||
동일 Ghat derivative, cross-GP bulk Hessian, `S*` 기하항 및 actual strain의 Cauchy
|
||
복구가 승인된 energy와 일치한다. Paired 계산은 같은 연산에서 low 성분을 보존하고
|
||
직접 F64 mu/kappa의 동일 lift를 사용한다. LINE zero cache도 같은 Hessian이다.
|
||
|
||
이전 식에서 실패하는 corrected7-oracle RED와 변경본150/150, 시간수렴4물리 사례,
|
||
최종 실제 재컴파일3/3의 native 기록 및 소스 전후 SHA를 확인했다. 최소 u/v/physical a
|
||
관측 차수1.98022가 기존 기준1.8을 충족한다. 판정은 이 구현·내부 evidence에 한정한
|
||
bounded PASS, 잔여 actionable finding0이다. Root 연결 `18b36c1`의 실제 재컴파일
|
||
관련65/65도 native0이다. 전체 CTest·원본 비교의 실제 종료 결과는 [verification](verification.md)을 따른다.
|
||
|
||
공간수렴은 두 축을 실제로 세분화한 지정 굽힘장의 energy다. 고정 두께/폭2요소의
|
||
평형 cantilever 길이 refinement는 tip 추세와 locking 관찰이며 평형해 공간차수를
|
||
입증하지 않는다. Brick rank18과 검증된 warped cell은 모든 admissible warped cell의
|
||
영공간 보증이 아니다. 원본 modal Value 부재나 기존 전체 회귀 예외는 이 bounded
|
||
검토로 없어지지 않는다. 원시 자료는 작성자 worktree의
|
||
`.harness/hex8-evidence/mean-volume/frozen-b2abd73/`와 관련 종료 evidence에 있다.
|
||
|
||
새로 종료한 실제 정적·고유치 실행의 별도 evidence audit에서도 finding0이다. Imported
|
||
8개 source가 frozen commit과 같고 root kernel object가 실제 재컴파일됐으며 frozen/current
|
||
실행 파일 SHA도 동일하다. 원본13개 및66개 소비 artifact의 전후 SHA를 확인했다.
|
||
HDF 실제 배열과 원본 CSV로 정적 보고서의 모든 행·near-zero/relative 분기·오차·RMS를
|
||
다시 계산했으며 U1326/RF51/S14400의 실패0과 양쪽 비교 native0을 확인했다. 전체
|
||
RF442행의 identity·finite·free RF exact0도 대조했다. Frequency missing Value의
|
||
native2·NOT RUN, root65 검사 native0, 새 전체 Python collection5/native2를 정확히
|
||
구분했다. 자료는 `.harness/hex8-evidence/mean-volume/final-evidence-audit-static-frequency/`다.
|
||
이 evidence audit은 당시 미종료였던 동적·전체787 검사의 판정이 아니며, 이후 종료 감사와 구분한다.
|
||
|
||
이후 자연 종료한 새 선형 동적 원본도 별도 read-only evidence audit에서 bounded PASS,
|
||
finding0이다. CLI/comparator native0, HDF SHA와 원본13 SHA, frozen executable 및31개
|
||
소비 artifact의 전후 SHA를 확인했다. 원본44642개 node row, HDF101×442×3 및 비교
|
||
보고서133926개 scalar가 정확히 대응하며 누락·중복·비유한 값은0이다. Increment0–100,
|
||
CSV decimal time와 HDF `double(n)*h`를 구분해 확인하고 모든 행의 오차·분기·기준·RMS를
|
||
재계산했다. 초기 exact-zero family의 relative RMS null은 실패나 누락이 아니다.
|
||
101개 family PASS·실패 행0과 [verification](verification.md)의 수치가 일치한다.
|
||
자료는 `.harness/hex8-evidence/mean-volume/final-evidence-audit-dynlinear/`다.
|
||
비선형 동적·전체787 및 동적 물리 수지는 이 수치 비교 감사 밖이다.
|
||
|
||
비선형 동적 원본의 종료 evidence도 별도 read-only audit에서 bounded PASS,
|
||
finding0이다. 45개 소비 artifact의 전후 SHA와 원본13개 보존, CLI/comparator native0을
|
||
확인했다. 모든101 frame·133926 scalar의 시간·identity·finite·오차 분기·기준·RMS를
|
||
독립 재계산했으며 누락·중복·실패 행은0이다. 최대 상대 RMS는
|
||
0.003133373067174733, 최대 절대 오차는1.3397499223151595e-5이며 초기 exact-zero의
|
||
relative RMS null도 확인했다. 다섯 원본 CLI와 queue wrapper의 native0 및 source 전후
|
||
동일성을 확인했다. 자료는
|
||
`.harness/hex8-evidence/mean-volume/final-evidence-audit-dynnonlinear/`다.
|
||
전체787의 종료 판정과 비선형 동적 물리 수지는 이 감사에 포함되지 않는다.
|
||
|
||
## 변경본 전체 회귀 종료의 독립 감사
|
||
|
||
실제 unfiltered 전체787 CTest의 종료 raw/native·discovery 및 baseline617개를 별도
|
||
read-only 감사했다. configure/build/discovery는 native0, CTest는 native8이며
|
||
784 PASS·기존 Shell FAIL2·C04a SKIP1이다. 이름·기존 상대순서·각 discovery와 실행
|
||
ordinal·status를 대조했고 추가170개 모두 PASS·뜻밖 예외0을 확인했다. 두 실패의
|
||
전체 출력은 elapsed-ms 표기만 제외해 정확히 같아 실패 내용과 metric도 동일하다.
|
||
SKIP 상세 출력은 baseline에 없어 NOT VERIFIED다. 소비22개 artifact SHA를 전후
|
||
대조했고 실제 세 테스트 실행 파일의 중간 관측·종료 SHA도 동일하다. 이를 실행 전
|
||
binary hash라고 표현하지 않는다. 감사 native0·finding0, bounded evidence PASS다.
|
||
|
||
원시 자료는 `.harness/hex8-evidence/mean-volume/final-evidence-audit-full/`에 있다.
|
||
판정은 종료 evidence의 일관성·새 회귀 없음에 한정하며 전체 green·release 또는
|
||
미제공 modal Value의 통과 판정이 아니다. 실제 원본의 독립 물리 수지 범위는
|
||
[physics review](physics-review.md)를 따른다.
|
||
|
||
## 2026-10-11 제공 modal 원본의 독립 검토
|
||
|
||
제공된 `hexa_freq.txt`의 직접 읽기와 root 비교기 diff를 작성자와 독립적으로 검토했다.
|
||
새 TXT parser·실제 frequency 분기·원본 raw hash/보고서 보호·mode1–10 일대일 대응·반복
|
||
고유치 보존·유일한 source Step-1 binding·HDF5 quantity/unit/dtype/finite가 bounded PASS다.
|
||
영향 Python native0·JUnit136 PASS(95 Hex8/41 HHT)도 closed artifact로 확인했다.
|
||
원본14개를 포함한23개 소비 artifact의 SHA를 검토 전후 대조했고 모두 동일하다.
|
||
독립 audit native0·finding0은 비교 코드와 증거의 일관성 판정이다.
|
||
|
||
실제 λ 오차와 공통 row5%/singleton RMS1%를 독립 재계산한 결과 mode3/4/5/6/7/9/10의
|
||
7개 family FAIL을 재현했다. 최대 mode5는 원본52797 대 FESA63489.09126468376,
|
||
relative RMS0.20251323493160142다. `Value`와 `Freq`의 각 decimal 표시 해상도 구간에서
|
||
`f=sqrt(lambda)/(2*pi)` 관계는 일관되지만 이 보조 검토의 구간을 비교값 보정이나 tolerance로
|
||
사용하지 않았다. 동일 mode ID의 출력 값 그대로 판정했고 frequency로 바꾸지 않았다.
|
||
|
||
공식 readback의24 returned pairs와 선택10개, 저장된 original-pencil verification도 확인했다.
|
||
이는 FESA 자체 pencil의 검증량 확인이며 새 matrix 조립·eigensolve나 Gram 독립 재계산을
|
||
수행했다고 주장하지 않는다. 원본 λ만으로 K/M 중 원인을 특정할 수 없고, 원본 mode shape·
|
||
modal mass·실제 element/mass law 또는 operator evidence 없이 수식·질량·기준 변경을
|
||
정당화하지 않는다. 최종 기능 완료는 필수 modal 불일치 해결까지 대기다.
|
||
|
||
자료는 `.harness/hex8-evidence/mean-volume/modal-final/independent-result.json`,
|
||
`independent-native.json`, `independent-inventory.json`, `independent-audit.py`다.
|
||
결과 JSON SHA는 `48c359cf670f9e39792cf58bbe5d7498effabcfd5789c3025904ac8562af5e99`다.
|
||
전체 C++ 회귀는 직전 `18b36c1` 실행 기록을 참조했고 이번 새 실행으로 표현하지 않았다.
|
||
|
||
## 2026-10-11 원본 질량 분리 진단의 독립 검토
|
||
|
||
후속 [질량·요소 조사](reference-mass-investigation.md)의4way 계산을 독립 검토했다.
|
||
Fresh engineering shear B/Cdev·체적 평균 coupling·consistent 적분과 full 행 합 lumping 뒤
|
||
free restriction의 의미가 맞다. 저장된 두 K·두 M·고유벡터에서 같은 source mode별 오차,
|
||
총질량과 자체 residual·Gram을 독립 재계산했다. Audit native0·finding0, 소비자료 SHA 불변이다.
|
||
Mean K+consistent M은 실제 FESA λ를 상대차이4.57e-12로 재현하고, mean K+lumped M은
|
||
원본10개 λ 모두 상대차이0.00196105% 이내다. 이는 질량 선택 차이를 설명하는 강한 근거다.
|
||
원본 actual operator 직접 대조나 재조립/eigensolve를 수행했다고 주장하지 않는다.
|
||
|
||
진단 script의 `max_eta_r`는 infinity-norm backward residual이다. 공식 T5의
|
||
Euclidean/Frobenius eta_r와 이름만으로 동일시하지 않으며 두 규격을 별도 재계산했다.
|
||
후자의4조합 최댓값은3.79e-15 이하, Gram Frobenius 오차는3.36e-15 이하다.
|
||
Private eigsh의sigma0/k10 결과는 실제 FEAST lowest-N count/completeness 인증이 아니다.
|
||
현재 FESA mass 정책이나 실제 modal FAIL은 변경하지 않았다.
|
||
자료는 `.harness/hex8-evidence/mean-volume/modal-mass-investigation/independent-result.json`과
|
||
같은 폴더의 native/audit에 보존한다. 상세 원본·문서·metric·채택 경계는 위 조사 문서를 따른다.
|
||
|
||
## 2026-10-11 row-sum lumped production 채택의 독립 검토
|
||
|
||
[HEX8-ADR-010](ADR.md)에 따라 변경된 `ComputeMass`와 eigen/HHT oracle·metadata를
|
||
읽기 전용으로 검토했다. Full reference consistent24×24를 기존8점으로 계산한 뒤
|
||
각 전체 행 합을 대각에 저장한다. BC는 이후 procedure에서 적용되므로 구속 열의
|
||
질량을 잃지 않는다. Positivity/finite 실패를 값 보정으로 숨기지 않으며 stiffness,
|
||
high+low 상태·계수 lifting·HHT gate를 변경하지 않는다.
|
||
|
||
**HEX8-LM-NR-001 — CLOSED: dense eigen oracle의 BC 순서.** 최초 oracle는
|
||
full_mass를 free×free loop 안에서만 채워 constrained 열을 누락했다. 독립 검토에서
|
||
이를 지적했고, 전체24 DOF의 독립 closed-form consistent 행렬 생성→full row sum→
|
||
free restriction으로 수정된 코드를 확인했다. 새 실행 검증은 전체 회귀 결과와 구분한다.
|
||
수정 전 binary의 부분 실패/중단은
|
||
`.dryforge/lumped-mass-adoption-20261011/focused-interrupted.json`에 보존한다.
|
||
|
||
Warped fixture의 독립 map은
|
||
`X=(xi+.12*eta*zeta, 2*eta+.09*xi*zeta, 3*zeta+.15*xi*eta)`다. 직접 전개한
|
||
detJ는 `6-.0135*xi²-.036*eta²-.0324*zeta²+.00324*xi*eta*zeta`로 신규 oracle와
|
||
일치한다. rho2의 절점 질량은 `11.9454±.00024`이며 부호는 `sx*sy*sz`다.
|
||
Ni*detJ의 축별 차수는3 이하라 기존2점 rule과 독립3점 적분이 수학적으로 일치한다.
|
||
비균일 속도 `v_ax=a+1`에서 uniform rhoV/8 shortcut의 T와 차이는 −.00192이므로
|
||
새 검사는 총질량만 같은 잘못된 uniform lumping도 구별한다.
|
||
|
||
Mass lower bound `rho*min(w)/27`는 계속 보수적으로 사용할 수 있다. 양의 shape와
|
||
weights에서 `M_L-M_C`의 quadratic form은 절점 속도 차이 제곱의 양의 합이다.
|
||
따라서 기존 consistent SPD lower bound는 lumped에도 유효하다. 추가 full-row 양의
|
||
합산은 고정 순서이며 기존512eps element/assembly budget과 비교했다. 새로운 기준
|
||
완화나 eigen upper-bound를 diagonal ratio로 대체하지 않았다. 비트 수준의 PSD나
|
||
수학적 lower bound만으로 실제 solver 검증을 대신한다는 의미는 아니다.
|
||
|
||
Fresh production **MSVC x64 Debug** `hexa_freq` CLI native0와10개 Value 비교를
|
||
독립 확인했다. 원본 TXT와 HDF5 mode1–10으로 singleton 행/RMS를 직접 재계산했으며
|
||
공통 row5%/RMS1%로 모두 PASS다. 최대 상대 RMS는 `1.961049613524256e-5`
|
||
(0.001961049613524256%)이다. 원본·byte 동일 입력 복사본·binary·HDF5 해시와
|
||
`lumped-reference` metadata를 대조했고 소비 artifact SHA는 검토 전후 동일했다.
|
||
|
||
저장된25 returned pairs의 max eta_r/eta_norm/eta_energy는 각각
|
||
`1.0554551422827935e-17 / 4.440892098500626e-16 / 7.476286423773325e-19`,
|
||
eta_gram/max_eta_orth는 `4.379426909390015e-15 / 1.0729264698916552e-15`다.
|
||
이는 저장된 original-pencil checks의 판독이며 reviewer가 production K/M을 새로
|
||
조립하거나 eigensolve/count certification을 독립 수행한 것은 아니다.
|
||
Bounded audit native0·finding0 자료는
|
||
`.dryforge/lumped-mass-adoption-20261011/references/hexa_freq/independent-adoption-audit.json`이다.
|
||
결과 HDF5 SHA는 `94a576bbfe1d5826235a6323e6d470163ed2e970c4fe6f65a86b2d65a3db7f8a`다.
|
||
|
||
전체 Debug/CTest와 정적2·동적2 원본의 새 종료 evidence는 아직 검토하지 않았다.
|
||
현재 상태는 [PRD](PRD.md)의 checklist를 따른다. 이 bounded modal PASS를 동적
|
||
시간수렴·전체 green·기능 완료로 확대하지 않으며 이전 consistent modal FAIL은
|
||
해당 질량 선택의 이력으로 보존한다. Reviewer는 코드·테스트·상위 계약을 수정하지 않았다.
|
||
|
||
### 2026-10-12 종료된 검증 근거의 보완
|
||
|
||
수정된 dense oracle를 포함한 새8 suites/38 C++ tests의 전체 PASS/native0를 확인했다.
|
||
Warped nodal mass·비균일 energy, full-row lumped pencil, one-free-DOF/구속 경계의
|
||
관성 반력, 독립 scalar/3DOF brick oscillator 시간수렴 및 HDF5 readback이 포함된다.
|
||
이 실행은 수정 전 focused binary의 부분 실패/중단을 새 결과와 분리한다.
|
||
별도 `python-focused.log`의 pytest137 PASS도 확인했다.
|
||
|
||
종료된 원본 comparison의 모든 보고 scalar에서 reference-only scale, near-zero,
|
||
row5%/RMS1%, exact-zero 분기와 최종 판정을 직접 재계산했다. U는 HDF5 source
|
||
node/frame 값에도 대조했으며 input/native record/binary/HDF5/원본 hash와
|
||
`lumped-reference` metadata를 확인했다. RF/S는 보고된 scalar 수치·identity/hash
|
||
감사이며 별도 stress/reaction recovery oracle를 새로 실행했다는 뜻은 아니다.
|
||
|
||
| 종료된 원본 | 실행 구성 | 확인한 families/scalars | 최대 상대 RMS |
|
||
| --- | --- | ---: | --- |
|
||
| hexa_linearstatic | MSVC x64 Debug | 3 / 15777; U/RF/S 모두 PASS | U `9.31789815437491e-9`, RF `7.309816326722838e-9`, S `3.42593423675143e-9` |
|
||
| hexa_nonlinearstatic | MSVC x64 Debug | 3 / 15777; U/RF/S 모두 PASS | U `2.169911561350721e-7`, RF `6.728092996221333e-6`, S `9.338899878251489e-6` |
|
||
| hexa_freq | MSVC x64 Debug | 10 / 10; Value 모두 PASS | `1.961049613524256e-5` |
|
||
| hexa_dynlinear | MSVC x64 Release, current production | 101 / 133926; U 모두 PASS | `3.618821318800423e-7` |
|
||
| hexa_dynnonlinear | MSVC x64 Release, current production | 101 / 133926; U 모두 PASS | `2.1555860391237846e-6` |
|
||
|
||
각 CLI native0를 확인했다. Dynamic release의 raw recorder에 보존된 folder label은
|
||
각각 `hexa_dynlinear-release`와 `hexa_dynnonlinear-release`다. Byte 동일 INP stem으로 논리 case를 연결한
|
||
`comparison-execution.json`의 raw-record hash와 실제 command를 대조했으며 원시
|
||
기록을 수정하거나 다른 입력으로 치환하지 않았다. Debug와 Release 검증을 혼합해
|
||
전체 Debug 통과로 표시하지 않는다.
|
||
|
||
Bounded 감사 native0·finding0 자료는
|
||
`.dryforge/lumped-mass-adoption-20261011/independent-closed-evidence.json`이다.
|
||
필수 원본5개의 외부 비교는 위 구성에서 모두 PASS이며 새 전체 Debug/CTest는
|
||
실행 중으로 최종 검토 대기다. 이 두 Release 동적 비교를 Debug 원본 통과로 표시하지 않는다.
|
||
기존 `execute.py` 중단 native−1과 serial 직접 전체789 CTest의 진행 상태를 구분한다.
|
||
현재 전체 green·시간/물리 검증 완료·기능 완료 판정은 하지 않는다.
|
||
|
||
후속 serial 전체 실행에서 기존 Shell C08a 시간수렴 test의 current lumped FAIL을
|
||
확인했다. Assertion 구성5개는 baseline과 같으나 실제 metric은 변했다. Finest
|
||
회전 가속도 error `5.6747291267426469e-4`와 두 raw order 약1.02838/1.02946은
|
||
기존 기준 미달이며 N7 noise 분리도 미충족이다. 상세 대조는
|
||
[HHT 독립 검토](../hht-implicit-dynamics/implementation-numerical-review.md)의
|
||
2026-10-12 current C08a 절을 따른다. 이는 Hex8 원본5개의 bounded 외부 비교 PASS와
|
||
구분하며 전체 회귀 green으로 승격하지 않는다. C08b 및 전체 종료는 아직 대기다.
|
||
|
||
Current shell C08b도 종료됐으며 **FAIL**이다. h=1/64·1/128 완료 뒤 세 번째
|
||
h=1/256 grid에서 principal rotation 입력 gate의 runtime 예외로 중단했다.
|
||
5 grids를 완료한 뒤 accuracy assertion이 실패했던 baseline과 다른 결과다.
|
||
실패 Newton trial의 근본 원인은 추가 진단이 필요하며, 이것을 외부 U PASS나
|
||
Hex8 physical mass/invariant 검사로 닫지 않는다. 종료 body/source 경로와 별도의
|
||
unused manufactured force-rate 병진 oracle 오류는
|
||
[HHT 독립 검토](../hht-implicit-dynamics/implementation-numerical-review.md)의
|
||
2026-10-12 current C08b 절을 따른다. 전체789 CTest의 종료 판정은 여전히 대기다.
|
||
|
||
후속 HHT-LM-NR-002 병진 force-rate oracle 오류는 두 계수 수정과 private Debug
|
||
RED(native1)/GREEN(native0)·pointwise(native0) 근거로 닫혔다. 상세와 shared 전체
|
||
binary 재빌드 범위는 같은 HHT 독립 검토의 force-rate oracle 수정 절을 따른다.
|
||
C08b runtime finding과 C08a 시간정확도 실패를 해소한 결과는 아니다.
|
||
|
||
후속 private C08b trace는 h=1/256, increment56, Newton iteration3,
|
||
t=0.21875에서 internal node4의 finite total rotation norm
|
||
`3.8630136368942867 rad>pi`를 직접 확인했다. 따라서 immediate principal-chart
|
||
이탈은 확정됐으나 큰 Newton trial의 근본 원인은 미확정이다. 상세 identity와
|
||
evidence 경계는 HHT 독립 검토의 C08b private trace 절을 따른다. 해당 finding은
|
||
OPEN이며 source/tolerance 변경이나 추가 실행으로 전체 PASS를 주장하지 않았다.
|
||
|
||
### 2026-10-12 전체 실행에서 추가 발견한 두 stale fixture
|
||
|
||
Active serial 전체 로그에서 앞의 shell C08a/C08b 외에 test93
|
||
`RejectsOverflowingOriginalPencilValidationScale`와 test238
|
||
`SolidBindingPreservesThreeComponentsAndReferenceMass`의 FAIL을 확인했다.
|
||
따라서 현재 확인한 실패는4개이며 앞의 두 shell 실패만으로 전체 결과를 요약할 수
|
||
없다. 전체 실행은 아직 종료하지 않았고 최종 native/집계는 대기다. 기존38-case
|
||
focused filter에는 이 두 cases가 없었으므로 당시 PASS는 해당 coverage가 아니다.
|
||
|
||
**HEX-LM-NR-001 — source corrected, focused execution pending: overflow fixture.**
|
||
E=3e306, rho=2, axis half-lengths=(1,2,3), nu=.25에서 새 `M_L=12*I24`다.
|
||
독립 tensor-polynomial K 적분과 normalized dense eigensolution으로
|
||
`||K||F/E=9.235553192303684`, `||K||inf/E=9.755555555555556`,
|
||
`max|Kij|/E=1.4037037037037037`, `lambda_max/E=0.6304620575193911`을 얻었다.
|
||
`||M||F=58.78775382679627`이므로 최대 mode의 validation matrix scale은
|
||
`46.29900142688912*E`다. 기존3e306은 이 scale도 finite여서 성공 반환이
|
||
production guard 오류라는 근거가 없다. Consistent 당시 all-odd Walsh mode의
|
||
overflow 가정은 채택된 lumped fixture에서 유지되지 않는다.
|
||
|
||
| 독립 산술량 | E=3e306 | 제안·수정한 E=4e306 |
|
||
| --- | ---: | ---: |
|
||
| 최대 local K entry | `4.211111111111111e306` | `5.6148148148148146e306` |
|
||
| lambda_max | `1.8913861725581735e306` | `2.5218482300775645e306` |
|
||
| `||K||F` | `2.770665957691105e307` | `3.6942212769214736e307` |
|
||
| `lambda_max*||M||F` | `1.111903447037563e308` | `1.4825379293834174e308` |
|
||
| 위 두 scale의 FP64 합 | `1.3889700428066735e308`, finite | nonfinite |
|
||
| `||K||inf/(4/9)` | `6.585000000000001e307` | `8.780000000000002e307`, finite |
|
||
|
||
Matrix-scale overflow의 경계는 E 약`3.882790296678553e306`이며 raw enclosure
|
||
division의 경계 약`8.189945944703032e306`와 분리된다. 기존 mass roundoff guard의
|
||
작은 차감은 후보4e306의 enclosure 여유를 뒤집지 않는다. 따라서 E만4e306으로
|
||
바꾸면 local K·lambda·enclosure를 finite로 유지하면서 기존 original-pencil
|
||
nonfinite-scale gate를 실제 자극한다. 이는 현재 연산 순서의 intermediate
|
||
matrix-scale overflow 검사이며 물리 eigenvalue 자체가 무한이라는 주장이 아니다.
|
||
Owner가 E 한 값과 highest-mode 주석을 수정했다. 실제 candidate FEAST/guard 실행은
|
||
아직 확인하지 않았고 diagnostic code·기존`1e-10`·finite gate를 바꾸지 않는다.
|
||
|
||
**HEX-LM-NR-002 — source corrected, focused execution pending: factory oracle.**
|
||
단위 cube·rho2의 full-row lumping은24 diagonals 각각0.25, offdiagonals exact0,
|
||
한 병진방향 total mass2다. 실행 body의 `M(0,3)=0`은 이 계약과 일치한다.
|
||
기존 test의 consistent `2/54` 기대가 잔존했다. Owner는 diagonal 기존 absolute
|
||
`1e-15`, total 기존`1e-13`을 유지하고 모든 offdiagonal을 exact0로 검사하도록
|
||
수정했다. 비교 기준을 완화한 수정이 아니다. Factory 생성·source identity/DOF
|
||
검사와 zero linear response도 보존된다.
|
||
|
||
닫힌 두 실패 body와 독립 산술/source hash 자료는
|
||
`.dryforge/lumped-mass-adoption-20261011/independent-hex8-stale-fixture-review.json`이다.
|
||
현재 공유 전체 binary에는 후속 test-only 수정이 반영되지 않았다. 종료 뒤 rebuild와
|
||
focused 실행 전까지 이 두 findings의 실행 폐쇄를 주장하지 않는다. Required Hex8
|
||
원본5개의 bounded 외부 PASS와 새 전체 회귀 FAIL/진행 상태를 구분한다.
|
||
|
||
### 2026-10-12 최종 종료 로그와 fixture 폐쇄
|
||
|
||
전체 serial MSVC x64 Debug CTest가 자연 종료했다. 원시789개 결과를 직접 재집계하고
|
||
summary/native/hash에 대조하여 **784 PASS / 4 FAIL / 1 SKIP, native8**을 확인했다.
|
||
Elapsed는9131.26초다. FAIL은 shell C08a, shell C08b, 위 overflow fixture,
|
||
factory fixture이며 SKIP은 `C04aFinestReductionComparisonIsNumericallyResolved`다.
|
||
이로써 전체 실행 대기는 종료된 **FAIL**로 갱신된다. 원래4개의 실패 body와
|
||
skip을 삭제하거나 후속 성공으로 소급 변경하지 않는다.
|
||
|
||
**HEX-LM-NR-001 및 HEX-LM-NR-002 — CLOSED.** 공유 binary의 최종 rebuild native0
|
||
이후 configured CTest에서 E=4e306 original-pencil nonfinite guard와 updated
|
||
factory full24 diagonal/offdiagonal 검사2개가 모두 PASS/native0다.
|
||
`final-stale-fixtures.log` 및 native 기록으로 실제 configured 실행을 확인했다.
|
||
새 HHT force-rate derivative와 기존 pointwise oracle2개도 별도 configured
|
||
CTest에서 PASS/native0다. 이 후속4개는 이전 shared binary의 전체789 실행과
|
||
구분한다. 최종 discovery790을 확인했지만 **전체790은 재실행하지 않았다.**
|
||
|
||
전체 전후 production190 files와 original reference16 files의 동일 inventory/hash를
|
||
대조하고 현재 파일도 전부 재해시했다. 최종 unit binary SHA는
|
||
`4e39c8992a527366e66ea295bf4598a068ca44456fc32c1ab973d2376759c11a`이며 actual
|
||
파일과 manifest가 일치한다. `final-oracle-identities.json`의 force-only note는
|
||
실제3개 test TU 변경을 모두 기술하지 못한다. 원시 note를 변경하지 않고 별도
|
||
`final-test-identities.json`이 누락을 명시 정정했으며3개 source·record hash도
|
||
독립 확인했다. Production·원본·tolerance/gate 변경을 후속 test 수정에 섞지 않았다.
|
||
|
||
닫힌 전체/focused/identity 감사는
|
||
`.dryforge/lumped-mass-adoption-20261011/independent-final-regression-review.json`이다.
|
||
Hex8의 두 stale fixture findings는 폐쇄됐지만 HHT C08a 정확도/noise 문제와
|
||
C08b principal-chart Newton failure는 **OPEN**이다. Final focused4 PASS를
|
||
전체 green이나 shell 시간정확도 해결로 확대하지 않는다. Reviewer는 추가
|
||
build/test·source 수정 없이 읽기 전용 감사와 보고서 정적 검토만 수행했다.
|