Files
FESADev/docs/shell-transient-heat-transfer/physics-evaluation.md
T
2026-10-04 00:14:47 +09:00

56 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Shell transient heat transfer — T10 물리 결과 평가
평가 대상은 T10 소스 `9e8afb9`의 실제 MSVC focused 실행이다. 메인 병합 후 HEAD는
`9f7fb2e`다. [승인 계약](PRD.md) STH-C03/C04/C07/C08,
[수치 기준](numerical-review.md), [reference 결정](ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)을
적용했다. 이 평가는 T10 결과의 물리 개연성 검토이며 기능 완료 또는 release 승인이 아니다.
실행 근거는 작업 checkout의
`.dryforge/worktrees/T2/.dryforge/evidence/t10-final-focused-test.log`,
`t10-final-focused-LastTest.log`, `t10-final-metrics.json`,
`t10-final-eigen-source-sha256.json`, `t10-final-reference-after-sha256.json`이다.
소스 manifest는 실행한 physics/oracle/comparator 파일 8개를 식별하고 metrics의
`source_hashes_match=true`다. Focused CTest는 **26/26 PASS, native exit 0**이다.
실행 JSON은 commit 전 revision `95ba2c5`를 기록하지만 T2 작업트리의 8개 raw hash는
최종 commit `9e8afb9`와 일치한다. 메인 checkout의 일부 raw byte 차이는 CRLF 변환이며
LF 정규화 내용은 8개 모두 같다.
이 숫자에는 원본 reference가 수치 실패로 남았는지를 확인하는 진단 테스트의 PASS가
포함된다. 따라서 26/26을 원본 수치 비교의 통과로 읽을 수 없다.
| 물리 항목 | 실제 결과와 계산 | 판정 범위 |
| --- | --- | --- |
| 단열·잔차·에너지 | 0, +2, -2 균일 온도 8증분에서 시작값 유지; 0장은 수지/소산 defect가 정확히 0. 실제 38개 `THERMAL_PHYSICS` run의 최대 free `beta=1.0613e-14`, full `physical_beta=1.1041e-14`, 최대 `energy_defect=7.2165e-16`; 각 run의 최대 `energy_defect/energy_bound=0.001161`. 단열에서 최대 `dissipation_defect/dissipation_bound=6.194e-5`. | 기록된 승인 roundoff bound 안. `beta`·수지·소산 defect 자체는 production 증분 evidence이며, 테스트는 이를 bound와 대조한다. 독립적인 40-DOF 두 component 수지 계산은 아래 항목이다. C-norm 소산은 실제 열에너지 수지와 구별한다. |
| 부호·component 수지·반력 | 두 분리 영역의 signed 입력에서 첫 영역 `+3`의 constrained 입력을 제거해도 온도 이력은 동일하고 반력은 `-3`만큼 변한다: `R_with-R_without=-3` [power]. 두 번째 영역의 `+2+3-5=0`이며 독립 용량 적분에서 `ΔE₂≈0`; 첫 영역은 `ΔE₁-dt·R≈0`을 승인 bound로 확인한다. | 외력 `Q`가 full residual에 남고 reaction 양수가 모델 공급이라는 STH-C04 부호와 일치한다. 검사는 상태/반력 벡터를 읽는다. |
| 두께·재료·접힘 | 길이 1씩, `k₁h₁=1`, `k₂h₂=5`, 폭 1의 전단면 strip 저항 `R=1+1/5=1.2`, `ΔT=1`이므로 `P=1/R=5/6=0.8333333333333333`. 평판·90° 접힘 모두 출력 반력 `0.8333333333333877`, 차이 약 `5.44e-14`, 서로 같은 반력. Flux는 첫 요소 `-5/6` x, 두 번째 요소 평판 `-5/3` x / 접힘 `-5/3` z 방향이다. | 길이·두께·물성에 맞는 열률 및 전역 방향이다. **모든 두께 station을 양 끝에서 구속하고 C=0으로 둔 내부 assembly fixture**이므로 공개 bottom/top-only CLI 사례의 검증으로 확대할 수 없다. 접힘의 실제 3D 접합장도 해상하지 않는다. |
| Flux 방향·trace | `T=2+3x-2y+4(hζ/2)`의 직접 복구에서 `q=(-3k,+2k,-4k)` [power/area]. 회전 후 벡터도 함께 회전하고 법선 반전에는 station이 재매핑된다. `T_station=(0,0,0,1,2)`에서는 중립면 `q₃(0-)=0`, `q₃(0+)=-4k/h`; 평균하지 않는다. Frame은 직교·right-handed 조건을 검사한다. | Fourier 부호와 한쪽 trace 의미에 부합한다. 이 affine/trace 검사는 내부 all-constrained partition fixture이며 공개 BC 허용 범위를 넓히지 않는다. |
| 시간·면내 수렴 | 고정 8×8 eigenmode의 N=16→256에서 N=32/64/128/256 오차 `0.00567442, 0.00285549, 0.00143237, 0.000717347`; 관측 차수 `0.981712, 0.990734, 0.995336, 0.997660`, 승인 `[.97,1.02]`. 8/16/32/64 면내 mesh의 T L2 차수 `1.99670, 2.00077, 2.00658` 및 gradient L2 차수 `0.997220, 0.999305, 0.999826`, 승인 `[1.95,2.05]`/`[.98,1.03]`. 최대 time/spatial ratio `0.0068633<1/32`. | 실제 전체 node×5 station 온도 벡터와 독립 eigen/Fourier oracle를 비교한다. 단위 k=1 fixture에서는 gradient 차수가 flux의 공간차수를 대표한다. 일반 점열원·곡면에 이 smooth 수렴차수를 주장하지 않는다. |
| 두께 slab 응답 | 단위 면적, `h=k=rho=c=1`, 초기 0, bottom 1, top 단열의 1×1/2×2 mesh, 시간 `.001,.01,.05,.1,.5,1`, N=4096/8192에서 실제 온도·global q₃·용량 적분 E·반력 합을 각각 독립 finite-N P2 및 Fourier oracle와 대조한다. 96개 quantity-group 결과 중 최대 finite-BE gap/bound `0.01871`, 최대 물리오차/(D_space+D_time+B_oracle+B_solver) `0.999979`; 1×1/2×2 차이는 각 승인 roundoff 안이다. | 두꺼운 layer의 같은 두께 오차가 면내 refinement로 사라지지 않는 결과와 일치. `.001≤t*≤.1`, N=8192의 네 물리량은 모두 plateau 조건 성립. `.5,1`에서는 flux만 plateau이고 T/E/R은 미도달로 표기한다. |
초기 slab에서 `sqrt(alpha·t)=0.03162h` (`t*=.001`)는 station 간격 `0.25h`,
P2 segment 길이 `0.5h`보다 훨씬 작다. 따라서 N=8192에서도 Fourier 대비 최대
무차원 오차는 T `0.13999998`, q `10.64818068`, E `0.03031342`, bottom 반력
`10.86926883`이다. 각각 승인된 `D_space=0.141,10.7,0.0304,10.9`와
시간/roundoff 예산 안이지만, **초기 경계층의 국소 flux 및 반력 정확도는 낮다**.
이 수치 일치는 5점 모델의 의도한 제한을 드러내며 일반 shell의 정확도 보증은 아니다.
`t*=1`의 E는 `E_space=1.58234e-5`, `D_time=2.55629e-5`로 시간오차가 더 커서
plateau 관측을 주장하지 않는다. Slab의 q, E, 반력 계산은 solver 결과를 별도로
집계하지만 Fourier/P2 목표값과 bound는 테스트 oracle가 제공한다.
원본 `reference/shell-thermal/` 입력/CSV SHA256은 계약의
`955C8BEE…00D6EA4` / `765B0D0F…10D3E5`와 일치한다. 실제 HDF5와 비교한
Step-1, `t=37`, NT11 729행에서 **87행 실패**, `RMS/S=0.049674084615673214`
(`S=1000`, `B=10`, 승인 family 한계 `0.01`), 최대 절대차 `245.26294650091936`이다.
STH-ADR-015에 따라 이는 **수치 FAIL인 진단 family**로 유지한다. 독립 승인식 oracle도
같은 불일치를 보였다는 [충돌 기록](reference-comparison-conflict.md)은 원인 범위를
좁히지만 Abaqus 내부 정식화의 옳고 그름을 판정하지 않는다. 분리 경로의 새 필수
reference 모델/CSV가 없어 해당 비교는 **미실행이며 완료 차단**이다.
검증 범위의 경계: T10 물리 검사는 `Domain → Assembly → MKL 증분 → accepted state`
결과를 주로 평가하며 공개 CLI/HDF5의 모든 물리량을 각 증분마다 별도 재적분하지는
않는다. 원본 reference는 실제 HDF5 경로를 사용하나 NT11 한 성분·한 시점뿐이다.
Warped/곡면 전도 응답, 접힘·두께 단차의 국소 3D 전도, 큰 `h/곡률`, 초기 두께
경계층, 점열원 근처 mesh-independent flux는 이 evidence로 검증되지 않는다.
`STH-C01`의 normalized station 공유도 실제 물리 z 일치 또는 접촉 전도를 뜻하지
않는다. T10 focused 26개는 전체 회귀 결과가 아니다. 물리적으로 확인된 범위는
위 균일·affine·strip·smooth 면내·slab fixture에 한정한다.