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

14 KiB
Raw Blame History

Shell 과도 열전달 독립 수치 검토

  • 검토일: 2026-09-28. 상태: Proposed 계획의 독립 검토 완료 / 구현 검증 미실행.
  • 판정: 제안된 약형·행렬·BE partition·반력·한쪽 heat flux는 수학적으로 일관된다. 아래 미결정 사항 때문에 구현 착수 계약이나 제품 정확도가 승인되었다는 뜻은 아니다.
  • 범위: PRD의 FEM-REQ-SHELL-THERMAL-001–018, 정식화 §§1–10, 상세 계획 §§1–12.
  • 기준: 프로젝트 지침, 프로젝트 PRD, ARCHITECTURE, ADR-028, 공통 TOLERANCE. 상위 계약·소스·테스트·reference는 수정하지 않았다.

1. 영향이 큰 판단과 필요한 결정

ID / 판정 근거·영향 필요한 조치 / owner
NR-01 / 물리 결정 대기 Midsurface metric을 두께 전체에 쓰는 product-domain은 실제 offset volume의 곡률 항을 생략한다. 같은 normalized ζ를 연결한 두께 단차·fold는 실제 3D 접합부가 아니다. 메인/사용자: 이 이상화를 승인하고 지원 한계를 명시. Numerical/I/O: 곡률·왜곡·퇴화·orientation 판정과 허용 geometry 범위를 구현 전에 확정. 높은 적분 차수로 모델링 오차가 제거된다고 주장하지 않음.
NR-02 / 초기 상태 계약 대기 Raw 초기 온도를 첫 BE 증분의 이전 상태로 쓰는 식은 맞지만 t=0 즉시 projection과 첫 RHS·에너지가 다르다. Reference 입력에는 step 전 *Boundary / Set-10,11,11과 step 안의 Set-10,11,11,1000.이 모두 있다. 메인/사용자: 첫 증분 jump 의미 결정. I/O: 생략 초기값, 생략 boundary 값, pre-step boundary와 step 재정의의 의미를 명시. 단일 transient step 지원을 이유로 pre-step 데이터를 무시하지 않음.
NR-03 / 공개 입력 결정 대기 Edge kernel의 면적당 입력과 q_in hL은 일관되지만 DS4 *DFLUX, S1…S4 대응은 확인되지 않았다. 기존 reference에는 edge 하중이 없다. I/O/메인: 공개 syntax·단위·대상 edge·중복 입력 의미 확인. 입증되지 않은 keyword 지원을 선언하거나 line-rate에 h를 중복 곱하지 않음.
NR-04 / 구현 전 수치 계약 부족 3×3 표면 적분은 일반 warped Q4에서 exact가 아니다. Consistent C와 P2 두께 보간은 maximum principle을 보장하지 않는다. 고정 5점은 초기 두께 경계층을 임의로 해상할 수 없다. Numerical owner: 아래 geometry·적분·수렴·내부 residual 판정을 고정하고 독립 사례로 검증. 실패 뒤 clamp/lumping/인공 확산 또는 tolerance 완화 금지. 방법 변경은 새 검토 대상.
NR-05 / 문서 정합 보완 반영 최초 계획의 24개 integration Gauss 위치와 정식화의 54점 직접 적분·24개 trace recovery가 달랐다. 최신 계획에서 구분됨. 유지할 계약: production 3×3 surface×exact Z, 직접 검산 54점, affine 검산 24 Gauss점, 공식 recovery 24 trace점. 숫자 24가 같다는 이유로 위치를 대체하지 않음.
NR-06 / 검증 범위 보완 반영 직렬 strip 저항식은 단면 전체 end 온도 조건을 전제로 한다. 내부 station 지정 온도와 all-constrained는 현재 공개 입력 범위 밖이다. 최신 계획처럼 exact strip 및 all-constrained를 assembly/algebra fixture로 분류. CLI bottom/top 지정 사례는 해당 경계층을 포함한 oracle로 검증.

