diff --git a/docs/abaqus-tolerance/results.md b/docs/abaqus-tolerance/results.md index bfe029a..8f0329c 100644 --- a/docs/abaqus-tolerance/results.md +++ b/docs/abaqus-tolerance/results.md @@ -1,7 +1,8 @@ -# 외부 수렴 정책 실험 결과 — T2 기준 보존 +# 외부 수렴 정책 실험 결과 — T2 기준과 T6 후보 보존 기록일: 2026-10-19. **정상 strict 기준은 확보했으나 전체 실험·물리 검증은 미완료**다. -후보 정책은 아직 구현·측정하지 않았다. 가속률이나 채택 가능성을 주장하지 않는다. +T6 후보는 별도 1증분 개발 진단과 계측 OFF Release 실행물 보존까지 수행했다. +공식 100증분 후보 실행·reference 비교·성능 비교는 미성립이며 가속률이나 채택 가능성을 주장하지 않는다. ## 기준과 원시 증거 @@ -156,3 +157,103 @@ U 통과는 V/a/energy의 외부 검증이나 기존 물리 실패의 해결을 T2 판정은 **기준 보존 완료·개발 진단 한정 확보·전체 검증 미완료**다. 후보 측정, 전체 100증분 개발 비용, 정확 parity 원인 분리와 필수 전체 물리/회귀 검증은 남았다. + +## T6 후보 실행물과 공식 측정 미실행 + +T6 source는 `0c88cb24c84abc4b3561a1e7975df7a4125134f1`, branch는 +`dryforge/tolerance-t6`다. 제품 source와 probe·판정 기준은 수정하지 않았다. +T4 최종 parent `dd54b0a`와 src/include/msvc 및 CMake 설정의 Git identity가 같고, +T4 manifest의 제품 source 5개와 cached probe ON CLI SHA256 +`6C9264282B117A35A46C3550CAE215B096F60B46F0105B929BA9A1979EBF547F`가 일치한다. +T5는 검사와 문서만 변경했다. Source ZIP, 파일 hash, 실행물과 DLL, 실제 명령, +환경·전원 및 raw 자료는 부모 작업공간의 다음 위치에 별도 보존했다. + +```text +.build/tolerance-experiment/go-20261018/ + candidate/source/ # pinned source ZIP·SHA256 + candidate/development-runtime/ # cached probe ON EXE·7 DLL·PDB + candidate/development-one-increment/ # 새 짧은 입력·native exit·로그·HDF5·probe + candidate/runtime/ # 새 full Native Release probe OFF 실행물 + candidate/build/ # ON/OFF compile 기록·OFF 명령·raw·exit + candidate/official-input/ # 정식 INP·CSV의 새 hash 확인 복사, 미실행 + T6/ # preflight·진단 script·metadata·검토 기록 +``` + +[T5 물리 검증](physics-validation.md)의 Release153 결과는 144PASS/8FAIL/1SKIP, +native exit1이다. 독립 D3 두 검사, drilling gradient, C08 pointwise 및 strict algebra +시간 controller 네 실패와 후보 비선형 시간 정확도 R8 미충족이 남는다. +보존 strict C08 대조도 5FAIL이며 이를 후보 정확도 통과로 해석하지 않는다. +계획의 명시된 실패 분기에 따라 같은 긴 실행을 근거 없이 반복하지 않았고, +**공식 dt=.1/T=10/100증분 후보 실행은 시작하지 않았다.** +따라서 후보 공식 elapsed, strict 대비 Δ·speedup, 729 nodes/101 frames 완결 결과와 +정식 9-node U blocking/UR warning reference 판정은 모두 **not-established**다. +T2 strict 공식 6350.7895521초와 아래 개발 시간을 비교하지 않는다. + +## T6 초기화와 1증분 개발 진단 + +T2 `baseline/development-final`의 T=.1/dt=.1 입력을 새 경로에 복사했고 SHA256 +`79D1C09FC5AFB792312F1908E13D71ABC228D98D10B438B91412A9BFA4C95A50`가 같다. +공식 100증분 입력과 별개다. KOKO/Ryzen 7 5800H, 고성능 전원, 기존 thread 환경과 +동일 local polar1/inertia3/mass gate1e-3 및 cached MSVC Release probe ON을 사용했다. +짧은 고유 TMP/TEMP `C:/ft6d`와 새 `FESA_HHT_PROBE_OUTPUT=.../probe.txt`를 설정했다. +상속 GoogleTest 선택 환경은 제거했다. 실행 전 guard는 오래된 MSBuild PID5112를 +발견해 native launch 전에 중단했다. CPU2.640625초 불변·cl/link/solver/test 부재와 +T4/T5 종료 확인 후 idle worker만 제외했고 프로세스는 종료하지 않았다. +두 preflight와 근거를 T6에 보존했으며 guard 대기는 elapsed에 포함하지 않는다. + +실제 native 실행은 1회다. UTC `2026-10-18T18:07:36.7511886Z`부터 +`18:08:41.2302276Z`까지 **64.4754692초**, native exit0이며 새 HDF5는 +2851989 bytes, frame0/1 두 frame이다. 이는 계측 ON 초기화+1증분 개발 시간이고 +공식 시간·전체 비용·후반 증분 비용으로 외삽하지 않는다. + +| 동일 계수 정의의 1증분 진단 | T2 strict ON | T6 candidate ON | +| --- | ---: | ---: | +| outer / inner applied correction | 3 / 1 | 2 / 1 | +| assembly calls | 14 | 12 | +| internal evaluation / failure | 9464 / 3 | 8112 / 3 | +| inertia evaluation | 9461 | 8109 | +| constraint internal evaluation | 6760 | 5408 | +| logical factor | 1274 | 1271 | +| logical solve / RHS | 7516 / 7516 | 7513 / 7513 | + +실제 호출 경계와 forwarding 의미는 T2와 같다. Internal=assembly×676, +inertia=internal−failure, solve=RHS와 exclusive ns 합=procedure inclusive를 +`counter-comparison.json`에서 확인했다. 내부 실패3은 대체 시작 trial의 실패이며 +최종 해석 실패가 아니다. 카운터 감소를 공식 가속률로 변환하지 않는다. + +같은 짧은 입력의 strict ON과 후보 ON HDF5 frame0/1의 40개 numeric dataset을 +shape/type/finite 및 inventory 확인 후 비교했다. 22개는 정확 byte 일치하고 +frame1의18개는 달라 **정확 byte parity는 미통과**다. nodal q/v/physical a/A의 +최대 절대차는 각각 `2.0328790734103208e-20`, `3.552713678800501e-15`, +`5.684341886080802e-14`, `5.684341886080802e-14`이며 energy는 +`8.171241461241152e-14`다. Angular velocity/acceleration·triad·director와 +force/reaction/residual·element 결과도 전체 dataset별 차이를 +`state-differences.json`에 보존했다. 이는 정책 차이의 진단 숫자이며 외부 truth, +정확도 승인 또는 새 parity tolerance가 아니다. T2 ON/OFF의 기존 ULP 차이도 미해결이다. + +## T6 계측 OFF Release 보존과 정적 확인 + +개발 진단 종료 후 VS18.11.0/MSVC14.51.36231 x64에서 전체 +`MSBuild FESA.sln /m:2 /p:Configuration=Release /p:Platform=x64 /p:FesaHhtDevelopmentProbe=false` +를 실행했다. 실제 명령에는 `/verbosity:minimal`만 추가했고 native exit0이다. +기존 Hex8 검사 C4334 경고1개를 보존했으며 검사 실행을 빌드 통과로 세지 않는다. +새 OFF CLI의 SHA256은 +`449196EB79EFAB3C62B8DAC4B73C3C76E97EC76F6A77F9D80CE1EE5C8C1F0CFA`, +pinned source ZIP은 +`BF2D12688F778A8F9010C3FE086AA9D5E226209AAF1893AE84EBE841BF0F9C9B`다. +EXE/PDB/7개 DLL을 `candidate/runtime`에 보존했으며 DLL SHA는 T2 strict와 모두 같다. +ON/OFF solver·CLI compile tlog를 각각 보존했다. OFF solver compile에 probe define이 +없고 `/O2 /Ob2 /MD /fp:precise`를 확인했으며 102개 solver 객체에 +`FESA_HHT_PROBE_OUTPUT` 문자열이 없음을 검사했다. + +OFF unit discovery native exit0,883개이며 ON887개에서 probe4개가 빠진 목록이다. +Field21개와 T4 후보 종료/물리 후속 gate 및 T5 강체 oracle identity가 존재한다. +이는 discovery 확인이며 unit 실행 통과가 아니다. `T6/verification.json`, +`verify-artifacts.raw.txt`, `commands.txt`에 실제 범위·exit·미실행 상태를 남겼다. +정식 INP/CSV 새 복사 hash는 각각 기존 T2의 `B8922243...DFFF5`, +`422ECF17...8C56C5`와 같고 원본 전후 hash도 같다. 공식 복사본은 실행하지 않았다. +문서 diff/링크/기록 숫자를 정적으로 검토했으며 tracked 변경은 이 문서뿐이다. + +T6은 공식 장시간 성능과 reference 통과를 확정하지 못한 **DONE_WITH_CONCERNS**다. +수치 부적합 해결·기준 완화는 수행하지 않았다. T7의 전체 Native Debug·CMake CTest· +별도 Python·필수 reference 검증은 후속 범위이며 이 한정 진단이 대체하지 않는다.