Files
FESADev/docs/shell-transient-heat-transfer/ADR.md
T

11 KiB
Raw Blame History

Shell Transient Heat Transfer 결정 기록

  • Feature ID: shell-transient-heat-transfer
  • Owner: 메인 assistant
  • 상태: Accepted (구현 검증 완료와 구별)
  • 승인 근거: ready 인터뷰의 개별 선택, 최종 “네 승인합니다”, 후속 dryforge:go 요청.

기준: 프로젝트 지침, 프로젝트 PRD, 공통 ADR. 요구사항과 현재 checklist는 PRD, 지역 소유권은 FEATURED_AGENTS를 따른다. 아래 결정은 이전 Proposed 상태를 대체하며 실제 계산 결과의 정확도 승인을 의미하지 않는다. 수식 원본은 formulation, 독립 판정은 numerical-review다.

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 외부 비교와 독립 물리 검증

  • 상태: Superseded by STH-ADR-015 (원본 비교의 blocking 분류에 한함)
  • 결정: 기존 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를 중복 필수 저장하지 않는다. 반력 열률은 CDeltaT/delta+KT-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_inhL와 edge weighting 유도는 이번 제품 계약이 아니다. 후속 지원에는 별도 단위·부호·대상·중복 의미 및 수치 검증이 필요하다.

STH-ADR-013: 입력 subset과 영속 thermal schema

  • 상태: Accepted
  • 결정: PRD STH-C02의 입력과 STH-C05의 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으로 보고하지 않는다. 열해석 필수 검증 실패는 면제되지 않는다.

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는 원본의 blocking 조건과 승인 방법을 동시에 만족하지 못함을 보여준다.
  • 영향: 원본 artifact와 공통 tolerance는 수정하지 않는다. 진단 실패를 PASS로 바꾸지 않고 row identity·오차를 보고한다. 새 모델의 경로, 원본 hash, 비교 시점·성분·identity가 아직 제공되지 않았으므로 새 필수 비교의 실행·통과는 미완료다. 독립 해석해·수지·수렴성, 전체 회귀 및 physics 검토를 완료 조건으로 유지한다. 이는 Abaqus 내부 알고리즘의 동등성이나 기존 reference가 잘못되었다는 판정이 아니다.