NR-01의 물리 지원 제한, NR-02의 시작 의미, 종료 시간이 Δt의 정수 배가 아니면 거부하는 제안은 사용자 요구에 영향을 주는 결정이다. Z 계수·scatter 순서·구간 Jacobian·동일 물리량의 검증 metric 고정은 합의된 물리를 구현하기 위한 상세 계약이다. 영속 flux 좌표계·trace identity·t=0 validity는 I/O 계약이며 이 보고서가 대신 승인하지 않는다.

2. 독립 수식·정확 산술 검산

Python 표준 라이브러리 fractions.Fraction을 명령 내 scratch로 사용했다. 별도 계산 파일, production/test 변경 또는 solver 실행은 없었다. 아래 입력과 결과로 검산을 재현할 수 있다.

항목 검산과 결과
DOF/shape Node-major p=5(i−1)+a, a=1…5. 각 길이 1인 두께 구간의 좌표 u∈[0,1]에서 shape [1−3u+2u², 4u−4u², −u+2u²]를 곱하여 항별 정확 적분.
두께 질량 Z0_seg=(1/30)[[4,2,−1],[2,16,2],[−1,2,4]] 재현. 조립 뒤 Z0·1=(1,4,2,4,1)/6, 합 2.
두께 전도 위 다항식을 u로 미분하여 적분하면 Z1_seg=(1/3)[[7,−8,1],[−8,16,−8],[1,−8,7]]. 조립 뒤 Z1·1=0 정확 성립.
체적/계수 dz=(h/2)dζ, ∂z=(2/h)∂ζ이므로 C=ρc(h/2)M⊗Z0, K=k[(h/2)S⊗Z0+(2/h)M⊗Z1]. 접선과 normal의 직교성으로 교차항 0. C는 energy/temperature, K는 power/temperature.
평판의 rank/에너지 단위 정사각형, h=2, k=ρc=1의 수치 단위 fixture. M=(1/36)[[4,2,1,2],[2,4,2,1],[1,2,4,2],[2,1,2,4]], S=(1/6)[[4,−1,−2,−1],[−1,4,−1,−2],[−2,−1,4,−1],[−1,−2,−1,4]]. C의 정확 LDL pivot 20개 모두 양수, K의 leading 19×19 pivot 모두 양수, K·1=0, 1ᵀC1=2 정확 성립. 즉 C SPD, K PSD/rank 19.
Edge weight 한 endpoint당 q_in hL(1,4,2,4,1)/24; 두 endpoint의 합은 q_in hL. 두께 station에 1/5씩 나누면 잘못된 일관 하중이다.
적분 차수 Affine Q4 면내 M/S는 2×2 exact. 두께 mass·면내 전도는 4차여서 구간별 3점, 두께 전도는 2차. Production 3×3×2×3=54점은 exact Z 분리식과 같은 quadrature를 표현한다. 실제 54점 코드의 동등성은 미검증.

유효 geometry와 양의 적분 weight에서는 vᵀCv>0, vᵀKv≥0의 에너지 형태가 유지된다. 전역 K의 상수 null mode는 연결된 thermal component마다 하나이며, 분리된 mesh를 항상 rank N−1로 검사하면 안 된다. 모든 활성 DOF가 양의 체적 요소에 연결되면 A=C/Δt+K는 구속 없이도 SPD다. 극단적인 h 또는 Δt는 conditioning을 악화시킬 수 있으므로 factorization 성공만으로 정확도를 판단하지 않는다.

첫 증분 partition의 독립 반례 fixture는 다음과 같다. 일관된 단위로 C=[[2,1],[1,2]], K=[[1,−1],[−1,1]], Δt=1/2, F=0, T_raw⁰=(0,0), 두 번째 DOF의 지정 온도 g=1을 둔다.

  • 올바른 A=[[5,1],[1,5]]; T_f¹=−1/5, T_f²=1/25.
  • R_c¹=24/5, R_c²=36/25; E=1ᵀCT에서 두 증분 모두 ΔE=Δt R_c 정확 성립.
  • 최초 RHS를 일정 g의 이후 증분 식으로 바꾸면 T_f¹=+1/5가 되어 검출된다. 이 fixture는 signed 온도와 consistent C의 undershoot가 에너지 안정성과 모순되지 않음을 보이며 실제 20 DOF shell 해나 외부 reference 통과 증거는 아니다.

