141 lines
9.5 KiB
Markdown
141 lines
9.5 KiB
Markdown
# Shell Transient Heat Transfer 결정 기록
|
||
|
||
- Feature ID: `shell-transient-heat-transfer`
|
||
- Owner: 메인 assistant
|
||
- 상태: Accepted (구현 검증 완료와 구별)
|
||
- 승인 근거: ready 인터뷰의 개별 선택, 최종 “네 승인합니다”, 후속 `dryforge:go` 요청.
|
||
|
||
기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md),
|
||
[공통 ADR](../ADR.md#adr-028). 요구사항과 현재 checklist는 [PRD](PRD.md),
|
||
지역 소유권은 [FEATURED_AGENTS](FEATURED_AGENTS.md)를 따른다.
|
||
아래 결정은 이전 Proposed 상태를 대체하며 실제 계산 결과의 정확도 승인을 의미하지 않는다.
|
||
수식 원본은 [formulation](formulation.md), 독립 판정은 [numerical-review](numerical-review.md)다.
|
||
|
||
## STH-ADR-001: Uncoupled transient 범위
|
||
|
||
- 상태: Accepted
|
||
- 결정: 구조해석과 분리된 단일 Shell 과도 열전달 procedure를 구현한다.
|
||
- 이유: 사용자가 “지금은 uncoupled heat transfer를 구현합니다”라고 명시했다.
|
||
- 영향: 열응력·변형 피드백·양방향 연성은 장기 목표이며 이번 acceptance에서 제외한다.
|
||
|
||
## STH-ADR-002: 다섯 두께 온도점
|
||
|
||
- 상태: Accepted; 초기 두께 등온 선택을 대체
|
||
- 결정: 균질 centered section의 온도점은 항상 다섯 개다. 면내 및 두께 전도를 계산한다.
|
||
Source DOF 11/13/15는 bottom/midsurface/top이다.
|
||
- 이유: 기존 DS4 reference와 사용자가 선택한 두께 방향 범위를 유지한다.
|
||
- 영향: 적층·사용자 선택 온도점 수·삼각형은 제외하며 Abaqus 내부 정식화 동등성을 주장하지 않는다.
|
||
|
||
## STH-ADR-003: 상수 물성과 제한된 열입력
|
||
|
||
- 상태: Accepted; edge 부분은 STH-ADR-012로 대체
|
||
- 결정: 양의 유한 상수 k/rho/c와 요소 집합별 재료·일정 두께를 사용한다.
|
||
초기 온도는 node/Nset별로 지정하되 한 절점의 두께 전체에 동일하다.
|
||
지정 온도와 집중 열입력은 source DOF 11/15에만 허용하며 step 중 일정하다.
|
||
- 이유: 사용자 선택 범위에서 독립 검증 가능한 첫 열해석 기능을 구성한다.
|
||
- 영향: 온도 의존·이방성·표면 분포 flux·대류·복사·내부 발열·내부 station 직접 입력은 제외한다.
|
||
Concentrated P는 signed power이며 h나 면적을 곱하지 않는다. 중복 하중은 source 순서로 합한다.
|
||
|
||
## STH-ADR-004: 모든 완료 증분과 초기 온도 저장
|
||
|
||
- 상태: Accepted
|
||
- 결정: 초기 raw 온도와 모든 완료 증분의 온도·flux·반력 열률을 공식 HDF5에 저장한다.
|
||
- 이유: 한 시점의 reference 외에도 전체 과도응답을 검증해야 한다.
|
||
- 영향: Output no-op 요청이 필수 저장량을 줄이지 않는다. 초기 flux/reaction dataset은 없다.
|
||
종료 규칙은 009, 영속 schema는 013을 따른다.
|
||
|
||
## STH-ADR-005: NT11 외부 비교와 독립 물리 검증
|
||
|
||
- 상태: Accepted
|
||
- 결정: 기존 CSV의 Step-1, t=37, NT11을 필수 비교하고 나머지는 해석해·수지·수렴으로 검증한다.
|
||
- 이유: Reference의 실제 coverage는 단일 시점의 아랫면 온도 729행이다.
|
||
- 영향: 공통 TOLERANCE의 row/family 기준을 유지한다. 추가 Abaqus CSV나 Abaqus 실행은 필수가 아니다.
|
||
원본 음수·단위·시간을 보정하지 않는다. Source identity 오류는 tolerance 전에 거부한다.
|
||
|
||
## STH-ADR-006: 단일 step
|
||
|
||
- 상태: Accepted
|
||
- 결정: 초기 온도에서 일정한 지정 온도·열입력으로 하나의 transient step을 수행한다.
|
||
- 이유: 사용자의 명시 범위 선택이다.
|
||
- 영향: 여러 step, restart, 시간 변화 amplitude와 자동 시간 증분을 제외한다.
|
||
|
||
## STH-ADR-007: Q4×P2 두 구간과 consistent K/C
|
||
|
||
- 상태: Accepted; 이전 수치 방법 Proposed 상태를 대체
|
||
- 결정: 요소당 20 DOF, Q4 면내 보간과 C0 두 구간 P2 두께 보간을 사용한다.
|
||
K=integral(B^T k B), C=integral(rho c H^T H), 면내 3×3 Gauss와 두께 exact Z를 채택한다.
|
||
- 이유: 전도·열저장·반력·에너지를 같은 Galerkin 보간으로 연결하며 직접 54점 적분으로 검산할 수 있다.
|
||
- 대안·영향: Lumped C, reduced integration, hourglass, 인공 확산과 온도 clamp는 추가하지 않는다.
|
||
Consistent C는 급변 경계에서 positivity를 보장하지 않으며 일반 warped patch의 3×3은 exact가 아니다.
|
||
Reference 실패에 맞춰 방법을 변경하지 않는다. 수치 상세 기준은 구현 전 독립 검토한다.
|
||
|
||
## STH-ADR-008: 실제 midsurface metric과 normalized station 접속
|
||
|
||
- 상태: Accepted; 이전 물리 범위 검토 대기를 대체
|
||
- 결정: 실제 bilinear 3D midsurface의 metric/법선을 사용하고 두께 offset 곡률 보정을 생략한다.
|
||
공유 source node의 같은 normalized station을 접속하며 fold와 두께 단차도 같은 규칙을 사용한다.
|
||
- 이유: 승인한 4절점 Shell과 다섯 온도점을 일관된 product-domain으로 표현한다.
|
||
- 영향: 접합부의 상세 3D 전도·접촉 저항·추가 부피/용량을 해상하지 않는다.
|
||
방향이 일관된 manifold mesh만 허용하며 T-edge/vertex-only 접합을 거부한다.
|
||
전체 patch validity를 검증하고 수치적으로 증명할 수 없는 geometry는 진단한다.
|
||
임의 warp/aspect cutoff나 자동 normal flip·node weld로 지원 의미를 바꾸지 않는다.
|
||
|
||
## STH-ADR-009: Backward Euler와 마지막 짧은 증분
|
||
|
||
- 상태: Accepted; 이전 정수 배수 종료 제한 제안을 대체
|
||
- 결정: A=C/delta+K를 사용하고 동일 계수 factorization을 재사용한다.
|
||
기본 dt로 진행하고 종료까지 남은 구간만 단축한다. dt>T_end이면 한 증분이다.
|
||
- 이유: 사용자의 시간 제어 선택을 유지하며 정확한 종료 시점을 저장한다.
|
||
- 영향: 마지막 delta가 실제로 달라지면 재분해하고 RHS·반력·수지 모두 같은 delta를 사용한다.
|
||
n*dt 기반 시간격자의 표현오차와 INC 사전검사를 고정한다. 무구속 transient도 유효하다.
|
||
Generic all-constrained 처리는 algebra 검증이며 공개 내부 station BC 지원이 아니다.
|
||
|
||
## STH-ADR-010: Raw 초기값과 step BC override
|
||
|
||
- 상태: Accepted; 이전 초기 상태·default 검토 대기를 대체
|
||
- 결정: t=0은 raw 초기 온도이며 미지정 값은 0이다. 첫 양의 증분에서 g를 적용한다.
|
||
첫 RHS의 C_fc*T_c_old/delta를 보존한다. Model BC를 상속하고 같은 target의 step BC가 덮어쓴다.
|
||
- 이유: 원래 초기 상태와 첫 증분의 열저장·반력·에너지 변화를 보존한다.
|
||
- 영향: 각 단계 안의 동일 BC 중복은 허용하고 상충은 거부한다. Thermal override를 구조 절차에 전파하지 않는다.
|
||
생략 BC 값은 0이며 초기값을 g로 projection하지 않는다. 순간 impulse를 별도 해상하지 않는다.
|
||
|
||
## STH-ADR-011: 직접 flux와 full residual 반력
|
||
|
||
- 상태: Accepted; 이전 recovery 검토 대기를 대체
|
||
- 결정: q_global=-k B T를 면내 네 점×두께 여섯 trace에서 직접 복구한다.
|
||
Global q와 local frame을 저장하며 local q를 중복 필수 저장하지 않는다.
|
||
반력 열률은 C*DeltaT/delta+K*T-Q의 constrained 성분이고 양수는 모델로 공급되는 열이다.
|
||
- 이유: 온도 기울기와 열저장을 포함한 반력을 서로 다른 observable로 검증한다.
|
||
- 영향: 0-/0+와 요소 경계 값을 평균하지 않는다. Free residual·열에너지는 내부 검증 evidence다.
|
||
Fourier flux 경계 적분으로 FE 반력을 대체하지 않는다. 초기 반력을 0이나 NaN으로 저장하지 않는다.
|
||
|
||
## STH-ADR-012: Edge 분포 열입력 연기
|
||
|
||
- 상태: Deferred; 이전 edge kernel·syntax 제안을 대체
|
||
- 결정: FEM-REQ-SHELL-THERMAL-011을 이번 구현에서 제외한다. Edge kernel·keyword·공개 테스트를 추가하지 않는다.
|
||
- 이유: Ready에서 사용자가 집중 열입력만 먼저 구현하는 범위를 승인했다.
|
||
- 영향: 이전 q_in*h*L와 edge weighting 유도는 이번 제품 계약이 아니다.
|
||
후속 지원에는 별도 단위·부호·대상·중복 의미 및 수치 검증이 필요하다.
|
||
|
||
## STH-ADR-013: 입력 subset과 영속 thermal schema
|
||
|
||
- 상태: Accepted
|
||
- 결정: [PRD STH-C02](PRD.md#sth-c02--공개-입력-충돌과-부가-keyword)의 입력과
|
||
[STH-C05](PRD.md#sth-c05--hdf5-외부-계약)의 schema version 1을 구현한다.
|
||
- 이유: Domain/source identity에서 결과 row까지 재현 가능한 외부 계약을 고정한다.
|
||
- 영향: Temperature N×5, global flux E×4×6×3, constrained reaction P를 저장한다.
|
||
P=0도 빈 dataset을 유지하며 t=0 flux/reaction은 dataset 자체가 없다.
|
||
지정된 no-op만 warning과 함께 허용하고 unknown keyword는 오류다.
|
||
초기/완료 frame, mapping·units·finite 값을 atomic finalize 전에 self-check한다.
|
||
|
||
## STH-ADR-014: Candidate 보존과 검증 evidence
|
||
|
||
- 상태: Accepted
|
||
- 결정: Domain 정의, non-owning AnalysisModel, DofManager numbering, thermal mutable state를 분리한다.
|
||
Solve/recovery/검증을 마친 candidate만 반영하고 전체 성공 후 최종 HDF5를 원자 교체한다.
|
||
- 이유: 실패가 이전 accepted state와 기존 최종 결과를 오염시키지 않도록 한다.
|
||
- 영향: Deterministic COO reduction과 기존 CLI/lease/exit 분류를 유지한다.
|
||
전체 baseline을 먼저 재현하고 완료 시 전체 검사를 다시 실행한다.
|
||
재현된 무관한 HHT temporal 실패만 별도 미해결로 둘 수 있으며 새 실패·악화를 허용하지 않는다.
|
||
이를 전체 CTest green으로 보고하지 않는다. 열해석 필수 검증 실패는 면제되지 않는다.
|