modify documents
This commit is contained in:
@@ -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 전도 검증으로 해석하지 않는다.
|
||||
|
||||
@@ -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/`에 보존했고 경로 대응은 구현 검증 보고서에 있다.
|
||||
+28
-66
@@ -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;
|
||||
|
||||
+4
@@ -1,3 +1,7 @@
|
||||
# 독립 oracle와 재현
|
||||
|
||||
수치 검토에 사용한 exact/rational·spectral·Gauss 검산 코드를 보존한다. 코드의 결과는 당시 정식화 검산이며 실제 solver의 전체 검증을 대신하지 않는다. 실제 실행·소스·한계는 [구현 검증](implementation-verification.md)과 [수치 검토](numerical-review.md)를 따른다.
|
||||
|
||||
# 독립 numerical oracle scratch
|
||||
|
||||
이 파일은 numerical-review.md의 사전 계산을 재현하는 문서 부록이다. Solver 또는
|
||||
Reference in New Issue
Block a user