7.3 KiB
승인 정식화와 원본 NT11 reference 비교의 충돌
상태: 비교 분류 결정 완료; 원본 수치 불일치 유지. 작성일: 2026-09-29. 사용자는 정식화를 유지하고 기존 비교를 진단으로 전환하며 reference 모델을 변경하는 선택 A를 승인했다(STH-ADR-015). 이 문서는 결정 전의 실패 evidence를 그대로 보존한다. 정식화·초기화·공통 허용치는 변경하지 않는다. 기준은 PRD STH-C03/C04/C08, formulation, numerical review, 공통 tolerance다.
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의 Heat Transfer Shell Elements 절은 다중 온도점을 갖는 shell의 DOF11을 아랫면 온도로 설명한다. Uncoupled Heat Transfer Analysis의 Initial Conditions 절은 생략된 초기 온도의 기본값을 0으로 설명한다. 이 관측 가능한 의미는 현재 reference mapping을 DOF13으로 바꿀 근거를 주지 않는다.
확인 가능한 문서는 2025판이며 2024 URL은 접근 거부였다. 공개 문서와 한 시점의 CSV만으로 reference 생성기의 내부 행렬·적분·초기 처리 방식이나 그 동등성을 단정하지 않는다. 다른 방법의 수치 결과가 비슷하다는 이유만으로 FESA의 승인 방법을 교체하지 않는다.
4. 승인된 결정과 남은 비교
원본 모델에서는 다음 두 조건을 동시에 충족하지 못했다.
- 승인된 consistent C, Q4×P2 두 구간, exact thickness 적분과 raw 초기값 BE를 유지한다.
- 이 원본 NT11 비교를 현재 공통 tolerance의 필수 blocking 검사로 통과한다.
사용자는 첫 조건을 유지하고 기존 원본 비교를 진단으로 전환하는 선택 A를 승인했다. 공통 tolerance 계산과 87행 실패, RMS/S 초과를 그대로 기록한다. 비교기의 새 진단 테스트가 통과하더라도 이는 열해가 원본 CSV tolerance를 만족한다는 뜻이 아니다. 독립 해석해·수지·수렴성 검증과 새 reference 모델의 필수 비교가 완료 조건이다. 새 모델과 결과 CSV는 기존 원본과 분리된 경로에 두기로 했다. 구체적인 경로·hash·비교 시점·성분·row identity는 아직 확정되지 않았다. 원본을 변경하거나 새 모델의 결과를 추정하여 통과로 표시하지 않는다.
T1–T9 구현·검증은 유지한다. T10은 원본 비교의 실제 FAIL metric을 보존한 진단 분류와 독립 slab/시간·공간 수렴 검증을 마쳤다. 자세한 실제 실행은 구현 검증 보고서에 기록했다. T11 전체 회귀·독립 physics 평가는 진행 중이며 새 필수 reference 비교는 별도 모델·CSV 제공 전까지 미실행이다.
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++ 비교의 실제 실패. Checkpoint95ba2c5의 최종 schema/identity 음성검사는 6/6 PASS이며, 동일 출력의 최종 comparator는 native 1로 비교 실패를 유지했다. 세부 source/artifact hash와 보존 상태는 구현 검증 보고서에 기록했다. - 원본 reference INP/CSV는 변경하지 않았다. 생성 HDF5와 CSV row view는 외부 reference artifact를 교체하는 자료가 아니다.