# 승인 정식화와 원본 NT11 reference 비교의 충돌 상태: **비교 분류 결정 완료; 원본 수치 불일치 유지**. 작성일: 2026-09-29. 사용자는 정식화를 유지하고 기존 비교를 진단으로 전환하며 reference 모델을 변경하는 선택 A를 승인했다([STH-ADR-015](ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)). 이 문서는 결정 전의 실패 evidence를 그대로 보존한다. 정식화·초기화·공통 허용치는 변경하지 않는다. 기준은 [PRD STH-C03/C04/C08](PRD.md), [formulation](formulation.md), [numerical review](numerical-review.md), [공통 tolerance](../TOLERANCE.md)다. ## 1. 실제 실행과 비교 구현 `7cccfcd`의 실제 CLI로 원본 `reference/shell-thermal/shell-thermal.inp`를 실행했다. 100개 증분과 초기 프레임을 저장하고 exit 0으로 종료했다(153.5초). 원본 INP와 CSV의 SHA256은 실행 전후 PRD의 승인 값과 일치했다. FESA가 생성한 HDF5는 입력의 lexical sibling이다. 별도 `h5dump`로 source step, 정확한 time=37/increment=37, DOF11, `Part-1-1`/node label과 thermal row mapping을 확인했다. 729행 모두 중복·누락 없이 대응했고 값은 finite였다. Source DOF13이나 nearest frame으로 대체하지 않았다. | 판정량 | 실제 결과 | 승인 기준 | | --- | ---: | ---: | | 비교 행 | 729 | 모든 source 행의 일대일 대응 | | Reference scale S / near-zero B | 1000 / 10 | 공통 정책 | | 행별 실패 수 | 87 | 0 | | RMS/S | 0.04967408461567323 | ≤0.01 | | 최대 절대 차이 | 245.26294650091884 | 해당 행 기준으로 판정 | | FESA 최솟값 / 최댓값 | -258.91081180091885 / 1000 | clamp 금지 | 대표 source node 22에서 reference=-13.6478653, FESA=-258.91081180091885이며, 행별 5% 기준은 0.682393265다. 근소한 반올림 차이가 아니다. 별도 C++ comparator도 기존 `ReferenceTolerancePolicy::Evaluate`를 그대로 사용하여 동일 실패를 확인했다. `ThermalReference.OriginalAbaqusNt11AtExactTime37`의 실제 결과는 729행, 87개 실패, RMS/S=0.049674084615673214, max_abs=245.26294650091862다. 결정 전 해당 CTest 실행은 native exit 8이었고, 비교를 통과로 표시하지 않았다. ## 2. FESA 코드를 사용하지 않은 독립 계산 독립 Python/SciPy 실행기는 원본 텍스트에서 729개 좌표, 676개 사각형 connectivity, Set-10의 196개 node를 읽었다. 모든 요소가 평면 직사각형임을 확인한 뒤, 직사각형 Q1의 닫힌형 M/S와 두 P2 구간의 정확한 Z0/Z1을 조립했다. FESA parser·kernel·assembler·시간 적분 코드는 호출하지 않았다. 입력 물성 k=54, rho=7850, c=460, h=0.5를 사용하고 승인된 식 `C=rho*c*(h/2)*M⊗Z0`, `K=k*((h/2)*S⊗Z0+(2/h)*M⊗Z1)`을 적용했다. 전체 raw T0=0, Set-10의 source DOF11만 g=1000, dt=1인 BE를 37회 계산했다. 3449 free / 196 constrained DOF를 별도 SciPy sparse LU로 풀었다. | 독립 계산량 | 결과 | | --- | ---: | | FESA NT11과 최대 절대 차이 | 7.673861546209082e-12 | | 최대 정규화 선형 잔차 | 3.599964225668404e-16 | | Reference 행별 실패 수 | 87 | | Reference RMS/S | 0.04967408461567341 | | 독립 NT11 최솟값 | -258.9108118009203 | 이 수치는 새 tolerance가 아니다. 승인 식의 독립 계산도 같은 큰 reference 차이를 재현한다는 관측이다. 이 사례의 차이를 단순한 source mapping이나 production 행렬 계산 버그로 설명할 근거는 발견하지 못했다. 전체 물리 검증의 통과를 뜻하지는 않는다. 별도 read-only 검토자는 원본 hash·수치 상수·경계조건, oracle의 tensor 식/BE 우변, HDF/CSV identity join과 공통 tolerance 계산을 대조하여 이 충돌 evidence의 차단 오류를 발견하지 못했다. Oracle는 범용 입력기가 아니며 물성·두께·시간·g는 이 사례의 확인된 상수를 사용한다. 다른 입력에 대한 정확도나 Abaqus의 내부 동작을 입증하는 검사는 아니다. ## 3. 공개 문서 확인과 해석 한계 공개 [Choosing a Shell Element](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEELMRefMap/simaelm-c-shellelem.htm)의 Heat Transfer Shell Elements 절은 다중 온도점을 갖는 shell의 DOF11을 아랫면 온도로 설명한다. [Uncoupled Heat Transfer Analysis](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEANLRefMap/simaanl-c-heattransfer.htm)의 Initial Conditions 절은 생략된 초기 온도의 기본값을 0으로 설명한다. 이 관측 가능한 의미는 현재 reference mapping을 DOF13으로 바꿀 근거를 주지 않는다. 확인 가능한 문서는 2025판이며 2024 URL은 접근 거부였다. 공개 문서와 한 시점의 CSV만으로 reference 생성기의 내부 행렬·적분·초기 처리 방식이나 그 동등성을 단정하지 않는다. 다른 방법의 수치 결과가 비슷하다는 이유만으로 FESA의 승인 방법을 교체하지 않는다. ## 4. 승인된 결정과 남은 비교 원본 모델에서는 다음 두 조건을 동시에 충족하지 못했다. 1. 승인된 consistent C, Q4×P2 두 구간, exact thickness 적분과 raw 초기값 BE를 유지한다. 2. 이 원본 NT11 비교를 현재 공통 tolerance의 필수 blocking 검사로 통과한다. 사용자는 첫 조건을 유지하고 기존 원본 비교를 **진단**으로 전환하는 선택 A를 승인했다. 공통 tolerance 계산과 87행 실패, RMS/S 초과를 그대로 기록한다. 비교기의 새 진단 테스트가 통과하더라도 이는 열해가 원본 CSV tolerance를 만족한다는 뜻이 아니다. 독립 해석해·수지·수렴성 검증과 새 reference 모델의 필수 비교가 완료 조건이다. 새 모델 및 결과 CSV의 경로·hash·비교 시점·성분·row identity는 아직 확정되지 않았다. 원본을 변경하거나 새 모델의 결과를 추정하여 통과로 표시하지 않는다. T1–T9 구현·검증은 유지한다. T10은 실패를 숨기지 않은 comparator checkpoint 이후 진단 분류와 slab/수렴성 검증을 진행 중이다. T11 전체 회귀·독립 physics 완료 판정은 수행 전이다. ## 5. 보존 evidence - 메인 `.dryforge/review/t10_reference/`: `run.py`, `execution.json`, stdout/stderr, 생성 log, `compare.py`, 실제 dump/exit 기록, `comparison.json`, `comparison-rows.json`. - 같은 경로의 `independent.py`, `independent-execution.json`, `independent-comparison.json`, `independent-rows.json`: native exit 0, NumPy 2.4.6 / SciPy 1.17.1, 사용 script hash 포함. - 작업 checkout T2 `.dryforge/evidence/t10-reference-test.log` 및 native exit JSON: 공통 정책을 사용한 C++ 비교의 실제 실패. Checkpoint `95ba2c5`의 최종 schema/identity 음성검사는 6/6 PASS이며, 동일 출력의 최종 comparator는 native 1로 비교 실패를 유지했다. 세부 source/artifact hash와 보존 상태는 [구현 검증 보고서](implementation-verification.md)에 기록했다. - 원본 reference INP/CSV는 변경하지 않았다. 생성 HDF5와 CSV row view는 외부 reference artifact를 교체하는 자료가 아니다.