# Shell Transient Heat Transfer 상세 설계·구현 계획안 - 상태: 사용자 검토용 제안. 요구사항 인터뷰를 바탕으로 수치 방법론을 구체화했으며 구현은 시작하지 않았다. - 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. 구현할 해석과 제안 방법 입력의 4절점 Shell mesh에서 온도만 풀며, 한 절점에 두께 방향 온도 5개를 둔다. 요소당 20개 온도 자유도로 면내·두께 방향 전도와 열저장을 함께 계산한다. 기존 MITC4의 변위·회전 강성행렬을 열행렬로 전용하지 않는다. | 결정할 항목 | 우선 제안 | 선택 이유와 대안 | | --- | --- | --- | | 면내 보간 | Bilinear Q4 | 승인된 4절점 topology와 연결되며 상수 온도·평판 선형 온도장을 재현 | | 두께 보간 | 2개 구간의 C0 2차 Lagrange 보간 | 5개 온도점을 사용하고 중앙 온도점을 공유. 전체 두께 단일 4차 보간보다 구간별 gradient와 적분을 분리하기 쉬움 | | geometry | 실제 3차원 midsurface의 metric과 법선을 이용하는 thin-shell product-domain | 접힌 판·곡면을 같은 scalar 열전도 문제로 구성. 두께 offset에 따른 곡률 보정은 생략하는 모델임을 명시 | | 열용량 | Consistent heat-capacity matrix | Galerkin 약형에서 직접 유도하고 열저장·반력·에너지 계산에 같은 행렬 사용. Lumped 대안은 초기 급변의 진동 및 reference 불일치 조사 대상으로만 남김 | | 적분 | 면내 3×3 Gauss, 두께의 두 P2 구간은 정확 적분한 Z 행렬 사용 | 직접 54점 적분과 대조. Affine 평판은 2×2 면내 적분도 정확하며 곡면·왜곡은 고차 적분 대조로 오차 확인 | | 시간 적분 | Backward Euler, 고정 Δt | 일정 계수 선형 문제에서 factorization을 재사용할 수 있고 첫 구현의 시간 수렴 검증이 명확 | | 열유속 | 보간 온도의 기울기에서 직접 복구 | 요소별·위치별 Fourier 열유속과 전체 residual 반력을 구별하여 검증 | 이 표는 FESA가 채택할 제안이며 Abaqus 내부 알고리즘 동등성의 약속이 아니다. 특히 consistent C가 현재 reference의 과도응답을 공통 tolerance 안에서 재현하는지는 아직 검증하지 않았다. 시간 적분의 안정성이 양의 온도 보존이나 정확도를 보장하지도 않는다. ## 2. 온도 자유도와 보간 온도점의 무차원 두께 좌표는 `ζ = [-1, -1/2, 0, 1/2, 1]`, 실제 좌표는 `z=hζ/2`다. 요소 vector는 node-major 순서로 정의한다. \[ \mathbf T_e=[T_{1,1},\ldots,T_{1,5},T_{2,1},\ldots,T_{4,5}]^T. \] Source 자유도 11~15와 위 온도점 1~5를 명시적으로 대응시킨다. 내부 equation 번호와 source 자유도를 같은 정수로 취급하지 않는다. 현재 reference의 NT11은 아랫면 값이다. \[ T_h(\xi,\eta,\zeta)=\sum_{a=1}^4\sum_{s=1}^5 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 Midsurface를 `r(ξ,η)=Σ N_a x_a`로 나타낸다. 접선 행렬 `A=[r_,ξ r_,η]`, metric `G=AᵀA`, 면적 Jacobian `J_s=|r_,ξ×r_,η|`, 단위 법선 `n`을 계산한다. 면내 gradient와 전체 gradient의 각 열은 다음과 같다. \[ \nabla_sN_a=A G^{-1}\begin{bmatrix}N_{a,\xi}\\N_{a,\eta}\end{bmatrix}, \qquad \mathbf B_{a,s}=L_s\nabla_sN_a+ \mathbf n N_a\frac{2}{h}L'_s. \] `B`는 3×20이며 `∇T=B T_e`다. 등방성 전도율 `k>0`에 대해 \[ \boxed{\mathbf K_e=\frac h2\int_{-1}^1\!\int_{-1}^1\!\int_{-1}^1 \mathbf B^T(k\mathbf I)\mathbf B\,J_s\,d\zeta\,d\eta\,d\xi} \] 를 20×20 행렬로 계산한다. `L_s L_t ∇_sN_a·∇_sN_b`는 면내 전도, `N_aN_b(2/h)^2 L'_sL'_t`는 두께 전도다. 법선과 면내 접선의 직교성 때문에 이 product-domain 모델의 교차항은 0이다. 평판에서 각각 대략 `kh`, `k/h`의 두께 scaling을 갖는다. `G`의 퇴화, 뒤집히거나 자기 교차하는 요소, 불일치하는 surface side는 입력 geometry 진단으로 처리한다. `|det J|`로 invalid 요소를 정상화하거나 임의의 최소 두께를 대입하지 않는다. 중앙면 접속은 같은 normalized thickness station을 공유하는 이상화로 제안한다. 두께가 다른 요소의 단차·급한 fold의 실제 3D 접합부 열장은 이 모델의 해상 범위 밖이다. 이 접속 의미와 얇은 Shell 곡률 근사는 사용자 검토가 필요한 물리 선택이다. ## 4. 열용량행렬 C와 적분 절차 밀도 `ρ>0`, 비열 `c>0`에 대해 \[ \boxed{\mathbf C_e=\frac h2\int\rho c\,\mathbf H^T\mathbf H\,J_s \,d\zeta\,d\eta\,d\xi} \] 를 계산한다. K의 단위는 `power/temperature`, C는 `energy/temperature`다. 사용자가 일관된 단위계를 제공하며 코드가 입력 숫자를 보고 SI 단위로 추정하지 않는다. 계산 순서는 다음과 같다. 1. 면내 9개 Gauss 위치에서 `N`, 도함수, `J_s`, `G`, 법선을 계산한다. 2. `M_ij=∫N_iN_j dA`, `S_ij=∫∇_sN_i·∇_sN_j dA`의 4×4 행렬을 누적한다. 3. 정확히 적분한 `Z0_ab=∫L_aL_b dζ`, `Z1_ab=∫L'_aL'_b dζ`의 5×5 행렬을 사용한다. 4. Node-major 순서에서 `C=ρc(h/2)(M⊗Z0)`, `K=k[(h/2)(S⊗Z0)+(2/h)(M⊗Z1)]`를 구성한다. 5. finite·대칭성·차원과 상수 온도 null mode를 확인한 element candidate를 반환한다. Z의 명시 행렬은 [정식화](formulation.md)에 있다. 별도의 직접 적분 검산은 면내 9점 × 두께 2구간 × 구간당 3점, 총 54개 위치에서 H/B를 구성해 같은 K/C를 얻는지 확인한다. Affine 평판은 면내 2×2 × 두께 6점, 총 24점으로도 정확하다. 5개 온도점, 6개 두께 적분 위치, 아래의 flux trace 위치는 서로 다른 개념이다. 곡면은 면내 3×3→5×5→7×7 대조로 적분 오차를 평가하며 reduced integration이나 hourglass 안정화항을 추가하지 않는다. ## 5. 열입력과 지정 온도 열입력의 양의 부호는 모델 안으로 유입되는 방향으로 제안한다. - **절점 집중 열입력** `P`는 단위 시간당 에너지다. 선택한 node의 아랫면 또는 윗면 자유도에 직접 더하며 면적·두께를 다시 곱하지 않는다. - **가장자리 열입력**은 외곽 edge의 옆면에 작용하는 면적당 열유속 `q_in`으로 제안한다. `Q_e=∫edge∫[-h/2,h/2] Hᵀ q_in dz ds`로 조립한다. 직선 edge 길이가 `ℓ`이면 전체 열률은 `q_in hℓ`다. 두께 방향으로 균일해도 5개 온도점에 단순 1/5씩 배분하지 않는다. - **지정 온도**는 elimination으로 적용한다. 구속 온도점도 C·K·외력 full-space에서 유지하여 반력 열률과 전체 에너지 수지를 복구한다. - 열입력이나 지정 온도가 없는 외부 경계에는 자연 경계조건인 단열 조건을 적용한다. 실제 source 문법은 지원 의미를 검증한 뒤 고정한다. 특히 DS4의 가장자리 열유속을 `*DFLUX, S1...S4`로 받을 수 있다고 가정하지 않는다. 확인한 공개 shell library의 element-based flux 목록은 BF·SNEG·SPOS이며, 가장자리 입력을 위한 공개 문법 대응은 아직 확정하지 못했다. 이 항목은 계산 kernel과 별개의 I/O 결정이다. [공개 shell load 정의](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEELMRefMap/simaelm-r-shellgeneral.htm). ## 6. Transient equation과 해법 \[ \mathbf C\dot{\mathbf T}+\mathbf K\mathbf T=\mathbf Q+\mathbf R. \] Backward Euler로 다음을 구성한다. \[ \mathbf A=\mathbf C/\Delta t+\mathbf K,\qquad \mathbf b^{n+1}=\mathbf Q^{n+1}+\mathbf C\mathbf T^n/\Delta t. \] free/constrained partition에서 \[ \boxed{\mathbf A_{ff}\mathbf T_f^{n+1}= \mathbf Q_f^{n+1}+\mathbf C_{ff}\mathbf T_f^n/\Delta t+ \mathbf C_{fc}\mathbf T_c^n/\Delta t-\mathbf A_{fc}\mathbf g^{n+1}} \] 를 푼다. 초기 구속점 온도와 step 지정 온도가 다르면 첫 증분의 `C_fc(T_c^0−g)/Δt` 항을 빠뜨리면 안 된다. 제안은 입력 초기 상태를 `t=0`에 보존하고 첫 양의 시점부터 step 지정 온도를 부과하는 것이다. 초기 값을 덮어쓴 다른 해석과 에너지·reference 결과가 달라질 수 있으므로 이 시작 의미를 명시적으로 검토한다. 고정 물성·geometry·구속 집합·Δt에서는 A_ff를 한 번 factorize하고 매 증분 RHS만 갱신한다. 전체 시간이 Δt로 나누어떨어지는 입력을 우선 지원하는 것으로 제안한다. 마지막 증분을 조용히 줄이지 않는다. 시간은 누적 덧셈보다 increment index와 Δt에서 결정적으로 생성한다. 절연체의 K는 상수 온도 null mode를 가지지만 양의 C 때문에 A는 양정정일 수 있다. 정적 solver처럼 “온도 구속이 없으므로 singular”로 판정하지 않는다. 일반 partition 연산은 전체 구속 시 0×0 free solve를 건너뛰도록 검산한다. 다만 이번 공개 입력은 bottom/top만 구속하므로 내부 3개 온도점까지 모두 구속한 사례는 CLI 지원 모델이 아닌 algebra fixture다. ## 7. Heat flux와 reaction heat rate 복구 각 완료 증분에 element scatter로 `T_e`를 모아, 동일한 B로 \[ \boxed{\mathbf q^{global}=-k\mathbf B\mathbf T_e} \] 를 계산한다. 단위는 `power/area`이며 고온에서 저온 방향이 양의 흐름이다. local 직교 frame `R=[e_1,e_2,n]`이면 `q_local=Rᵀq_global`이고, 앞 두 성분은 면내, 세 번째는 두께 방향 열유속이다. - 기본 authoritative flux는 면내 2×2 Gauss 위치와 두께 trace `[-1+, -1/2, 0−, 0+, 1/2, 1−]`의 곱인 24개 위치에서 복구한다. 두께 trace는 구간 안쪽에서 평가하는 위치/접근 방향이다. Global 성분과 local frame 또는 local 성분의 저장 선택을 I/O에서 고정하여 좌표 의미를 보존한다. - 위 trace 위치에서 B를 직접 평가한다. C0 보간의 중앙면에서 두께 도함수는 한쪽 극한 두 개일 수 있으므로 `0−`와 `0+`를 평균으로 합치지 않는다. 행렬의 적분 위치와 복구 위치는 독립이다. - 재료 경계와 요소 경계를 넘어 nodal averaging한 값을 공식 heat flux로 사용하지 않는다. - 부호를 비교할 때 아랫면의 외향 법선은 `−n`, 윗면은 `+n`임을 구별한다. 반력 열률은 gradient flux를 절점으로 평균하여 만들지 않고 full residual에서 계산한다. \[ \boxed{\mathbf r^{n+1}=\mathbf C(\mathbf T^{n+1}-\mathbf T^n)/\Delta t +\mathbf K\mathbf T^{n+1}-\mathbf Q^{n+1}} \] free 성분은 평형 잔차, constrained 성분은 지정 온도 유지에 필요한 반력 열률이다. 양의 반력은 모델에 추가로 공급한 열이다. transient 반력에는 열저장 항이 포함되어야 한다. 초기 온도는 저장하지만 유한 차분 시간구간이 없는 `t=0` 반력에 계산된 값처럼 0을 쓰지 않는다. ## 8. 기존 코드와 연결할 책임·파일 현재 `Element::Recover`는 displacement를 소비하고 `DofManager`는 `kDofsPerNode=6`을 전제로 한다. 따라서 parser에 DS4만 추가해서 완료할 수 없다. 다음은 실제 저장소 경로와 새 파일의 제안 배치다. 세부 C++ signature는 승인된 I/O·정식화 계약을 기준으로 구현 계획에서 고정한다. | 작업 경계 | 기존 수정 대상 | 신규 파일 제안과 책임 | | --- | --- | --- | | Semantic model | `include/fesa/model/domain.h`, `src/fesa/model/domain.cpp`, `include/fesa/model/model_types.h`, `include/fesa/materials/material.h` | `include/fesa/materials/isotropic_thermal_material.h`, `src/fesa/materials/isotropic_thermal_material.cpp`: 양의 k·ρ·c와 source identity | | Thermal element | `include/fesa/elements/element_definition.h`, `src/fesa/elements/element_factory.cpp`의 definition/runtime 생성 경계 | `include/fesa/elements/thermal_shell.h`, `src/fesa/elements/thermal_shell.cpp`: 20×20 K/C와 직접 flux 복구. 열 kernel을 구조 Element의 displacement 계약에 억지로 넣지 않음 | | Geometry | 기존 `model/shell_geometry`의 MITC4 definition/director 의존성 확인 | `src/fesa/elements/thermal_shell_geometry.h`, `.cpp`: Q4 metric·법선·geometry 검증. 구조 shear tying·drilling 정보 불필요 | | DOF | `include/fesa/elements/element.h`, `include/fesa/fem/dof_manager.h`, `src/fesa/fem/dof_manager.cpp` | Explicit layout/constraint 입력 경계를 추가하여 DofManager 안에서 구조 6개·열 5개 profile을 구별. 기존 구조 numbering/scatter 계약 보존 | | Thermal assembly | `SparseMatrix::FromCoo`, `ParallelFor` 재사용 | `include/fesa/assembly/thermal_assembler.h`, `src/fesa/assembly/thermal_assembler.cpp`: 동일 scatter의 K/C, stable COO reduction과 source-ordered Q | | Procedure/state | `analysis_model.h/.cpp`, `prepared_analysis.h/.cpp`, `src/fesa/app/fesa_application.cpp` | `include/fesa/analysis/transient_heat_procedure.h`, `src/fesa/analysis/transient_heat_procedure.cpp`, `include/fesa/analysis/thermal_analysis_state.h`: factorize/step/recover/candidate commit | | Abaqus mapping | `src/fesa/io/abaqus/domain_mapping_context.cpp`, `domain_builder.cpp`, `topology_mapper.cpp`, `material_property_mapper.cpp`, `step_definition_mapper.cpp` | 책임별 thermal block mapping 추가. 기존 structural validation의 제한을 온도에 그대로 적용하지 않음 | | Results | 기존 HDF5 atomic file·primitives와 prepared outcome dispatch | `include/fesa/results/thermal_results_writer.h`, `include/fesa/io/hdf5/thermal_hdf5_results_writer.h`, `src/fesa/io/hdf5/thermal_hdf5_results_writer.cpp`: 온도/flux/reaction/history identity와 atomic finalize | Domain이 정의를 소유하고 AnalysisModel이 non-owning view를 제공하는 기존 책임을 유지한다. 새 thermal state만 temperature/history를 소유한다. Node/Element에 equation 번호를 저장하지 않는다. 열용량 C를 structural mass field에 저장하지 않으며 vendor API는 기존 backend 경계에 둔다. ## 9. 구현 순서와 각 단계의 완료 조건 아래 순서는 향후 구현 작업을 위한 계획이다. 현재 실행하거나 완료한 목록이 아니다. | 순서 | 작업·연결 요구사항 | 추가/변경할 검증과 단계 완료 조건 | | --- | --- | --- | | 1 | 물리·I/O 선택 확정 — 001~018 | Thin-shell 접속·초기 jump·edge syntax·flux identity의 결정을 문서화. 독립 수치 검토 지적 해결 | | 2 | Thermal semantic model과 input — 001~013, 018 | `tests/unit/io/abaqus/thermal_domain_test.cpp`: DS4·물성·5점 단면·initial/boundary/CFLUX·single step mapping, 잘못된 DOF·불량 물성·상충 집합·미지원 옵션 진단 | | 3 | Element kernel — 002~007, 014 | `tests/unit/elements/thermal_shell_test.cpp`: H partition of unity, gradient sum zero, K/C 대칭성·rank, exact flat matrices, plane/thickness linear field와 flux, rotation covariance | | 4 | DOF·assembly·load — 006~011 | `tests/unit/fem/dof_manager_test.cpp`, `tests/unit/assembly/thermal_assembler_test.cpp`: 20 DOF scatter, 인접 node station 공유, edge 총 열률, source 순서, 병렬/직렬 동등성과 structural 회귀 | | 5 | Transient procedure — 008~013, 018 | `tests/unit/analysis/transient_heat_procedure_test.cpp`: 두 증분 직접 계산, C_fc 초기 항, no-Dirichlet, generic all-constrained algebra fixture, factorization 재사용, 후보 실패 보존 | | 6 | Recovery·HDF5·CLI — 014~015 | `tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp`, `tests/integration/app/thermal_application_test.cpp`: 모든 온도점·증분·flux 위치·reaction의 round trip, 초기 반력 미정의, 파일 finalize 실패 시 이전 결과 보존 | | 7 | Physics·reference — 016~017 | `tests/integration/analysis/thermal_physics_test.cpp`, `tests/reference/thermal_reference_comparison_test.cpp`, `tests/reference/thermal_reference_cases_test.cpp`: 아래 사례와 기존 CSV 비교·identity 음성 검사 | | 8 | 통합 확인 | `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt` 등록 후 MSVC x64 Debug 전체 build/CTest와 필수 reference 비교. 신규 warning 없음 | 각 행동 변경은 먼저 기대 결과를 고정하는 검사를 작성하고 실패를 확인한 뒤 구현한다. 기존 coverage가 충분한 지원 코드 정리에는 구현 구조만 따라 하는 테스트를 추가하지 않는다. 독립 수치 검토와 실제 결과의 물리 검토를 구현 담당자의 자기 승인으로 대체하지 않는다. ## 10. 방법론을 반증할 검증 사례 | 사례 | 기대되는 관찰과 오류 검출 목적 | | --- | --- | | 완전 단열·균일 초기 온도 | 모든 온도점이 시간에 따라 불변, flux=0, 열에너지 불변. K의 상수 null mode 검증 | | 평판의 면내 선형 온도 | Kernel에서 `q=−k∇T`를 정확히 재현. Global 회전 시 scalar T 불변·vector q 회전 | | 두께 방향 선형 온도 | 하·상면 온도차의 정상 한계에서 `q_n=−k(T_top−T_bottom)/h`, 두 면 반력 합 0 | | 두께 전체 단열의 면내 Fourier mode | 초기 온도가 두께 방향 균일한 허용 입력으로 analytical decay와 비교. BE 시간 1차 수렴과 면내 mesh 수렴 분리 | | 한쪽 면 온도 step, 반대 면 단열 slab | 허용된 초기 조건에서 1D transient analytical series와 비교. 5점 두께 근사의 한계와 초기 jump 처리 검증 | | 두 재료·두 두께 strip | 단면 전체 end 온도를 구속한 assembly fixture에서 총 열저항 `Σ L/(k h w)` 확인. 내부 station 구속은 검산 전용이며 CLI 기능이 아님. 공개 bottom/top 경계 사례는 경계층을 포함한 별도 oracle과 비교 | | Edge flux와 집중 열입력 | 입력한 총 열률과 `Δ(1ᵀCT)/Δt` 및 reaction 합의 일치. 단위와 면적/두께 중복 곱 검출 | | 작은 열망의 직접 해 | `A_ff`, RHS, 첫 두 증분, full residual을 독립 hand calculation과 비교. 전체 구속 특수 조건은 generic partition fixture로 한정 | | 실제 reference | 원본 `.inp`와 t37의 NT11 729행 비교. 누락/추가/중복/nonfinite·instance ambiguity를 tolerance 전에 거부 | 전체 열에너지는 `E=1ᵀCT`로 두고 기준 온도의 상수 차이가 에너지 변화에 영향을 주지 않음을 확인한다. 검증할 discrete balance는 `E_(n+1)−E_n = Δt[1ᵀQ + Σ constrained reaction]`이며 free residual의 영향도 보고한다. 점별 Fourier flux와 FE 반력은 다른 observable이므로 각각의 검증을 수행한다. 시간 수렴은 공간 오차를 충분히 낮추고 Δt를 줄이며, 면내 수렴은 충분히 작은 Δt에서 mesh를 세분화한다. 제품의 두께 온도점 5개가 고정되므로 면내 mesh를 줄이는 것만으로 두께 오차까지 0으로 간다고 주장하지 않는다. 세부 norm·기대 order·내부 판정 기준은 독립 검토가 정한다. ## 11. 검증 실행과 완료 판단 구현 시 MSVC x64 developer 환경과 GoogleTest/MKL/TBB/HDF5 경로를 준비하고 다음을 실행한다. ```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 ``` 선택된 `.harness/config.json`이 동일 실행을 구성하면 `python scripts/execute.py`를 사용할 수 있다. 현재 계획 작성에서는 이 개인 설정 파일을 확인하지 못했으므로 runner의 preset 선택을 가정하지 않는다. Python Harness를 수정하지 않는 이 기능에 Harness Python suite를 형식적으로 추가 실행하지 않는다. Reference 원본은 현재 별도 dev checkout에서 읽었으며 현 worktree에는 없다. 실행 단계에서 read-only reference 위치와 결과 output 경로를 명시적으로 연결한다. 파일을 찾지 못하면 comparison을 통과나 coverage 완료로 기록하지 않는다. reference 재생성·이름 변경·보정은 포함하지 않는다. 완료는 solver 실행 성공뿐 아니라 모든 필수 결과·증분 저장, 에너지 수지·해석해·수렴, 기존 구조해석 회귀, 공통 tolerance의 NT11 비교와 필요한 독립 검토 evidence가 있어야 한다. 현재 문서 검토에서는 독립 reviewer가 Z 계수, 평판 20 DOF의 C 양정치/K rank 19, 첫 두 증분의 C_fc 항·반력·에너지 수지를 정확 유리수 연산으로 확인했다. 구현 코드·FESA 결과의 정확도나 곡면·접합부 지원 한계가 검증된 것은 아니다. ## 12. 구현 전에 검토할 제안과 한계 1. Q4×두 구간 P2, consistent C, 면내 3×3/두께 exact 적분, Backward Euler의 선택 2. Thin-shell product-domain과 normalized thickness station 접속; 실제 접합부/곡률 두께 효과 한계 3. 입력 초기 상태를 보존하는 첫 증분 경계 jump와 t=0 반력 미정의 4. 가장자리 열입력의 면적당 단위와 승인 가능한 외부 입력 문법 5. 모든 온도점 온도·3성분 flux·반력의 위치/좌표계와 HDF5 저장 계약 6. 고정 Δt로 나누어떨어지는 종료 시간만 우선 지원하는 제한 이 항목은 사용자 인터뷰에서 이미 승인한 범위와 새 수치·I/O 제안을 구별하기 위한 것이다. 현재 문서는 상세 방법론을 검토할 수 있는 계획안이며, 모든 구현 계약이 확정되었다는 선언이 아니다. Reference에는 step 전 `*Boundary / Set-10, 11, 11`과 step 내부 `Set-10, 11, 11, 1000.`이 함께 있다. Step 전 경계를 지우거나 무시하지 않고 model/history 정의로 구분하여 읽는다. 생략 초기 온도·생략 boundary 값의 default, step에서 같은 대상에 새 값을 적용하는 의미를 원문과 대조해야 최초 C_fc 항과 reference 비교를 확정할 수 있다. CSV 정적 통계의 NT11 최솟값은 `−15.5742216`, 최댓값은 `1000`이다. 공통 scale `S=1000`, near-zero band `B=10`에서 위 음수는 near-zero 밖이므로 상대오차 검사 대상이다. 이를 0으로 보정하거나 단순 roundoff로 설명하지 않는다. 초기 조건과 열용량·보간 선택에 따른 undershoot의 원인을 조사하고 analytical accuracy와 reference 일치를 각각 평가한다.