Files
FESADev/docs/tracking/findings.md
T

96 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 미해결 문제
## Hex8 표준 full8 정식화와 정적 원본의 불일치
- 조건·현상: `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와 전체 기능 검증 완료 조건을 충족하지 못한다.
CLI 성공·내부 평형·HDF5 correctness는 외부 수치 일치와 별개다. 현재 checklist는
[기능 PRD](../hex8-structural-analysis/PRD.md)에 있다.
- 현재 해결하지 못한 이유: 독립 standard full8 `BᵀCB` 조립·solve가 현재 변위와 일치하고
같은 원본 형상·변위의 Gauss 구성식도 현재 stress/strain을 재현한다. 승인된 full8 식을
원본 값에 맞춰 조용히 바꾸거나 tolerance를 완화할 근거가 아니다. 원본 응력의 체적 성분은
요소 평균 trace로 재구성하면 크게 가까워지지만 이것만으로 private algorithm을 증명하지 않는다.
- 후속 방향: 정식 비교기·독립 수치 검토를 완료했다. 두 정적 공식 결과는 source/schema
검사와 CLI native0이나 U/RF/S family가 모두 FAIL이다. 별도 선형 체적 평균 energy의
독립 Python 후보는 unchanged 수치 기준에 일치했으며 현재 생산 구현의 PASS가 아니다.
[승인된 변경 근거](../hex8-structural-analysis/reference-discrepancy-proposal.md)에 영향을
구체화했고, 사용자가 2026-10-10 B로 체적 평균 energy 도입과 전체 재검증을 승인했다.
변경본의 energy/force/Hessian·다섯 절차·필수 원본을 다시 검증한다. 원본·수치 기준을
유지하며 승인이나 private 선형 후보의 일치를 변경본 PASS로 처리하지 않는다.
## Hex8 동해석의 엄격 잔차와 내부 상태 정밀도
- 조건·현상: Hex8 동적 구현 `f661864`에서 `reference/hexa/hexa_dynlinear.inp`와
`hexa_dynnonlinear.inp`를 실행하면 세 번째 증분100회 제한에서 실패했다. 이 과거 원본
physical residual 비율은 `1.77739e-8`·`8.73572e-9`, 기준은 `1e-10`이다.
- 영향: 원본101개 endpoint의 필수 검증과 동해석 완료 조건을 충족하지 못했다.
현재 전체 요구와 checklist는 [기능 PRD](../hex8-structural-analysis/PRD.md)에 있다.
- 현재 해결하지 못한 이유: 실제 fresh 변위 보정의 반올림 소실을 확인했지만 제한된
단일·두 좌표 탐색과 보상 가산에서도 passing candidate를 얻지 못했다. 실패한 탐색은
Float64 해의 부재를 증명하지 않으며, 수렴 기준·원본을 변경할 근거로 쓰지 않는다.
- 후속 방향: [실패 근거](../hex8-structural-analysis/lessons.md)를 보존하고, 전체 물리
상태의 high+low 계산과 Float64 출력의 반올림 의미를 정하는
[승인된 변경안](../hex8-structural-analysis/precision-proposal.md)을 구현했다.
사용자가 2026-10-09 선택 A로 승인했고 소규모 상태·시간수렴·수지와 두 원본의 세 증분
관측을 검증했다. 독립 full-pair 재계산에서 원래 모든 free의 strict gate를 통과했다.
이후 frozen `c49cae4`의 두 원본은101 endpoint를 모두 native0으로 완료했고, `e2c3c5b`의
두 공식 CLI도101 frame을 native0으로 출력했다. 원래 strict gate를 유지한 이전 pointwise
구현의 정밀도 해결 evidence이며 동적 U 외부 비교는 각각101 family 중88 FAIL이다.
체적 평균 변경본의 전체 실행과 비교는 별도로 필요하며 acceptance 기준은 유지한다.
## HHT shell의 시간수렴
- 조건·현상: 실제 shell의 두 시간수렴 사례에서 요구한 수렴 성능을 만족하지 못한
재현 기록이 남아 있다. 원본 변위 reference 통과와 함께 존재하는 실패다.
- 영향: 변위 일치만으로 동적 가속도·관성·에너지·전체 시간 정확성을 보장할 수 없다.
HHT 전체 기능 완료를 선언할 수 없다.
- 현재 해결하지 않는 이유: 문서 재구성 범위를 벗어나는 수치 알고리즘 변경이며,
가속도 복구 후보의 정식화·독립 검증·채택 판단이 선행되어야 한다.
- 후속 방향: 기존 물리 질량·허용 오차를 유지한 재현에서 dt refinement별 q/v/물리 a와
hidden constraint 차수를 분리하고 후보 변경의 영향을 검증한다.
## Python 운영 계약 검사의 기대값 불일치
- 추가 관찰(2026-10-10 Hex8 비교기 작업): 설정된 전체 Python 명령에 h5py dependency를
추가해 실행했으나 기존 `msvc_harness`·폐기된 `scripts.hooks` import의 collection5
오류로 native2·실행0개였다. 관련 comparator124/124 native0과 구분하며 전체 PASS가 아니다.
정확한 명령과 raw는 [Hex8 verification](../hex8-structural-analysis/verification.md)에 있다.
- 조건·현상: `tests/test_agent_skill_workflow_contract.py`의 inventory 검사는 11개
profile을 기대하지만 현재 `.codex/agents`에는 7개가 있다. 같은 파일은 루트 지침의
고정 단계 표를 parsing하고, 과거 phase 실행 예제를 검사한다. 현재 명시 실행기와
필요한 전문 작업만 호출하는 운영 원칙에 맞지 않는다.
- 영향: 이 검사를 현행 운영의 통과 증거로 쓰거나 통과시키기 위해 삭제된 절차를
복원하면 잘못된 개발 흐름을 다시 도입한다. 루트 문서 재구성 이후에는 옛 표 위치에
의존하는 검사도 조정 대상이다.
- 현재 해결하지 않는 이유: 2026-10-04 문서 정리에서는 source 정적 대조만 했고 Python
검사를 실행하지 않았다. 이후 위 collection 문제를 실제 관찰했지만 Hex8 기능 작업에서
기존 운영 검사나 폐기된 절차를 복원하는 수정은 범위 밖이다.
- 후속 방향: 유효한 동작·권한·검증 범위를 검사하도록 기대값을 정리하고 Python suite를
별도로 실행한다. 현재 CTest의 성공으로 대체하지 않는다.
## Shell 열해석의 새 필수 reference 비교 대기
- 조건·현상: 기존 INP/CSV는 `reference/shell-thermal/`에 보존돼 실제 비교했다.
Step-1/t=37/NT11의729행 중87행 FAIL, RMS/S 약0.0496741로 공통1%를 초과했다.
승인식의 독립 oracle도 같은 불일치를 보였으며 [사용자 결정](../shell-transient-heat-transfer/ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)에 따라 diagnostic으로 유지한다.
- 영향: 구현·내부 검증과 별개로 새 필수 외부 family의 통과가 없어 열해석 기능 검증
완료를 선언할 수 없다. 원본 NT11 한 성분·시점은 flux·반력·두께 분포의 대체 검증도 아니다.
- 현재 해결하지 않는 이유: 사용자가 새 모델·CSV를 별도 경로에 준비 중이다.
문서 정리는 reference 생성·보정이나 Abaqus 실행을 포함하지 않는다.
- 후속 방향: 새 파일의 경로·source identity·시점·성분·hash를 확정하고 승인 tolerance로
실제 비교한다. 원본 diagnostic의 행·값·실패 metric과 물리 한계를 유지한다.
## 외부 배포 결정의 공백
- 조건·현상: 외부 사용자 배포는 장기 목표지만 배포 형태·지원 환경·dependency 재배포
조건과 외부 입력의 신뢰 범위는 정해져 있지 않다. 사용자가 별도 보안 정책은 없다고 확인했다.
- 영향: 현재 로컬 실행·개인 연구 범위를 외부 서비스의 보안·설치·지원 보장으로 설명할 수 없다.
- 현재 해결하지 않는 이유: 제품 배포 범위와 권리 검토는 아직 요청되지 않았으며 코드만으로
사용자의 배포 방식을 정할 수 없다.
- 후속 방향: 배포를 실제 추진할 때 형식·대상·설치·검증·데이터 취급 조건을 구체화한다.