docs: reclassify original shell thermal reference as diagnostic
This commit is contained in:
@@ -46,7 +46,7 @@
|
||||
|
||||
## STH-ADR-005: NT11 외부 비교와 독립 물리 검증
|
||||
|
||||
- 상태: Accepted
|
||||
- 상태: Superseded by STH-ADR-015 (원본 비교의 blocking 분류에 한함)
|
||||
- 결정: 기존 CSV의 Step-1, t=37, NT11을 필수 비교하고 나머지는 해석해·수지·수렴으로 검증한다.
|
||||
- 이유: Reference의 실제 coverage는 단일 시점의 아랫면 온도 729행이다.
|
||||
- 영향: 공통 TOLERANCE의 row/family 기준을 유지한다. 추가 Abaqus CSV나 Abaqus 실행은 필수가 아니다.
|
||||
@@ -138,3 +138,20 @@
|
||||
전체 baseline을 먼저 재현하고 완료 시 전체 검사를 다시 실행한다.
|
||||
재현된 무관한 HHT temporal 실패만 별도 미해결로 둘 수 있으며 새 실패·악화를 허용하지 않는다.
|
||||
이를 전체 CTest green으로 보고하지 않는다. 열해석 필수 검증 실패는 면제되지 않는다.
|
||||
|
||||
## STH-ADR-015: 원본 reference 진단 전환과 새 모델 비교
|
||||
|
||||
- 상태: Accepted; 사용자 선택 “A, reference 모델을 변경하겠습니다.”
|
||||
- 결정: 승인된 Q4×P2, consistent C, raw 초기값 및 Backward Euler 정식화를 유지한다.
|
||||
기존 `reference/shell-thermal` Step-1/time 37/NT11 family는 진단으로 분류하고
|
||||
공통 tolerance로 계산한 row/family 실패 수치를 그대로 남긴다. 사용자가 변경할 새
|
||||
reference 모델과 CSV가 확정되면 별도의 필수 family로 비교한다.
|
||||
- 이유: 원본 729행 중 87행 실패와 RMS/S=0.04967408461567323 초과가 있었고,
|
||||
FESA와 독립적으로 승인 식을 계산한 oracle도 같은 차이를 재현했다.
|
||||
[충돌 evidence](reference-comparison-conflict.md)는 원본의 blocking 조건과 승인 방법을
|
||||
동시에 만족하지 못함을 보여준다.
|
||||
- 영향: 원본 artifact와 공통 tolerance는 수정하지 않는다. 진단 실패를 PASS로 바꾸지
|
||||
않고 row identity·오차를 보고한다. 새 모델의 경로, 원본 hash, 비교 시점·성분·identity가
|
||||
아직 제공되지 않았으므로 새 필수 비교의 실행·통과는 미완료다. 독립 해석해·수지·수렴성,
|
||||
전체 회귀 및 physics 검토를 완료 조건으로 유지한다. 이는 Abaqus 내부 알고리즘의
|
||||
동등성이나 기존 reference가 잘못되었다는 판정이 아니다.
|
||||
|
||||
@@ -33,8 +33,10 @@
|
||||
반력 열률을 같은 observable로 대체하지 않는다.
|
||||
- Thin-shell 곡률 근사, 다른 두께·fold의 접속, 초기 온도 jump와 결과 schema는
|
||||
[PRD 상세 계약](PRD.md#sth-c01--모델-geometry와-자유도)을 따른다. Edge 입력 011은 이번 구현에서 연기한다. 미지원 의미를 임의 default로 처리하지 않는다.
|
||||
- Reference는 PRD가 지정한 기존 `.inp`와 CSV를 그대로 사용한다. 음수 reference는
|
||||
- 기존 reference `.inp`와 CSV는 변경하지 않고 진단 비교에 사용한다. 음수 reference는
|
||||
roundoff로 단정하거나 clamp하지 않고 [TOLERANCE](../TOLERANCE.md)를 적용한다.
|
||||
새 필수 reference는 [PRD STH-C08](PRD.md#sth-c08--reference-원본과-완료-evidence)과
|
||||
[STH-ADR-015](ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)를 따른다.
|
||||
- All-constrained와 단면 전체 end 온도 지정은 검산용 algebra/assembly fixture다.
|
||||
내부 온도점 경계조건을 공개 입력 기능으로 확대하는 근거로 사용하지 않는다.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
| 013 | 사용자 지정 총 시간과 기본 시간 간격; 마지막 증분만 필요 시 단축 |
|
||||
| 014 | 온도·요소 전역 열유속·지정 온도점의 반력 열률 |
|
||||
| 015 | 초기 온도와 모든 완료 증분을 공식 HDF5에 저장 |
|
||||
| 016 | 원본 reference Step-1, t=37, NT11의 필수 외부 비교 |
|
||||
| 016 | 원본 reference Step-1, t=37, NT11의 진단 외부 비교와 새 reference 모델의 필수 비교 |
|
||||
| 017 | 전체 온도·flux·반력에 대한 해석해·수지·시간 및 공간 수렴 검증 |
|
||||
| 018 | 하나의 transient step만 지원 |
|
||||
|
||||
@@ -376,7 +376,8 @@ acceptance 변경이 필요하면 구체적 근거를 제시하고 사용자 결
|
||||
| IO/실패 | 모든 양성/음성 subset, source identity, HDF5 round trip, 초기 dataset 부재, P=0 반력, 마지막delta, no-op warnings, candidate/lease/write/self-check/close 실패 시 기존결과 보존 |
|
||||
|
||||
구현 단계에는 열해석 관련 검사를 먼저 수행하고 전체 MSVC x64 Debug build/CTest와
|
||||
필수 reference 비교를 수행한다. 새 compiler warning을 추가하지 않는다.
|
||||
확정된 새 reference의 필수 비교를 수행한다. 기존 reference의 진단 비교도 실패 수치까지
|
||||
보고한다. 새 compiler warning을 추가하지 않는다.
|
||||
구현 전 전체 검사를 실행하여 기존 HHT 시간수렴 실패 2건의 실제 재현·이름·metric을
|
||||
기록한다. 기록만으로 현재 실패를 가정하지 않는다. 구현 후 전체 검사에서 제외하지 않고,
|
||||
새 실패·기존 실패 악화를 허용하지 않는다. 재현된 기존의 무관한 HHT 실패만 별도
|
||||
@@ -406,8 +407,8 @@ worktree를 찾고 파일별 SHA256을 아래와 대조한다. 이 방식은 머
|
||||
내용, metadata를 수정하는 권한은 포함하지 않는다. FESA HDF5/log는 복사한 입력 옆에
|
||||
생성한다. 보조 deterministic CSV view는 공식 결과가 아니다.
|
||||
|
||||
외부 family는 `(shell-thermal, source step Step-1, time 37, bottom temperature NT11,
|
||||
scalar, user-consistent temperature units, blocking)`이다. 원본은 단일 Part-1-1,
|
||||
기존 외부 family는 `(shell-thermal, source step Step-1, time 37, bottom temperature NT11,
|
||||
scalar, user-consistent temperature units, diagnostic)`이다. 원본은 단일 Part-1-1,
|
||||
676 DS4, 729 node이며 CSV의 `Step,Frame,Node Label,NT11`에서 instance 열 부재는
|
||||
입력의 단일 instance 및 label 집합 검증으로만 복원한다. HDF5의 source_step_name,
|
||||
정확한 t=37 accepted frame, source DOF11을 일대일 대응한다. Nearest-time matching,
|
||||
@@ -418,11 +419,17 @@ Missing/extra/duplicate/nonfinite/identity 오류는 tolerance 전에 실패다.
|
||||
그 밖의 relative<=0.05, family RMS/S<=0.01, S=0 exact-zero 규칙을 그대로 적용한다.
|
||||
관찰된 min=-15.5742216, max=1000은 정적 관찰이며 solver 통과 evidence가 아니다.
|
||||
음수·미소값을 clamp하거나 온도 기준·단위를 조정해 비교를 통과시키지 않는다.
|
||||
필수 비교 실패 시 원인을 분리 조사하고 방법/acceptance 충돌은 사용자 결정으로 돌린다.
|
||||
이 원본 비교의 tolerance 초과는 진단 실패로 남긴다. Row identity 오류와 metric을
|
||||
숨기거나 원본 비교를 통과로 표시하지 않는다. 독립 계산과 실제 실패 evidence는
|
||||
[충돌 보고서](reference-comparison-conflict.md)에 보존한다. 사용자가 변경할 새 reference
|
||||
모델의 입력·CSV 경로, source row identity, 비교 시점·성분과 원본 hash가 확정되면
|
||||
이를 별도의 필수 family로 지정하여 실제 비교한다. 새 artifact가 아직 제공되지 않았으므로
|
||||
새 family의 통과를 주장하지 않는다. 공통 tolerance 수치는 변경하지 않는다.
|
||||
|
||||
완료 보고서는 구현 diff, 실제 검증 명령/환경·결과, 독립 numerical/physics 검토,
|
||||
외부 비교 row/family 판정, 기존 HHT 실패, 남은 물리 한계를 구분한다.
|
||||
추가 Abaqus CSV 확보는 필수 조건이 아니지만 다른 물리량 검증을 생략하는 근거도 아니다.
|
||||
새 reference 모델과 그 결과 CSV가 확정되어야 새 필수 family를 실행할 수 있다.
|
||||
이는 다른 물리량의 해석해·수지·수렴성 검증을 생략하는 근거가 아니다.
|
||||
|
||||
## 현재 checklist
|
||||
|
||||
@@ -436,8 +443,9 @@ Missing/extra/duplicate/nonfinite/identity 오류는 tolerance 전에 실패다.
|
||||
- [x] Thermal semantic model·DOF·geometry·K/C·flux 구현 및 [독립·통합 검증](implementation-verification.md#요소-kernel과-형상-검증)
|
||||
- [x] Thermal 입력 subset·진단·결정적 조립·시간 적분 구현 및 [범위별 검증](implementation-verification.md#backward-euler-procedure와-candidate-검증)
|
||||
- [x] HDF5·CLI·candidate와 기존 결과 보존 [검증](implementation-verification.md#application과-실제-cli)
|
||||
- [ ] 승인 정식화와 필수 reference 통과 조건의 [실측 충돌](reference-comparison-conflict.md)에 대한 사용자 결정
|
||||
- [ ] 해석해·수지·수렴성과 필수 NT11 외부 비교 통과
|
||||
- [x] 승인 정식화와 원본 reference 통과 조건의 [실측 충돌](reference-comparison-conflict.md)에 대한 사용자 결정: 기존 비교는 진단, 정식화 유지, 새 reference 모델 사용
|
||||
- [ ] 해석해·수지·수렴성 검증과 원본 NT11 진단 비교의 실패 metric 보존
|
||||
- [ ] 새 reference 모델·CSV·identity 확정 및 필수 외부 비교 통과
|
||||
- [ ] 전체 MSVC Debug build/CTest 및 기존 실패 대비 확인
|
||||
- [ ] 독립 physics 검토와 완료 evidence 기록
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ Domain이 정의를 소유하고 AnalysisModel이 non-owning view를 제공하
|
||||
| T8 | T6 | 구현 담당: thermal HDF5 writer·self-check | Synthetic state round trip·schema/identity/초기 dataset 부재·P=0·atomic 실패 |
|
||||
| T9 | T5,T7,T8 | 구현 담당: prepared_analysis와 CLI 연결 | 양성 CLI·lexical output·exit·lease·기존 결과 보존 |
|
||||
| T10 | T9 | 구현 담당: analytical physics·reference comparator/integration | 독립 oracle·온도/flux/reaction·수렴과 NT11 source mapping/tolerance |
|
||||
| T11 | T10 | 검증 담당·독립 physics 검토자; 메인 완료 문서 | 전체 MSVC Debug build/CTest·필수 reference·baseline 대비·coverage 한계 |
|
||||
| T11 | T10 | 검증 담당·독립 physics 검토자; 메인 완료 문서 | 전체 MSVC Debug build/CTest·새 reference 필수 비교·baseline 대비·coverage 한계 |
|
||||
|
||||
행동 변경은 기대 결과를 고정한 검사에서 실패를 확인한 뒤 구현한다. 구현 구조를 복제한
|
||||
expected 값으로 정확도를 주장하지 않는다. 독립 numerical/physics 검토를 구현자의 자기 승인으로 대체하지 않는다.
|
||||
@@ -245,7 +245,8 @@ expected 값으로 정확도를 주장하지 않는다. 독립 numerical/physics
|
||||
- Semidiscrete 독립 eigenmode로 시간1차, Fourier 직사각형의 L2 온도2차·gradient1차.
|
||||
- Bottom step/top 단열 slab series의 온도·flux·에너지·반력; 고정5점 두께 오차 plateau와 초기 침투 깊이 보고.
|
||||
- 다중 재료/두께 strip 저항은 full-end assembly fixture로 확인한다. 내부 station BC를 CLI로 확대하지 않는다.
|
||||
- 원본 Step-1 t37 NT11 729행의 identity precheck와 공통 tolerance blocking 비교.
|
||||
- 원본 Step-1 t37 NT11 729행의 identity precheck와 공통 tolerance 진단 비교;
|
||||
새 reference 모델이 확정되면 별도 필수 비교. [STH-ADR-015](ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)를 따른다.
|
||||
|
||||
에너지 defect의 scale은 저장·외력·반력 항의 절댓값 합이며 free residual을 별도로 검사한다.
|
||||
E=1ᵀCT의 기준 온도 이동에 대한 DeltaE 불변성과 BE C-norm 소산은 서로 다른 검사다.
|
||||
@@ -267,8 +268,10 @@ MSVC x64 developer 환경과 승인 local GoogleTest/MKL/TBB/HDF5를 사용한
|
||||
`.harness/config.json`이 동일 실행을 구성할 때만 `python scripts/execute.py`를 대안으로 사용한다.
|
||||
개인 설정이 없다고 runner가 preset을 선택한다고 가정하지 않는다. 새 compiler warning을 추가하지 않는다.
|
||||
|
||||
Reference는 [PRD STH-C08](PRD.md#sth-c08--reference-원본과-완료-evidence)의 두 원본을
|
||||
승인된 dev checkout에서 byte 그대로 복사·hash 확인한다. Abaqus 실행·재생성·이름 변경·보정은 제외한다.
|
||||
기존 Reference는 [PRD STH-C08](PRD.md#sth-c08--reference-원본과-완료-evidence)의 두 원본을
|
||||
승인된 dev checkout에서 byte 그대로 복사·hash 확인했다. Abaqus 실행·재생성·이름 변경·보정은 제외한다.
|
||||
기존 비교의 불일치는 진단으로 보존하고 새 reference의 경로·identity·비교량이 확정된 뒤
|
||||
필수 비교를 실행한다.
|
||||
실제 명령/exit, hash, baseline 및 최종 결과는 implementation-verification 문서에 기록한다.
|
||||
|
||||
재현된 무관한 기존 HHT 시간수렴 실패는 전체 검사에서 제외하지 않고 마지막에도 비교한다.
|
||||
|
||||
@@ -363,16 +363,19 @@ native exit 0이다. Inventory **592개**, application 관련 **28/28 PASS**이
|
||||
script/binary hash를 포함한 `review-execution.json`을 보존했다. Probe 자체도 native exit 0이다.
|
||||
이는 실행 경로와 저장 계약 검증이며 실제 열해의 정확도 판단은 다음 물리 검증에 속한다.
|
||||
|
||||
### 필수 reference 비교의 미해결 실패
|
||||
### 원본 reference 비교의 실패와 진단 전환
|
||||
|
||||
NT11 외부 비교를 실제 실행했으나 **실패**했다. 원본 Step-1/time37/DOF11의 729행 중
|
||||
87행이 기준을 벗어났고 RMS/S=0.04967408461567323으로 승인 0.01을 초과한다.
|
||||
별도 C++ 공통 정책 비교도 같은 실패를 재현했다. 승인 식을 FESA 코드 없이 조립·계산한
|
||||
독립 oracle는 FESA와 최대 7.673861546209082e-12 차이로 같은 reference 불일치를 보였다.
|
||||
수치·원본 hash·재현 명령·의사결정 범위는 [충돌 보고서](reference-comparison-conflict.md)에
|
||||
기록했다. 정식화나 tolerance를 변경하지 않았으며 기능 완료로 표시하지 않는다.
|
||||
기록했다. 사용자 선택 A에 따라 승인 정식화와 공통 tolerance를 유지하고 원본 비교를
|
||||
진단으로 분류했다([STH-ADR-015](ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)).
|
||||
실패 행과 family metric은 변경하지 않는다. 새 reference 모델·CSV는 아직 제공되지 않아
|
||||
그 필수 비교를 실행하거나 기능 완료로 표시하지 않는다.
|
||||
|
||||
T10 comparator checkpoint `95ba2c5`는 별도 작업 branch에 보존하고 필수 검사가 실패한
|
||||
결정 전 T10 comparator checkpoint `95ba2c5`는 별도 작업 branch에 보존하고 필수 검사가 실패한
|
||||
상태로 구현 branch에 병합하지 않았다. Configure/build/inventory는 native 0,
|
||||
inventory 599개이며, 최종 schema/identity 음성검사 **6/6 PASS**(native 0)다.
|
||||
원본 application/reference 실행의 CTest는 native 8이고, 최종 comparator 소스로 같은
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# 승인 정식화와 필수 NT11 reference 비교의 충돌
|
||||
# 승인 정식화와 원본 NT11 reference 비교의 충돌
|
||||
|
||||
상태: **미해결 — 사용자 결정 필요**. 작성일: 2026-09-29.
|
||||
이 문서는 실패 evidence와 선택지를 기록한다. 정식화·초기화·허용치·blocking 분류를 변경하지 않는다.
|
||||
상태: **비교 분류 결정 완료; 원본 수치 불일치 유지**. 작성일: 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)다.
|
||||
|
||||
@@ -31,7 +33,7 @@ FESA가 생성한 HDF5는 입력의 lexical sibling이다.
|
||||
별도 C++ comparator도 기존 `ReferenceTolerancePolicy::Evaluate`를 그대로 사용하여
|
||||
동일 실패를 확인했다. `ThermalReference.OriginalAbaqusNt11AtExactTime37`의 실제 결과는
|
||||
729행, 87개 실패, RMS/S=0.049674084615673214, max_abs=245.26294650091862다.
|
||||
해당 CTest 실행은 native exit 8이며 필수 비교를 통과로 표시하지 않았다.
|
||||
결정 전 해당 CTest 실행은 native exit 8이었고, 비교를 통과로 표시하지 않았다.
|
||||
|
||||
## 2. FESA 코드를 사용하지 않은 독립 계산
|
||||
|
||||
@@ -74,24 +76,23 @@ Initial Conditions 절은 생략된 초기 온도의 기본값을 0으로 설명
|
||||
reference 생성기의 내부 행렬·적분·초기 처리 방식이나 그 동등성을 단정하지 않는다.
|
||||
다른 방법의 수치 결과가 비슷하다는 이유만으로 FESA의 승인 방법을 교체하지 않는다.
|
||||
|
||||
## 4. 결정이 필요한 범위
|
||||
## 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는 아직 확정되지 않았다.
|
||||
원본을 변경하거나 새 모델의 결과를 추정하여 통과로 표시하지 않는다.
|
||||
|
||||
- **정식화 유지:** 이 reference family의 역할을 진단 비교로 재정의할지 결정한다.
|
||||
공통 숫자 tolerance와 실패 metric은 그대로 남기며, 독립 해석해·수지·수렴성 검증을
|
||||
완료 조건으로 유지한다. Feature acceptance/ADR의 명시적 변경이 필요하다.
|
||||
- **필수 reference 통과 유지:** 현재 방법 선택을 다시 검토한다. 먼저 필요한 수치 방법의
|
||||
장단점과 새로운 정식화·검증 계획을 제시하고 승인받아야 하며, 임의 lumping·초기 투영·
|
||||
clamp 또는 reference 맞춤 수정으로 바로 넘어가지 않는다.
|
||||
|
||||
T1–T9 구현·검증은 유지한다. T10은 실패를 숨기지 않은 comparator checkpoint까지이며,
|
||||
남은 slab/수렴성 검증과 T11 전체 회귀·독립 physics 완료 판정은 수행 전이다.
|
||||
T1–T9 구현·검증은 유지한다. T10은 실패를 숨기지 않은 comparator checkpoint 이후
|
||||
진단 분류와 slab/수렴성 검증을 진행 중이다. T11 전체 회귀·독립 physics 완료 판정은
|
||||
수행 전이다.
|
||||
|
||||
## 5. 보존 evidence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user