r=CΔT/Δt+KT−F의 constrained 성분은 모델에 공급되는 양의 반력 열률이다. 전역 수지는 ΔE=Δt(1ᵀF+1_cᵀR_c+1_fᵀr_f)이며, free residual을 포함한 대수적 동일성 확인과 free residual 자체가 작은지의 확인을 분리한다. q=−kBT 경계 적분은 일반적으로 이 반력과 같지 않다. 입력 없는 단열계의 열에너지 보존과 BE의 C-norm 소산도 서로 다른 검증이다. 초기 t=0 반력은 미정의이고 material history update는 없다.

3. 구현 후 반증 가능한 검증 계획

사례·수준 독립 oracle와 판정 의도
Shape/행렬, kernel 위 exact M/S/Z를 기대값으로 사용. Node-major Kronecker 순서, symmetry, 상수 null, SPD, 양의 에너지, 직접 54점/분리식 동등성 확인. h를 바꿔 C 및 면내 K의 h scaling과 두께 K의 1/h scaling을 각각 검사.
온도 patch/방향, kernel 평판에서 T=A+b·r+c z를 주고 q=−k(b+c n) 확인(b는 평판 접선). 임의 rigid rotation에서 T 불변, q 회전. Connectivity 반전 시 station a↔6−a와 면 조건도 함께 반전.
한쪽 trace, recovery 면내 상수, 두께 값 (0,0,0,1,2)의 임의 kernel state는 q3(0−)=0, q3(0+)=−4k/h. 24개 trace 중 0−/0+가 별도 identity로 저장되는지 확인. 이 임의 state는 공개 초기조건 fixture가 아님.
열용량/하중/수지, CLI+assembly 단열·균일 초기 온도는 불변. Edge만 주면 총 입력 q_in hL; 집중 입력은 P 그대로. Prescribed DOF의 P도 full F에 남아 reaction을 바꾸는지 확인. 반력 부호, free residual, ΔE와 BE 소산을 각각 확인.
BE, algebra 위 두 증분 fixture, no-constrained 및 generic all-constrained. 이전 constrained state를 raw 초기값으로 유지하고 실패 candidate가 이전 state/output을 덮어쓰지 않는지 확인.
면내 해석해, CLI 단열 직사각판 T=T0+A cos(πx/L)exp[−α(π/L)²t], α=k/(ρc). 초기값은 station 전체 동일. 두께 균일해가 유지되는지와 면내 temperature/flux 오차 확인.
시간 수렴, 독립 semi-discrete oracle 같은 고정 mesh의 generalized eigenpair Kv=λCv로 T(t)=exp(−λt)v, BE 증폭률 (1+λΔt)^−n 대조. dt, dt/2, dt/4에서 1차 오차를 확인해 공간오차와 분리. Eigenvector 초기값은 algebra fixture로 한정.
두께 slab, CLI x=z+h/2, bottom Ts, top 단열, 초기 Ti. θ=(T−Ts)/(Ti−Ts)=Σ[m≥0]4/[(2m+1)π] sin[(2m+1)πx/(2h)] exp[−α((2m+1)π/(2h))²t]. 양의 시간에서 5 station T와 미분한 q, 전체 energy 및 reaction 비교. Series 절단 오차를 별도 제한.
Mesh/두께 해상도 Smooth affine mesh에서 면내 temperature L2의 기대 2차, gradient L2의 기대 1차를 확인. Slab은 고정 5점이므로 dt→0의 두께 공간오차 plateau와 열침투 깊이 √(αt)를 보고. 면내 refinement로 두께 오차가 사라진다고 판정하지 않음.
재료·fold·두께 접속 직렬 저항 ΣL/(khw)는 full-end prescribed assembly fixture. CLI에서는 bottom/top 조건의 실제 oracle을 별도로 사용. Fold 등온은 q=0; 비균일 경우 global q의 동일성을 강요하지 않고 공유 DOF에 조립되는 열률 수지를 검사.
Warped/왜곡 geometry 허용될 geometry군에 대해 3×3→5×5→7×7에서 K/C 및 대표 T/q의 변화 확인. Geometry mesh 오차, quadrature 오차, offset-volume 생략 오차를 분리. Degenerate·자기 교차·orientation 불일치는 음성 사례.

