diff --git a/docs/hex8-structural-analysis/PRD.md b/docs/hex8-structural-analysis/PRD.md index da805d9..536629b 100644 --- a/docs/hex8-structural-analysis/PRD.md +++ b/docs/hex8-structural-analysis/PRD.md @@ -448,16 +448,35 @@ HHT 식·기준 consistent M·입력·고정 schedule·100회·Si/exact-zero· 외부 tolerance는 유지한다. 아래 구현·검증 checklist는 이 승인만으로 완료되지 않는다. - [x] 승인된 체적 평균 수식·입출력·numeric controls·원본 mapping 정리 및 독립 numerical review 완료 -- [ ] 체적 평균 Hex8 K0/consistent M/비선형 f/Kmat/Kgeo/Kt·형상·복구 kernel 검증 +- [x] 체적 평균 Hex8 K0/consistent M/비선형 f/Kmat/Kgeo/Kt·형상·복구 kernel 검증 - [x] Solid Domain/parser/3N DOF/ordered assembly/amplitude 검증 -- [ ] 체적 평균 선형·비선형 정적 accepted state/반력/잔차 검증 -- [ ] 체적 평균 generalized consistent-mass frequency·최저 N·original-pencil 검증 -- [ ] 체적 평균 선형·비선형 HHT u/v/physical a·시간수렴·수지 내부 검증 -- [ ] 체적 평균 공식 HDF5/CLI/self-check/실패 final 보존 검증 -- [ ] 정적2·동적2 원본 필수 family 비교 PASS +- [x] 체적 평균 선형·비선형 정적 accepted state/반력/잔차 내부 검증 +- [x] 체적 평균 generalized consistent-mass frequency·최저 N·original-pencil 내부 검증 +- [x] 체적 평균 선형·비선형 HHT u/v/physical a·시간수렴·수지 내부 검증 +- [x] 체적 평균 공식 HDF5/CLI/self-check/실패 final 보존 내부 검증 +- [x] 정적2·동적2 원본 필수 family 비교 PASS - [ ] 사용자 원본 최저10 modal Value 제공 및 필수 비교 PASS -- [ ] 최신 전체 MSVC Debug build/CTest·기존 baseline 대조 완료 -- [ ] Independent numerical/physics blocker0·범위/한계/evidence 기록 완료 +- [x] 최신 전체 MSVC Debug build/CTest·기존 baseline 대조 완료 +- [x] Independent numerical/physics blocker0·범위/한계/evidence 기록 완료 + +체적 평균 구현은 frozen `b2abd739`를 root `18b36c1`로 연결했다. 작성자 관련150/150, +시간수렴3 GTests/4물리 사례 및 최종 실제 재컴파일3/3은 native build/CTest0/0이다. +모든 u/v/physical a 관측 차수는1.98022 이상으로 기존1.8 기준을 충족했다. 독립 numerical와 +작은 사례 physics 검토는 해당 범위의 bounded PASS다. Root 연결 후 kernel·frequency· +공식 출력 관련65/65도 native build/CTest0/0이다. 새로운 다섯 원본 CLI는 모두 native0으로 +자연 종료했다. 제외 없는 전체787 CTest도 자연 종료했으며 native8, +784 PASS·기존 Shell FAIL2·SKIP1이다. 기존617개를 보존했고 추가170개는 모두 PASS다. +새 예외는0이며 전체 green은 아니다. 두 기존 실패의 metric body는 baseline과 동일하고, +SKIP은 보존된 상세 출력이 없어 이름·상태의 동일성만 확인했다. +새 선형·비선형 정적 원본의 U1326/RF51/S14400은 각각 필수 비교 native0으로 PASS했다. +새 고유치 공식 readback은 precheck PASS이나 modal Value 부재로 비교 native2·NOT RUN이다. +새 두 동적 원본도 각각101개 U family 비교 native0·실패 행0개다. 두 동적 원본의 수치·물리 +독립 검토도 실제101 endpoint에 한정한 bounded PASS다. 전체 Python은 기존 import의 +collection5 오류/native2·실행0개다. Modal 비교 부재와 기존 회귀 예외는 이 통과로 없어지지 않는다. + +공간수렴 증거는 실제 두 축을 세분화한 지정 굽힘장 에너지다. 평형 cantilever는 길이 +방향만 세분화하고 두께/폭은2요소로 고정한 tip 추세이며 평형해의 공간차수 증거가 아니다. +정규 brick rank와 검증한 warped 사례를 모든 admissible warped cell로 확대하지 않는다. Local kernel과 입력·3N mapping은 독립 검토 및 연결 후 관련180개 검사를 통과했다. 정적 구현 `a34466f`의 관련98개와 고유치 구현 `0e07b4d`의 관련48개 검사가 각각 diff --git a/docs/hex8-structural-analysis/README.md b/docs/hex8-structural-analysis/README.md index 69e7274..51efabc 100644 --- a/docs/hex8-structural-analysis/README.md +++ b/docs/hex8-structural-analysis/README.md @@ -3,7 +3,12 @@ 개인 연구용 FESA에 8절점 육면체의 선형 강성, Total Lagrangian–StVK 기하비선형 내력·접선 강성과 기준 형상의 consistent 질량을 추가한다. 요소당 병진 자유도는24개이며 강성·질량·복구에2×2×2 reference 적분점을 사용한다. 2026-10-10 승인으로 deviatoric 항과 -요소 평균 infinitesimal/Green trace 체적 energy를 사용한다. 변경본 구현·재검증은 진행 중이다. +요소 평균 infinitesimal/Green trace 체적 energy를 사용한다. 변경본 구현·내부 검증은 완료했고 +두 정적 원본의 U/RF/S 및 두 동적 원본의101-frame U 필수 비교도 PASS다. +실제 정적·동적 원본의 독립 수치·물리 검토도 bounded PASS다. 전체787 CTest는 +784 PASS·기존 Shell FAIL2·SKIP1(native8)으로 종료했고 추가170개는 모두 PASS다. +전체 green은 아니며 modal Value 원본은 대기 중이다. 전체 Python도 기존 collection5 +오류로 native2·실행0개다. 선형/비선형 정적, consistent-mass frequency, 선형/비선형 HHT 동해석을 typed state에서 공식 HDF5와 CLI까지 연결한다. diff --git a/docs/hex8-structural-analysis/io.md b/docs/hex8-structural-analysis/io.md index bce3905..943357d 100644 --- a/docs/hex8-structural-analysis/io.md +++ b/docs/hex8-structural-analysis/io.md @@ -48,8 +48,8 @@ repository-conforming 이름 조정은 허용하며 physics/schema 수정은 아 - `Hex8Element`는 기존 Element interface의 linear `ComputeStiffness`와 `Recover`를 제공한다. Create 입력은 internal element index, source/local layout, 기준 좌표8×3, 기존 isotropic - elastic material와 optional density다. 생성에 아직 없는 Solid Domain/section 타입을 요구하지 - 않아 T2/T3를 분리한다. Layout은8 source-order nodes×UX/UY/UZ다. + elastic material와 optional density다. 생성은 Solid Domain/section 정의 대신 이 local + 입력에 의존한다. Layout은8 source-order nodes×UX/UY/UZ다. - Explicit `EvaluateLinear(u)`/`EvaluateNonlinear(u)`는 immutable element의 local u[24]를 받아 f[24], Kmat/Kgeo/Kt[24,24], strain energy와8 typed integration-point rows를 반환한다. Linear은 새 체적 평균 energy의 zero Hessian material=K0/geo=0, diff --git a/docs/hex8-structural-analysis/lessons.md b/docs/hex8-structural-analysis/lessons.md index 82592a2..283e2bc 100644 --- a/docs/hex8-structural-analysis/lessons.md +++ b/docs/hex8-structural-analysis/lessons.md @@ -291,3 +291,19 @@ energy/Hessian 후보가 차이를 설명하는 근거다. Stress만 평균화 source/result의 hardlink·symlink alias도 보호하고, 잘못된 HDF rank는 failed precheck로 기록해야 한다. Source path는 writer와 같은 lexical 정규화를 사용하며 물리적 symlink 대상으로 identity를 바꾸지 않는다. 이 세 문제는 안전한 behavior RED와 최종124개 검사로 확인했다. + +## 체적 평균 energy의 독립 oracle와 실패 해석 + +첫 weighted warped fixture는 weighted/unweighted 평균의 차이가 거의 없어 판별력이 +부족했다. 형상과 비균일 변위를 수정한 oracle는 이전 pointwise 구현에서7/7 실패하고 +새 식에서 통과했다. 독립 검증 fixture 자체의 실패를 production 수식 오류로 단정하지 +않고, 실제 weighted 평균과 cross-GP Hessian을 판별하는지 먼저 확인한다. + +중앙 차분 step sweep에서는 가장 작은 step에서 오차가 계속 줄어드는 경우도 있다. +최솟값이 반드시 중간 step에 있어야 한다는 가정은 정확한 접선을 실패시킬 수 있다. +Analytical energy 미분과 차분 오차·절단항을 함께 확인한다. 이전 실패 로그와 수정 후 +150개 검사 및 시간수렴 기록은 [verification](verification.md)에 구분해 보존했다. + +고정 두께1요소의 길이 refinement는 mean-bulk discretization의 continuum bias를 +없애지 않는다. 두 축 지정 굽힘장 energy의 수렴과 고정 두께/폭 cantilever tip 추세를 +서로 다른 증거로 기록한다. 두 결과를 평형해의 동일 공간차수 증거로 합치지 않는다. diff --git a/docs/hex8-structural-analysis/numeric-controls.md b/docs/hex8-structural-analysis/numeric-controls.md index ef37d7a..12e5624 100644 --- a/docs/hex8-structural-analysis/numeric-controls.md +++ b/docs/hex8-structural-analysis/numeric-controls.md @@ -10,7 +10,10 @@ 정적·고유치와 기존 계산은 Float64다. 사용자 승인 [정밀도 변경안](precision-proposal.md)에 따라 Solid HHT의 내부 물리 상태와 힘·rates·수지·gate 계산은 normalized high+low를 사용한다. Float64 sparse backend와 반올림 출력은 유지하며, 전체 상태 gate를 rounded 출력만으로 -재계산한 gate PASS로 표현하지 않는다. 구현 검증은 아직 진행 중이다. +재계산한 gate PASS로 표현하지 않는다. 변경본 내부 검증과 정적2·동적2 원본 비교는 +완료했다. 전체787 회귀 실행·baseline 대조도 완료했으나 기존 FAIL2·SKIP1을 유지한다. +Modal 비교는 원본 대기다. 실제 완료 범위는 +[PRD checklist](PRD.md#현재-checklist)를 따른다. Whole-cell 인증은 outward interval coefficient bounds와 subdivision이며 estimate-only positive 검사와 abs(det J)를 허용하지 않는다. Depth default10, 처리한 cell budget default65536이며 uncertain 시 fail-closed다. 이 값은 diff --git a/docs/hex8-structural-analysis/numerical-review.md b/docs/hex8-structural-analysis/numerical-review.md index 64a5273..5ce4ad2 100644 --- a/docs/hex8-structural-analysis/numerical-review.md +++ b/docs/hex8-structural-analysis/numerical-review.md @@ -175,3 +175,70 @@ evidence이며 승인된 변경본의 numerical PASS가 아니다. 실제 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)를 따른다. diff --git a/docs/hex8-structural-analysis/physics-review.md b/docs/hex8-structural-analysis/physics-review.md index 7aea862..ef6c979 100644 --- a/docs/hex8-structural-analysis/physics-review.md +++ b/docs/hex8-structural-analysis/physics-review.md @@ -105,3 +105,91 @@ strain 최대차1.51e-18이다. Energy178.762694318679와0.5F·u178.762694317263 항 때문에 이전 pointwise continuum에 대한 bias가 남을 수 있다. 그 discrete limit 관찰을 실제 두께/길이 공간수렴으로 보고하거나 기준을 새 limit로 바꿔 continuum PASS라 하지 않는다. 선형 원본에 맞춘 별도 후보와 수식 검토는 변경본 물리 검증을 대신하지 않는다. + +## 체적 평균 변경본의 실제 정적 원본 물리 대조 + +Root `18b36c1`의 새 공식 HDF5를 별도 산술로 재구성했다. Solver 재실행·추가 solve +없이 원본 geometry·하중·BC와8개 reference 가중치에서 동일 mean energy의 구성식, +element force·moment 및 전역 full residual을 계산했다. 두 원본 비교의 전 row PASS는 +[verification](verification.md)에 있으며 여기의 물리 판정 범위와 구분한다. + +선형300개 요소의 실제 strain·stress 최대차는1.23937e-18/1.91798e-7이고 구속 RF +최대차1.746e-10 force다. Native energy186.35946178395656과 독립 energy의 상대차는 +6.10e-16, `0.5F·u`와의 상대차는8.408e-13이다. 자유 잔차 최대2.604e-7 force를 +포함한 전역 ledger의 force/reference moment 잔여는7.493e-11/1.352e-10 이하다. +Local force/moment의 uncancelled 비율은2.45e-16/4.24e-16 이하다. 실제 trace의 +요소 내 분포를 보존하면서 동일 요소 hydro stress는 평균 trace 식과 일치한다. + +비선형10개 frame의300개 요소를 모두 재구성했다. Actual Green·Cauchy 최대차는 +9.17972e-20/1.33878e-8 stress-unit이고 native/독립 energy의 상대차는9.42e-16 +이하다. 최종 native energy186.3185317087937이다. PK2 hydro 항은 요소별 평균이며 +actual Cauchy hydro는 F/J mapping 때문에 요소 내 변한다. Actual Green을 평균 +strain으로 치환하지 않았다. Local force/current moment 비율은2.28e-16/6.75e-16 +이하이고 전역 free residual을 포함한 ledger 잔여는3.12724e-10 force/ +6.46502e-10 force·length 이하다. + +비선형 최종 free residual 최대35.3467066284 force는0이 아니다. 독립 재구성과의 +최대차는2.24691e-9 force다. 승인된 static 로그의 최종 비율은 +35.3467/100017=.000353407이고10개 frame 모두 기존.01 기준 이하(최대.00353023)다. +총 F+RF 및 current moment의 비영 결함은 이 free residual로 설명된다. 따라서 판정은 +기존 static acceptance 내 구성식·평형 ledger의 bounded PASS이며 exact equilibrium +통과가 아니다. 비선형의 `0.5F·u`는 진단값이며 energy identity로 사용하지 않는다. + +Source/reference/input-copy/HDF/native/comparison 로그의 전후 SHA와 independent +script·native0·JSON·raw 배열은 로컬 `.harness/hex8-evidence/mean-volume/`의 +`physics-linear/`, `physics-nonlinear/`에 보존했다. 작은 사례의 내부 시간수렴·수지 +검토와 실제 두 정적 원본의 판정은 새 전체 동적 이력이나 modal 외부 비교를 대신하지 않는다. + +## 체적 평균 변경본의 실제 선형 동적101 endpoint 대조 + +새 LINE dynamic HDF5의101개 endpoint를 독립 재구성했다. Source/time/amplitude· +model/schema/point identity 및 initial exact0·구속 U/V/a/A와 free RF exact0을 확인했다. +Actual stress/infinitesimal strain 최대차는4.44961e-7/2.30790e-18이다. 별도의 상대변위 H +표현에서도 회복값이 일치한다. 기준 geometry의 consistent M을 모든 frame에 고정 사용하고 +별도8점 직접 적분의 kinetic energy·linear/current angular momentum과도 대조했다. +Native strain/kinetic energy 최대차1.13687e-13/2.13163e-14 force·length, +endpoint work와 balance error 최대차는 각각2.27374e-13이다. + +공개 α=-.05,β=.275625,γ=.55의 RN64 상태 갱신 결함 비율은2.060e-16 이하이고 이전 +physical force를 포함한 weighted identity도 대조했다. Stored free residual 최대 +6.20169e-19와 RN64 state로 재구성한 최대1.10905e-7 force는 다른 관측이다. 후자의 +cancellation/계수 반올림을 내부 high+low gate 실패나 통과의 근거로 사용하지 않는다. +Physical RF는 `Ma+f-F`의 constrained projection과 일치한다. 전체 force ledger 차이는 +5.76479e-10 force 이하다. 선형 K0의 현재 arm 모멘트는 일반적으로 `Σu×f` 때문에 +비영이며 최대287.099763335 force·length다. 이를 포함한 moment ledger 차이는 +3.42095e-9 force·length 이하다. + +최종 U178.92766323729418,T.27177166481189713,W257.34360955254886에서 +`B=T+U-T0-U0-W=-78.14417465044276` force·length다. 첫 증분 B는+1.8941761591671697이다. +이 α와 endpoint trapezoid work에서 exact/단조 energy conservation을 요구하거나 +관측값을 보정하지 않는다. 판정은 실제101 endpoint의 구성식·질량·상태 갱신·물리 +observable 계약에 한정한 bounded PASS다. 이 원본에는 외부 U CSV만 있으므로 stress/RF +재구성을 외부 stress/RF 비교 통과로 보고하지 않는다. 임의 step의 시간 정확성·비선형 +원본·전체 기능은 별도 범위다. Solver 재실행 없이 원본/copy/HDF/log의 SHA를 보존했고 +자료는 `.harness/hex8-evidence/mean-volume/physics-dynlinear/`에 있다. + +## 체적 평균 변경본의 실제 비선형 동적101 endpoint 대조 + +새 TL dynamic의 모든101 endpoint·300개 요소를 독립 계산한 결과도 bounded physics +PASS다. Actual Green·mean-law PK2/P/Cauchy·내력·에너지와 고정 reference M의 kinetic +energy·운동량·현재 angular momentum·RF·잔차·HHT 갱신을 대조했다. 응력/actual Green +최대차는2.08300e-7 force/length² 및8.46980e-19, strain/kinetic energy 최대차는 +1.13687e-13/1.42109e-14 force·length다. 별도8점 질량 직접 적분도 일치했다. +입력·복사본·HDF·native/comparison/log/UCSV의 전후 SHA를 보존했고 두 독립 계산은 +native0이다. 자료는 `.harness/hex8-evidence/mean-volume/physics-dynnonlinear/`다. + +Actual Green trace의 요소 내 spread 최대1.84387e-5를 보존했다. PK2 isotropic part의 +point spread6.98492e-10과 Cauchy hydro spread53.12235는 F/J mapping으로 구별된다. +관측 Gauss-point detF는.9999790347721854…1.0000212541790632이며 whole-cell +certificate를 다시 증명한 것은 아니다. Stored free residual 최대4.42274e-12와 RN64 +재구성 최대9.96777e-8 force를 구분한다. 반올림 HDF로 strict paired gate의 통과나 +실패를 판정하지 않는다. Physical RF 최대차3.49246e-10 force, 전체 force/current +moment ledger 차이8.18364e-10 force/2.47995e-9 force·length다. TL 내부 current moment +최대2.60364e-9는 기준 arm과 `Σu×f`의 상쇄를 확인하며 LINE의 현재 모멘트와 구별된다. + +최종 U178.96011630302056,T.2729454262030376,W257.36751015513966에서 +B=-78.13444842591608 force·length이며 첫 증분 B는+1.8903734544186321이다. +Work/balance 최대차는1.70530e-13/2.13163e-13이다. Exact conservation·매 frame 단조 +감소·비선형 `U=.5Fᵀu`는 주장하지 않는다. 이 판정은 실제 원본의 구성식·질량·상태 +갱신·물리 observable에 한정한다. 외부 RF/S 비교, 임의 step 시간차수, arbitrary warped +cell, 큰 변형 안정성 및 전체 기능 PASS는 범위 밖이다. diff --git a/docs/hex8-structural-analysis/verification.md b/docs/hex8-structural-analysis/verification.md index 68d71ac..7f16c24 100644 --- a/docs/hex8-structural-analysis/verification.md +++ b/docs/hex8-structural-analysis/verification.md @@ -1,7 +1,8 @@ -# Hex8 original comparison evidence +# Hex8 verification and original comparison evidence -This page records T8's comparison-only Python implementation and its observed -results. It does not replace the feature PRD, numerical controls or completion +This page records the build/test evidence, comparison-only Python tool and actual +original results. Historical pointwise results and the approved mean-volume change +are recorded separately. It does not replace the feature PRD, numerical controls or completion checklist. The comparator reads official rounded Float64 quantities; it does not recompute the internal high+low solver acceptance gates from those observables. @@ -79,7 +80,7 @@ assumption about the absent original Value file's eventual CSV layout. Actual modal original comparison remains **NOT RUN** until a genuine reference is provided and its semantics and hashes are confirmed. -## Current observations +## 비교기 개발과 변경 전 pointwise 구현의 관측 이력 The initial seven behavior assertions failed before implementation (pytest native exit1). The first expanded suite passed63/63 with native exit0. Those tests include @@ -172,3 +173,96 @@ Approved B replaces the pointwise bulk energy and requires new validation of all five procedures. None of the historical native, internal or reference outcomes above is a validation result for the mean-volume implementation. Originals, tolerances, strict gates and comparator contracts remain unchanged. + +## 2026-10-10 체적 평균 energy 구현과 현재 재검증 + +Frozen 작성자 `b2abd739`를 root `18b36c1`에 연결했다. 두 pass로 reference-volume +가중 trace 평균을 계산하고 같은 energy에서 내력·전체 Hessian·복구 응력을 구한다. +Cross-GP bulk 항과 `S*:delta²E` 기하항을 함께 유지한다. LINE의 K0는 같은 식의 +영변위 Hessian이다. 질량·HHT·strict gate·원본·I/O·허용오차는 변경하지 않았다. + +수정한 weighted warped oracle를 이전 구현에 대입한7개 검사는 모두 실패했다. +변경본 작성자 관련150/150, 시간수렴3 GTests의4물리 사례, 최종 실제 재컴파일3/3은 +각각 native build/CTest0/0이다. u/v/physical a의 최소 관측 차수1.98022는 기존1.8 +기준을 충족한다. Root 실제 재컴파일 후 관련65/65도 native0이다. 정규 brick의 rank, +두 축 지정 굽힘장 에너지 수렴과 고정 두께 cantilever tip 추세는 서로 다른 증거다. +상세 범위는 [수치 검토](numerical-review.md)와 [물리 검토](physics-review.md)에 있다. + +새 공식 CLI는 frozen executable과 byte-identical scratch INP를 사용한다. 아래 두 +정적 해석은 자연 종료 native0이며, 변경 없는 공식 비교기도 각각 native0이다. +Source/model/schema/point/frame/finite 사전검사와 각 family의 모든 row가 통과했다. + +| 원본 / blocking quantity | Scalars | Failing rows | Maximum absolute error | RMS/S | +| --- | ---: | ---: | ---: | ---: | +| linear static U | 1326 | 0 | 6.096370478748947e-11 | 9.317898154374918e-9 | +| linear static RF | 51 | 0 | .014746726665180176 | 7.3098163267228364e-9 | +| linear static S | 14400 | 0 | .12245691940188408 | 3.425934236751431e-9 | +| nonlinear static U | 1326 | 0 | 9.832466303596647e-10 | 2.169911561350724e-7 | +| nonlinear static RF | 51 | 0 | 12.826179522729944 | 6.728092996221331e-6 | +| nonlinear static S | 14400 | 0 | 93.34994950843975 | 9.338899878251489e-6 | + +새 HDF5 SHA256은 linear `023769e50d05226ef8defe87e29bc9046fbdd5071783007ebb39a49fd9d7d617`, +nonlinear `2acb3471c7799597d554d4d9ee224e8c611522866808f38b2b2c202e0f98a4bd`다. +Frequency CLI도 native0으로 종료했고 공식 readback 사전검사는 PASS다. 새 결과 SHA는 +`f6203936883df7f27e86a20311726b7e59fefa117e5f9fa67f71bdf63ec2e4cb`다. +원본 modal Value 부재로 비교는 native2·NOT RUN이며 수치 통과가 아니다. + +새 선형 동적 CLI가 native0으로 자연 종료했고101-frame 사전검사와101개 U family가 +모두 PASS다(비교 native0). 총133926개 scalar의 실패 행은0개다. 초기 exact-zero family를 +포함하며100개 nonzero-scale family의 최대 RMS/S는.0031316511389477947, +전체 최대 absolute error는1.3395048822648645e-5다. 마지막 RMS/S는.001392775677333779다. +Actual HDF SHA는 `5476c557bc8e1c0a1e8b57a1cc8d763eb822a47e27aa2b2723fcbdc2246f9b40`다. +이 외부 변위 비교는 rounded HDF만으로 내부 high+low strict gate를 재계산한 검사가 아니다. + +새 비선형 동적 CLI도 native0으로 자연 종료했고101-frame 사전검사 및101개 U family가 +모두 PASS다(비교 native0). 총133926개 scalar의 실패 행은0개다. 초기 exact-zero와 +100개 nonzero-scale family를 구분했으며 최대 RMS/S는.003133373067174733, +전체 최대 absolute error는1.3397499223151595e-5, 마지막 RMS/S는.0013958914416137816이다. +Actual HDF SHA는 `023b4558a28f8d9365f6b11346a6cb4a5d2faafa68607c5c56bbf226fe816210`다. +다섯 새 공식 CLI queue는 wrapper0으로 자연 종료했고 원본13개 SHA를 보존했다. +독립 검토의 범위는 해당 수치·물리 검토 문서를 따른다. + +제외 없는 전체787 CTest는2026-10-11 자연 종료했다. MSVC x64 Debug configure/build는 +native0/0이며 CTest는 native8:784 PASS·2 FAIL·1 SKIP이다. 기존617개가 모두 유지됐고 +추가170개는 모두 PASS이며 새 예외는0이다. 두 기존 Shell 실패의 수치 로그20/30줄은 +baseline과 정확히 같다. SKIP은 이름·상태가 동일하지만 output-on-failure raw에 상세 +본문이 없어 그 metric 검증은 NOT VERIFIED다. 전체 green으로 보고하지 않는다. +정확한 CLI/비교 명령·native record· +원본/copy/result SHA·전 row report는 로컬 `.harness/hex8-evidence/mean-volume/`의 +`original-cli/`, `comparisons/`, `integrated-focused/`, `full/`에 보존한다. + +동일 revision에서 전체 Python 명령 +`uv run --with h5py --with pytest python -B -m pytest -v -rs`도 다시 실행했다. +기존 `msvc_harness`·제거된 `scripts.hooks` import의 collection5 오류로 native2, +실행0개다. `.harness/hex8-evidence/mean-volume/python-full/`의 native 기록을 따른다. +기존 실패를 제외하거나 폐기된 절차를 복원하지 않았으며 전체 Python PASS가 아니다. + +## 2026-10-11 전체 재검증 종료 기록 + +전체 C++ 검증은 설치된 MSVC x64와 dependency 환경에서 아래 preset backend 명령을 +제외 없이 실행했다. `.harness/config.json`이 없고 generic runner는30분 deadline을 +사용하므로 수시간의 전체 실행은 직접 backend로 완료했다. `scripts/execute.py`의 별도 +실행 성공을 주장하지 않는다. 실제 argv·시각·native 종료 코드는 `full/`에 보존했다. + +```powershell +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure +``` + +전체 실제 시간은16839.26초다. 기존 실패는 +`HhtShellPhysics.C08aRigidManufacturedOrbitFullCoordinateTimeConvergence` 및 +`HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants`, +SKIP은 `HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved`다. +기존617개와 새170개의 discovery·실행 ordinal·status 및 종료 artifact SHA 대조는 +`full/independent-closure-summary.json`에 있다. 다섯 CLI·네 실제 원본 비교·modal NOT RUN· +Python collection 오류와 원본13개/frozen binaries 보존을 함께 기록한 최종 자료는 +`.harness/hex8-evidence/mean-volume/closure.json`이다. 독립 감사와 실제 원본 물리 복구의 +bounded 판정·한계는 [수치 검토](numerical-review.md), [물리 검토](physics-review.md)를 따른다. + +종료 후 독립 전체 evidence 감사도 native0·finding0이다. 별도22개 artifact SHA와 +세 실제 테스트 실행 파일의 중간 관측/종료 SHA, 모든 discovery/실행 행과 기존 상대 +순서·status를 대조했다. 자료는 `final-evidence-audit-full/`에 있다. 두 실패 출력은 +elapsed-ms 표기만 제외해 정확히 동일하다. 이 감사 PASS는 CTest native8이나 modal +NOT RUN을 통과로 재분류하지 않는다. diff --git a/docs/tracking/findings.md b/docs/tracking/findings.md index 10c9731..d0ba212 100644 --- a/docs/tracking/findings.md +++ b/docs/tracking/findings.md @@ -1,17 +1,27 @@ # 미해결 문제 -## Hex8 표준 full8 정식화와 정적 원본의 불일치 +## Hex8 이전 표준 full8 정식화의 원본 불일치와 변경 후 검증 -- 조건·현상: `e2c3c5b`의 실제 CLI가 byte-identical scratch 입력 +- 변경 후 관찰: 승인된 체적 평균 구현 `18b36c1`의 새 두 정적 CLI는 native0이며, + 공식 비교기의 source/model/schema/point/frame/finite 사전검사와 U/RF/S 모든 행이 + 통과했다(native0). 실제 출력의 독립 mean energy·내력·응력·반력 ledger도 bounded + physics PASS다. 비선형 free residual은 기존 static 기준 내 비영 값이며 exact equilibrium이 + 아니다. 상세 수치는 [새 verification](../hex8-structural-analysis/verification.md#2026-10-10-체적-평균-energy-구현과-현재-재검증)에 있다. + 정적 불일치는 변경본에서 해결됐고 새 두 동적 원본도 각각101-frame U 비교 PASS다. + 실제 원본의 독립 수치·물리 검토도 bounded PASS다. 전체787 회귀는784 PASS·기존 + FAIL2·SKIP1(native8)으로 종료했고 추가170개 모두 PASS·새 예외0이다. 전체 green은 아니며, + modal Value 원본 부재는 별도 완료 조건이다. 아래 과거 실패 근거는 보존한다. + +- 과거 조건·현상: `e2c3c5b`의 실제 CLI가 byte-identical scratch 입력 `hexa_linearstatic.inp`에서 native exit0으로 공식 HDF5를 생성했다. 원본13개의 SHA와 scratch SHA는 보존됐다. Source step/factor1↔Increment10,442절점·300요소·IntPt1–8, 좌표·tensor·단위·finite를 독립 확인했지만 U1326/RF51/S14400의 RMS/S는 각각 `0.0167395197235`/`0.0681889252819`/`0.0427090341746`으로 공통1%를 초과했다. 행 실패는79/34/7783개다. RF는 전체442행을 먼저 확인한 뒤 구속51성분으로 투영했다. -- 영향: 필수 원본 family PASS와 전체 기능 검증 완료 조건을 충족하지 못한다. +- 당시 영향: 필수 원본 family PASS와 전체 기능 검증 완료 조건을 충족하지 못했다. CLI 성공·내부 평형·HDF5 correctness는 외부 수치 일치와 별개다. 현재 checklist는 [기능 PRD](../hex8-structural-analysis/PRD.md)에 있다. -- 현재 해결하지 못한 이유: 독립 standard full8 `BᵀCB` 조립·solve가 현재 변위와 일치하고 +- 당시 해결하지 못한 이유: 독립 standard full8 `BᵀCB` 조립·solve가 당시 변위와 일치하고 같은 원본 형상·변위의 Gauss 구성식도 현재 stress/strain을 재현한다. 승인된 full8 식을 원본 값에 맞춰 조용히 바꾸거나 tolerance를 완화할 근거가 아니다. 원본 응력의 체적 성분은 요소 평균 trace로 재구성하면 크게 가까워지지만 이것만으로 private algorithm을 증명하지 않는다. diff --git a/docs/tracking/status.md b/docs/tracking/status.md index 3007872..14b7ae9 100644 --- a/docs/tracking/status.md +++ b/docs/tracking/status.md @@ -1,6 +1,6 @@ # 개발 현황 -기준일은 2026-10-10이다. 주목적은 개인 연구용 솔버 개발이며 외부 사용자 배포는 장기 +기준일은 2026-10-11이다. 주목적은 개인 연구용 솔버 개발이며 외부 사용자 배포는 장기 목표다. 아래는 실제 실행과 기능별 계약을 대조한 요약이며 상세 checklist를 대신하지 않는다. 2026-10-04 문서 정리 당시의 기존 기능 기록과 이후 Hex8 개발의 실행 증거를 구분한다. @@ -12,7 +12,10 @@ dev 병합 `858e87b`는 검증한 구현과 동일한 tree이고 별도의 새 Hex8 연결 후 source `1eb9cdd`의 전체 build는 native exit0이며, 발견된780개 CTest의 제외 없는 실행은 native8,777 PASS·2 FAIL·1 SKIP으로 종료됐다. 추가163개는 모두 PASS이며 기존 예외3개의 이름·status·metric body는 baseline과 같다. 이는 이전 pointwise 구현의 -기록이다. 2026-10-10 승인된 체적 평균 energy의 구현과 전체 재검증은 별도로 진행한다. +기록이다. 2026-10-10 승인된 체적 평균 energy는 root `18b36c1`에 연결했고 관련65/65, +작성자150/150과 네 시간수렴 사례가 PASS다. 변경본의 전체787 CTest도 제외 없이 자연 +종료했다(native8:784 PASS·기존 FAIL2·SKIP1). 기존617개를 보존했고 추가170개는 모두 +PASS·새 예외0이다. 두 기존 실패의 metric body는 동일하고 SKIP은 이름·상태만 대조했다. ## 구현과 검증 상태 @@ -24,9 +27,9 @@ Hex8 연결 후 source `1eb9cdd`의 전체 build는 native exit0이며, 발견 | MITC4 frequency | 승인된 첫 구현 완료 기록 | 당시417개 검사·외부 Value5%·독립 검토 PASS, 최신 기존 회귀도 PASS. [S3·정확도 개선](../mitc4-shell-feast-eigen2/README.md#실패와-남은-범위)은 보류 | | HHT 동해석 | 입력부터 HDF5까지 구현, 기능 검증 미완료 | 101-frame U 비교 PASS 기록·UR 경고200건. [두 시간수렴 실패와 잔여 coverage](../hht-implicit-dynamics/README.md#실패시행착오다음-작업) 유지 | | HHT 굽힘 단면력 복구 | 두께 계수 수정됨 | 관련 Debug 14 tests와 원본 HDF5 재생성·독립 식 대조 완료 기록. 전체 동해석 완료와 별개 | -| HHT 관련 전체 CTest | 기존 실패2개·SKIP1개 유지 | Hex8 변경 전 최신780개 검사에서 제외 없이 실행. 기존 metric과 동일하며 전체 green 아님 | +| HHT 관련 전체 CTest | 기존 실패2개·SKIP1개 유지 | 체적 평균 Hex8 변경본의 전체787개를 제외 없이 실행. 두 실패 metric body·예외3개 status가 baseline과 동일하며 전체 green 아님 | | Shell transient heat transfer | 구현·내부 검증 완료, 필수 외부 비교 대기 | [추가139개 PASS·수렴/수지·독립 수치/물리 검토](../shell-transient-heat-transfer/README.md). 기존 NT11은87/729행 수치 FAIL인 diagnostic; 새 모델·CSV 준비 중 | -| Hex8 선형·기하비선형 강성·consistent mass | 승인된 체적 평균 energy 구현·전체 재검증 중 | [기능 PRD](../hex8-structural-analysis/PRD.md)의 범위를 따름. 이전 pointwise 구현은5절차 CLI native0, 두 동적101 endpoint 완료지만 정적 U/RF/S와 동적 U 필수 비교 FAIL. 기존 내부 PASS를 변경본에 승계하지 않음. Modal Value 원본 부재 | +| Hex8 선형·기하비선형 강성·consistent mass | 체적 평균 구현·가능한 원본 비교·전체 회귀 실행 완료, modal 비교 대기 | [기능 PRD](../hex8-structural-analysis/PRD.md)의 범위를 따름. 두 정적 U/RF51/Gauss S와 두 동적101-frame U 필수 비교 PASS. 다섯 공식 CLI native0, 실제 원본 독립 수치·물리 검토 bounded PASS. 전체787=784 PASS·기존 FAIL2·SKIP1, 추가170개 모두 PASS. 고유치 readback precheck PASS이나 modal Value 원본 부재로 비교 NOT RUN. 과거 pointwise 원본 FAIL은 보존 | | Python 검증 실행기 | 구현됨 | 명시 build/test runner와 별도 Python suite가 존재. 일부 운영 계약 검사는 현행 절차와 맞지 않는 기대값을 유지 | | 외부 사용자 배포 | 계획 | 배포 방식·설치·지원 정책과 dependency 재배포 검토가 아직 정해지지 않음 |