modify documents

This commit is contained in:
KOKO\Mimi
2026-10-04 03:32:59 +09:00
parent 858e87be64
commit c1d5cc3c0d
176 changed files with 9615 additions and 25355 deletions
@@ -1,63 +1,24 @@
# Shell Transient Heat Transfer 지역 작업 지침
# shell-transient-heat-transfer 문서·작업 지침
- Feature ID: `shell-transient-heat-transfer`
- 메인 owner: 메인 assistant
- 적용 범위: `docs/shell-transient-heat-transfer/`의 계약·계획·검토 문서.
이 파일은 `src/`, `include/`, `tests/`에 자동 적용되는 지침이 아니다.
- 현재 범위·상태·checklist 원본: [Feature PRD](PRD.md).
- 문서 진입점·목적·사용법·Handoff: [README](README.md).
- 현재 범위·checklist: [PRD](PRD.md); 결정·승인·대체 이력: [ADR](ADR.md).
- 적용 범위: 해당 기능의 문서. 자동 로드되는 코드 영역 `AGENTS.md`가 아니다.
기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md),
[공통 ADR](../ADR.md#adr-028), [ARCHITECTURE](../ARCHITECTURE.md),
[Feature 문서 관리](../FEATURE_DOCUMENTATION.md).
이 파일은 자동 로드되는 `AGENTS.md`가 아니며, Feature 작업 시 명시적으로 참조한다.
기준: [프로젝트 지침](../../AGENTS.md), [ARCHITECTURE](../ARCHITECTURE.md),
[Feature 문서 관리](../FEATURE_DOCUMENTATION.md), [공통 tolerance](../TOLERANCE.md).
## 계약과 작업 경계
## 보존할 계약과 인계
- 인터뷰에서 합의한 지원 범위는 PRD, 채택 상태·이유·영향은 ADR에 기록한다.
ready에서 승인한 채택 계약과 독립 검토·실제 구현 완료 evidence를 구별한다.
- 수식 원본은 formulation, 구현 순서·코드 연결은 design-plan, 독립 지적과 검산 evidence는
numerical-review가 소유한다. 긴 유도·검토 내용을 PRD나 이 파일에 복제하지 않는다.
- 현재 checklist는 PRD 한 곳에 둔다. 현재 구현은 사용자의 `dryforge:go` 요청으로 승인되었다. 외부 solver 실행·배포 권한은 포함하지 않는다.
- 변경이 보간·물성·geometry 근사·초기 상태·적분·시간 갱신 의미를 바꾸면 관련 ADR과
정식화를 먼저 갱신하고 필요한 독립 numerical review를 받는다. Specialist는 할당 문서만 수정한다.
수식·I/O·수치 기준의 원본은 README에서 연결한 전문 문서를 따른다. 기능을 재개할 때
관련 계약과 실제 실행 revision·미해결 항목을 함께 읽는다. 과거 stage pass나 현재 문서
정리를 solver 검증 통과로 계산하지 않는다. 요구사항·ADR ID와 승인 이력을 유지한다.
메인은 PRD·ADR·진입점·문서 참조를 관리하고 전문 작업자는 할당한 본문과 관련 범위만 수정한다.
기존 개인 설정·reference·다른 작업자의 변경을 보존하며 실패를 tolerance 완화로 숨기지 않는다.
문서만 수정하면 정적 검토를 수행하고, 동작 변경에는 관련 검사와 필요한 독립 검토를 수행한다.
## 이 Feature에서 보존할 의미
- 현재 목표는 단일 step의 uncoupled 열해석이다. 초기의 두께 방향 등온 선택은 대체되었으며
현재 요구는 균질 단면의 온도점 5개와 면내·두께 방향 열전달이다.
- Source DOF 11/13/15는 각각 아랫면/중앙면/윗면이다. Source DOF, 내부 equation 번호,
온도점·적분점·flux recovery 위치를 구분한다.
- 검산용 54개 직접 적분 위치와 24개 flux trace 위치는 서로 다르다. 중앙면의 두께
미분 양쪽 값을 평균하거나 요소 경계를 넘어 flux를 합치지 않는다.
- 반력 열률은 열용량 항을 포함한 full residual로 정의한다. Fourier flux와
반력 열률을 같은 observable로 대체하지 않는다.
- Thin-shell 곡률 근사, 다른 두께·fold의 접속, 초기 온도 jump와 결과 schema는
[PRD 상세 계약](PRD.md#sth-c01--모델-geometry와-자유도)을 따른다. Edge 입력 011은 이번 구현에서 연기한다. 미지원 의미를 임의 default로 처리하지 않는다.
- 기존 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다.
내부 온도점 경계조건을 공개 입력 기능으로 확대하는 근거로 사용하지 않는다.
## 문서 소유권과 인계
| 문서 | Owner | 책임 |
| --- | --- | --- |
| [FEATURED_AGENTS.md](FEATURED_AGENTS.md) | 메인 assistant | 지역 지침·소유권·문서 연결 |
| [PRD.md](PRD.md) | 메인 assistant | 요구사항·제외·acceptance·현재 checklist |
| [ADR.md](ADR.md) | 메인 assistant | 채택 결정·승인 근거·이유와 영향 |
| [design-plan.md](design-plan.md) | 메인 assistant | 방법론 요약·코드 연결·구현 순서 |
| [formulation.md](formulation.md) | formulation-agent | 수식·geometry·보간·적분·시간 갱신·recovery |
| [numerical-review.md](numerical-review.md) | numerical-review-agent | 독립 검산·수치 위험·검증 설계 |
I/O·구현은 design-plan의 작업별 owner에게 할당하고 physics 평가는 독립 검토자에게 할당한다. 필요한 PRD 항목과 관련
전문 문서의 절, 수정 파일, 검증 기준을 전달하고 결과·변경 경로·미해결 항목을 반환한다.
## 변경 확인
문서 변경은 요구사항 ID·결정 상태·수식의 위치/부호·상대 링크·diff 정합으로 확인한다.
문서만 바꾸면 build/test를 실행하지 않는다. 구현 시 검증 명령과 단계별 기준은
[계획안의 검증 실행](design-plan.md#11-검증-실행과-완료-판단) 및 프로젝트 지침을 따른다.
정확 산술 검산, solver build/CTest, 외부 reference 비교, 실제 결과의 physics 검토를
서로 다른 evidence로 기록하고 미실행 항목을 통과로 표시하지 않는다.
Uncoupled Q4×two-P2·consistent C·Backward Euler가 현재 범위다. DOF11/13/15는 bottom/mid/top이고
공개 지정온도·열률은11/15만 지원한다. 중립면의 양쪽 flux trace를 평균하지 않는다.
원본 NT11은 수치 FAIL을 보존한 diagnostic이며 새 필수 reference는 준비 중이다.
Edge 열입력·내부 station BC·열-구조 연성을 확대하지 않는다. Private full-end fixture를
공개 입력 지원이나 접합부의 실제3D 전도 검증으로 해석하지 않는다.
+1 -1
View File
@@ -9,7 +9,7 @@
[공통 ADR](../ADR.md#adr-028), [ARCHITECTURE](../ARCHITECTURE.md),
[CODINGSTYLE](../CODINGSTYLE.md), [TOLERANCE](../TOLERANCE.md).
지역 지침은 [FEATURED_AGENTS](FEATURED_AGENTS.md), 결정 근거는 [ADR](ADR.md),
수식은 [formulation](formulation.md), 구현 순서는 [design-plan](design-plan.md),
수식은 [formulation](formulation.md), 구현 순서는 [design-plan](design.md#design-plan),
독립 수치 판정은 [numerical-review](numerical-review.md)를 따른다.
개인 연구용 솔버가 일차 목적이며 외부 배포와 양방향 열–구조 연성은 장기 목표다.
@@ -0,0 +1,36 @@
# Shell transient heat transfer
## 목적과 개발 결과
5개 두께 온도점을 가진 Q4×two-P2 shell의 단일 uncoupled transient heat transfer다.
K/C, Backward Euler, 온도·24개 Fourier flux trace·열용량을 포함한 반력, 입력·CLI·atomic
HDF5 저장을 구현했다. 추가139개 검사 모두 PASS이며 전체617개는614 PASS·기존 HHT2 FAIL·1 SKIP다.
새 필수 reference 모델·NT11 CSV가 준비 중이므로 외부 검증 완료 상태는 아니다.
## 계약과 사용법
- [PRD](PRD.md)·[ADR](ADR.md): 승인 범위·제외·현재 checklist·reference 진단 전환.
- [정식화](formulation.md): geometry·station·K/C·BE·flux·반력의 정확한 의미.
- [설계와 Handoff](design.md): 계산 방법과 모듈 연결.
- [독립 수치 검토](numerical-review.md), [oracle 재현](verification-oracles.md).
- [구현·전체 회귀](implementation-verification.md), [물리 평가](physics-evaluation.md),
[원본 reference 불일치](reference-comparison-conflict.md).
환경·CLI는 [operations](../operations.md), 승인 keyword와 결과 schema는 PRD 상세 계약을
따른다. Source DOF11/13/15는 bottom/mid/top이며 공개 지정온도·절점 열률은11/15만 지원한다.
Edge 열입력·열-구조 연성·복합재 단면·온도의존 물성은 이번 범위가 아니다.
## 재사용 Handoff와 교훈
Consistent capacity와 raw 초기값을 유지하고 첫 BC jump를 투영하거나 음수를 clamp하지 않는다.
중립면의 양쪽 flux trace를 평균하지 않는다. Fold/두께 단차의 station 공유는 실제3D 접촉 전도와
동등하지 않다. 초기 두께 경계층의 국소 flux/반력, 일반 곡면 전체 응답·점열원 수렴은 검증 한계다.
기존 NT11 비교는729행 중87행 FAIL·RMS/S 약0.0496741을 보존한 diagnostic이며 tolerance는 그대로다.
Slab 에너지/반력 oracle index 오류는 수정 후 전체 focused 검사를 다시 실행했다.
## 다음 작업과 보존 자료
새 모델·CSV의 별도 경로, source identity·시점·hash를 확정하고 필수 family를 실제 비교한다.
dev 병합은 사용자의 통합 승인이고 외부 검증 통과 승인이 아니다.
삭제한 worktree의 자료는 dev checkout 기준
`.dryforge/retained/shell-transient-heat-transfer-20261004/`에 보존했고 경로 대응은 구현 검증 보고서에 있다.
@@ -1,13 +1,20 @@
# Shell Transient Heat Transfer 상세 설계·구현 계획안
# 구현 방법과 재사용 Handoff
현재 구현·검증 상태는 [PRD](PRD.md)와 [구현 검증](implementation-verification.md)을 따른다. 아래는 채택 방법론이며 새 실행 계획이 아니다.
<a id="design-plan"></a>
<a id="design-plan--shell-transient-heat-transfer-상세-설계구현-계획안"></a>
## Shell Transient Heat Transfer 상세 설계·구현 계획안
- 상태: 사용자 승인 실행 계획. 구현·검증 진행 중이며 수치 통과 evidence와 구별한다.
- Owner: 메인 assistant
- 기준: [Feature PRD](PRD.md), [프로젝트 지침](../../AGENTS.md), [ARCHITECTURE](../ARCHITECTURE.md),
[CODINGSTYLE](../CODINGSTYLE.md), [TOLERANCE](../TOLERANCE.md)
- 수식의 상세 원본: [정식화](formulation.md). 현재 checklist는 [PRD](PRD.md#현재-checklist)에만 둔다.
- 독립 검토: [numerical-review.md](numerical-review.md). 수식의 일관성 검토이며 구현·정확도 통과 판정은 아니다.
## 1. 구현할 해석과 채택 방법
<a id="design-plan--1-구현할-해석과-채택-방법"></a>
### 1. 구현할 해석과 채택 방법
입력의 4절점 Shell mesh에서 온도만 풀며, 한 절점에 두께 방향 온도 5개를 둔다.
요소당 20개 온도 자유도로 면내·두께 방향 전도와 열저장을 함께 계산한다.
@@ -27,7 +34,8 @@
특히 consistent C가 현재 reference의 과도응답을 공통 tolerance 안에서 재현하는지는
아직 검증하지 않았다. 시간 적분의 안정성이 양의 온도 보존이나 정확도를 보장하지도 않는다.
## 2. 온도 자유도와 보간
<a id="design-plan--2-온도-자유도와-보간"></a>
### 2. 온도 자유도와 보간
온도점의 무차원 두께 좌표는 `ζ = [-1, -1/2, 0, 1/2, 1]`, 실제 좌표는 `z=hζ/2`다.
요소 vector는 node-major 순서로 정의한다.
@@ -47,7 +55,8 @@ N_a(\xi,\eta)L_s(\zeta)T_{a,s}=\mathbf H\mathbf T_e.
Q4의 `N_a`와 두께의 `L_s` 및 도함수는 [정식화](formulation.md)에 명시한다.
5개의 서로 독립적인 2D 판을 만드는 것이 아니라, 두께 도함수 항으로 온도점 사이를 결합한다.
## 3. 3차원 geometry와 열전도행렬 K
<a id="design-plan--3-3차원-geometry와-열전도행렬-k"></a>
### 3. 3차원 geometry와 열전도행렬 K
Midsurface를 `r(ξ,η)=Σ N_a x_a`로 나타낸다. 접선 행렬 `A=[r_,ξ r_,η]`, metric
`G=AᵀA`, 면적 Jacobian `J_s=|r_,ξ×r_,η|`, 단위 법선 `n`을 계산한다.
@@ -77,7 +86,8 @@ product-domain 모델의 교차항은 0이다. 평판에서 각각 대략 `kh`,
두께가 다른 요소의 단차·급한 fold의 실제 3D 접합부 열장은 이 모델의 해상 범위 밖이다.
이 접속 의미와 얇은 Shell 곡률 근사는 사용자가 채택한 물리 모델이며 상세 3D 전도를 보장하지 않는다.
## 4. 열용량행렬 C와 적분 절차
<a id="design-plan--4-열용량행렬-c와-적분-절차"></a>
### 4. 열용량행렬 C와 적분 절차
밀도 `ρ>0`, 비열 `c>0`에 대해
@@ -103,7 +113,8 @@ Affine 평판은 면내 2×2 × 두께 6점, 총 24점으로도 정확하다. 5
위치, 아래의 flux trace 위치는 서로 다른 개념이다. 곡면은 면내 3×3→5×5→7×7 대조로
적분 오차를 평가하며 reduced integration이나 hourglass 안정화항을 추가하지 않는다.
## 5. 열입력과 지정 온도
<a id="design-plan--5-열입력과-지정-온도"></a>
### 5. 열입력과 지정 온도
공개 입력은 source DOF 11/15에 대한 일정한 절점 집중 power P만 지원한다.
양수는 모델로 공급되는 열이며 h·면적·shape weight를 곱하지 않는다. Source row 순서로
@@ -115,7 +126,8 @@ BC 생략값은 0이며 model 단계와 step 단계 각각에서 중복 충돌
동일 target의 model 값을 덮어쓴다. 동일 값 중복은 허용하고 다른 값은 오류다.
정확한 subset·미지원 옵션·no-op warning은 [PRD STH-C02](PRD.md#sth-c02--공개-입력-충돌과-부가-keyword)를 따른다.
## 6. Transient equation과 해법
<a id="design-plan--6-transient-equation과-해법"></a>
### 6. Transient equation과 해법
\[
\mathbf C\dot{\mathbf T}+\mathbf K\mathbf T=\mathbf Q+\mathbf R.
@@ -152,7 +164,8 @@ free/constrained partition에서
전체 구속 시 0×0 free solve를 건너뛰도록 검산한다. 다만 이번 공개 입력은 bottom/top만
구속하므로 내부 3개 온도점까지 모두 구속한 사례는 CLI 지원 모델이 아닌 algebra fixture다.
## 7. Heat flux와 reaction heat rate 복구
<a id="design-plan--7-heat-flux와-reaction-heat-rate-복구"></a>
### 7. Heat flux와 reaction heat rate 복구
각 완료 증분에 element scatter로 `T_e`를 모아, 동일한 B로
@@ -183,7 +196,8 @@ free 성분은 평형 잔차, constrained 성분은 지정 온도 유지에 필
양의 반력은 모델에 추가로 공급한 열이다. transient 반력에는 열저장 항이 포함되어야 한다.
초기 온도는 저장하지만 `t=0` flux와 reaction dataset은 생성하지 않는다. 반력을 계산된 0이나 NaN으로 대체하지 않는다.
## 8. 기존 코드와 연결할 책임·파일
<a id="design-plan--8-기존-코드와-연결할-책임파일"></a>
### 8. 기존 코드와 연결할 책임·파일
현재 `Element::Recover`는 displacement를 소비하고 `DofManager`는 `kDofsPerNode=6`을
전제로 한다. 따라서 parser에 DS4만 추가해서 완료할 수 없다. 다음은 실제 저장소 경로와
@@ -204,35 +218,8 @@ Domain이 정의를 소유하고 AnalysisModel이 non-owning view를 제공하
새 thermal state만 temperature/history를 소유한다. Node/Element에 equation 번호를 저장하지 않는다.
열용량 C를 structural mass field에 저장하지 않으며 vendor API는 기존 backend 경계에 둔다.
## 9. 구현 순서와 각 단계의 완료 조건
아래 dependency는 승인된 실행 계획이다. 같은 행의 독립 작업만 병행하며 완료 evidence 없이
후속 수치 kernel로 진행하지 않는다. 공통 CMake 등록은 메인이 각 묶음 통합 시 소유한다.
| 작업 | 선행 작업 | 소유 대상·목적 | 검증 |
| --- | --- | --- | --- |
| T1 | 없음 | 메인: 지역 지침/PRD/ADR/계획; 정식화 담당: formulation; 독립 numerical 담당: numerical-review | 전체 patch·roundoff·시간격자·수렴·slab 오차의 구체적 기준 확정 |
| T2 | 없음 | 구현 담당: material/model/Domain/AnalysisModel의 thermal 의미·소유권 | 양성/불량 값·source identity·structural 회귀; parser/kernel/DOF 제외 |
| T3 | T1,T2 | 구현 담당: thermal geometry·20 DOF K/C·24 trace kernel·Domain geometry 연결·공유 시간격자 계산 | Exact M/S/Z, 직접54점, rank/SPD/null, scaling·rotation·trace·geometry 음성·시간격자 경계 |
| T4 | T2 | 구현 담당: DofManager thermal layout/scatter/pattern | 구조6·열5 분리, 활성 node와 stable 번호, partition·공유 node |
| T5 | T3 | 구현 담당: Abaqus thermal subset·semantic mapping·진단 | 승인 input/default/override/no-op와 모든 미지원·충돌 사례 |
| T6 | T3,T4 | 구현 담당: deterministic assembly·thermal state/result record | K/C·source-ordered Q·초기 상태·순서와 공유 recovery 인터페이스 |
| T7 | T6 | 구현 담당: BE procedure·복구·full residual·candidate | Exact 두 증분·no BC·짧은 마지막·factor reuse·수지·실패 state 보존 |
| 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 한계 |
행동 변경은 기대 결과를 고정한 검사에서 실패를 확인한 뒤 구현한다. 구현 구조를 복제한
expected 값으로 정확도를 주장하지 않는다. 독립 numerical/physics 검토를 구현자의 자기 승인으로 대체하지 않는다.
각 담당은 할당 파일만 수정하고 source/reference artifact와 공통 프로젝트 계약을 임의 변경하지 않는다.
입력의 INC 사전검사와 procedure는 같은 시간격자 계산을 사용해야 한다. T1에서 검토한
시간격자 함수를 T3의 공통 thermal validation 경계에서 구현하고 T5와 T7이 재사용한다.
이 파일 소유권 배분은 승인된 dependency를 유지하며 parser와 procedure에 같은 수식을
각각 구현하거나 아직 존재하지 않는 후속 procedure에 parser를 의존시키지 않기 위한 것이다.
## 10. 방법론을 반증할 검증 사례
<a id="design-plan--10-방법론을-반증할-검증-사례"></a>
### 10. 방법론을 반증할 검증 사례
필수 사례의 원본은 [PRD STH-C07](PRD.md#sth-c07--독립-검증과-수치-계약의-선행-조건)이다.
정확 fixture·norm·시간/mesh 목록·oracle 절단 및 order 판정은 [독립 수치 검토](numerical-review.md)가 소유한다.
@@ -252,33 +239,8 @@ expected 값으로 정확도를 주장하지 않는다. 독립 numerical/physics
E=1ᵀCT의 기준 온도 이동에 대한 DeltaE 불변성과 BE C-norm 소산은 서로 다른 검사다.
외부 5%/1% 기준으로 내부 수지를 판정하거나 max(1,scale)로 작은 모델의 오류를 숨기지 않는다.
## 11. 검증 실행과 완료 판단
Production 변경 전에 전체 baseline을 실행하고 실제 실패 이름·metric·환경을 기록한다.
구현 중 관련 검사를, 기능 완료 시 아래 전체 검사를 실행한다.
```powershell
cmake --preset windows-msvc-ninja-debug
cmake --build --preset windows-msvc-ninja-debug
ctest --preset windows-msvc-ninja-debug --show-only=json-v1
ctest --preset windows-msvc-ninja-debug --output-on-failure
```
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의 경로·identity·비교량이 확정된 뒤
필수 비교를 실행한다.
실제 명령/exit, hash, baseline 및 최종 결과는 implementation-verification 문서에 기록한다.
재현된 무관한 기존 HHT 시간수렴 실패는 전체 검사에서 제외하지 않고 마지막에도 비교한다.
새 실패나 기존 실패 악화를 허용하지 않으며 기존 실패가 남으면 전체 CTest green이라고 보고하지 않는다.
열해석의 필수 physics/reference 실패에는 이 예외를 적용하지 않는다.
## 12. 채택 모델의 한계
<a id="design-plan--12-채택-모델의-한계"></a>
### 12. 채택 모델의 한계
Product-domain은 실제 offset 곡률과 상세 접합부를 해상하지 않는다. 고정5점은 초기 두께
경계층을 충분히 해상하지 못할 수 있고 면내 refinement가 두께 오차를 제거하지 않는다.
@@ -112,7 +112,7 @@ Abaqus 실행·reference 재생성·이름 변경·내용 보정은 수행하지
가장 큰 mesh의 온도·flux 원시 이력은 약 77.3MiB다.
- 고정5점의 초기 slab 오차·warped 3×3 적분 오차는 별도로 정량화했다.
통합된 문서의 [독립 oracle 부록](numerical-oracle-scratch.md)의 Python block 5개를
통합된 문서의 [독립 oracle 부록](verification-oracles.md#독립-oracle와-재현)의 Python block 5개를
메인이 다시 추출 실행했다. Captured Python exit 0,
`ALL SCRATCH BLOCKS COMPLETED`를 확인했고 출력은
`.dryforge/evidence/t1-oracle-replay.log`에 보존했다.
@@ -10,7 +10,7 @@
정량 기록했다. 지원 방법·geometry·외부 tolerance 변경을 제안하거나 승인하지 않는다.
- 기준: [정식화](formulation.md), [승인 ADR](ADR.md), [공통 수치 기준](../TOLERANCE.md),
[개발 규칙](../standards.md), [수치 주의점](../engineering-notes.md).
재현 계산은 [scratch appendix](numerical-oracle-scratch.md)에 있다.
재현 계산은 [scratch appendix](verification-oracles.md#독립-oracle와-재현)에 있다.
Reviewer는 정식화 작성자가 아니며 production·test·reference를 수정하지 않았다.
## 1. 판정과 이전 검토의 정리
@@ -188,7 +188,7 @@ upper(||A^-1||∞)≤upper(||Z||∞)/(1−θ)가 rigorous inverse-norm bound다.
정확 coefficient의 E_A/E_b도 numerator에 E_A||T_f||∞+E_b로 더한다.
이때 stored A의 inverse 상계를 J라 하면 J E_A<1을 확인하고 정확 A*의 inverse는
J/(1−J E_A)로 넓힌다. 따라서 absolute forward bound는
[J/(1−J E_A)](R_cert+E_A||T_f||∞+E_b)다(E_A/E_b는 ∞ norm bound).
`[J/(1−J E_A)](R_cert+E_A||T_f||∞+E_b)`다(E_A/E_b는 ∞ norm bound).
이 denominator의 조건을 증명하지 못하면 inconclusive이며 clamp/상한 확대는 금지다.
큰 **구조화된 convergence fixture**는 inverse나 최악 β_limit 없이 다음 C-norm
@@ -565,7 +565,7 @@ Missing/extra/duplicate/nonfinite/frame/instance/station 오류는 tolerance 전
git rev-parse --show-toplevel로 T1 worktree를 확인했다(exit0).
NumPy/SciPy import 환경 probe는 NumPy 부재로 exit1;설치 없이 표준 라이브러리
scratch로 전환했다. [Appendix](numerical-oracle-scratch.md)의 명령은 Python blocks를
scratch로 전환했다. [Appendix](verification-oracles.md#독립-oracle와-재현)의 명령은 Python blocks를
지정 순서로 메모리에서 실행한다. 실제 scratch exit0의 핵심 출력:
- Fraction:C positive pivot20,K positive leading pivot19/K1=0,1ᵀC1=2;
@@ -1,3 +1,7 @@
# 독립 oracle와 재현
수치 검토에 사용한 exact/rational·spectral·Gauss 검산 코드를 보존한다. 코드의 결과는 당시 정식화 검산이며 실제 solver의 전체 검증을 대신하지 않는다. 실제 실행·소스·한계는 [구현 검증](implementation-verification.md)과 [수치 검토](numerical-review.md)를 따른다.
# 독립 numerical oracle scratch
이 파일은 numerical-review.md의 사전 계산을 재현하는 문서 부록이다. Solver 또는