내부 roundoff 판정은 exact oracle를 기준으로 행렬 norm·연산 수·machine epsilon과 conditioning을 반영하여 구현 전에 고정한다. 예를 들어 free residual은 ||r_f||/(||A_ff|| ||T_f||+||b_f||), 수지 defect는 저장·입력·반력 항의 절댓값 합으로 정규화하되 분모 0은 별도 처리한다. Zero floor max(1,scale)는 추가하지 않는다. Roundoff 한계, geometry margin, quadrature 변화 한계와 관찰 order의 허용 구간은 아직 확정되지 않았다. 위 기대 order 자체를 임의 5% 통과 기준으로 바꾸거나 공통 외부 tolerance를 이 검사들에 전용하지 않는다. 이 미결정 때문에 검증 실행 준비 완료 판정은 보류한다.

4. 기존 reference의 비교 계약과 관찰

Read-only 원본: reference/shell-thermal/shell-thermal.inp, reference/shell-thermal/shell-thermal NodalTemperature.csv. 이번 검토에서 실제로 읽은 위치는 C:/git/FESADev/reference/shell-thermal이며 현 worktree로 복사하지 않았다. 별도 reference-model.md 없이 이 절에 필요한 계약을 둔다.

  • 제안 family: (shell-thermal, Step-1, t=37, bottom temperature, NT11, blocking). 온도 단위는 원본 입력의 일관된 단위이며 scalar이므로 좌표 회전과 무관하다.
  • Row identity: (instance=Part-1-1, source node label, source DOF=11)와 step/time. CSV에 instance 열이 없으므로 입력의 단일 instance와 source label 집합을 검증한 뒤 복원. HDF5는 모든 station을 보존하되 비교 view는 bottom만 명시적으로 선택한다.
  • Snapshot 정적 검사: 729행·729개 고유 node label, 모두 finite, 단일 Step-1/t37 frame. min −15.5742216, max 1000; S=1000, near-zero band B=10. 음수 전부가 near-zero는 아니다. −15.5742216은 상대오차 5% 대상이다.
  • 공통 정책: |r|≤B이면 |f−r|≤B, 나머지는 상대오차≤0.05, 모든 행의 relative RMS≤0.01을 함께 만족해야 한다. S=0은 exact-zero 규칙 적용. Reference의 음수·미소값을 clamp하거나 단위/온도 영점을 이동하여 scale을 바꾸지 않는다.
  • Missing/extra/duplicate/nonfinite, frame/instance/station mismatch를 tolerance 전에 거부. 현재 수행한 CSV 자체 검사는 FESA HDF5와의 일대일 대응 검증을 대신하지 않는다.

원본 NT11 한 frame은 내부 4 station, flux, reaction, edge load, 다중 재료/두께 또는 전체 시간 이력을 검증하지 못한다. 초기값·pre-step 경계·jump·consistent C·시간 적분 차이가 reference 비교에 미치는 영향은 아직 측정되지 않았다. 비교 실패는 이 차이들을 분리 조사할 근거이며 FESA가 Abaqus 내부 알고리즘과 같아야 한다는 요구가 아니다.

5. 수행 범위와 잔여 위험

수행: 관련 계약의 정적 대조, 위 exact 유리수 행렬/두 증분 검산, 원본 입력·CSV의 read-only 정적 확인, 문서 정합 확인. 미수행: solver 구현·build/CTest, FESA HDF5 생성, 외부 reference 수치 비교, 곡면/접합부/수렴 실험, 실제 결과의 physics evaluation. 초기·geometry·edge syntax·내부 수치 판정·영속 결과 계약을 확정하고 위 검증을 실행해야 한다. 본 보고서의 판정은 정식화 초안의 독립 일관성 검토로 한정한다.