diff --git a/docs/shell-transient-heat-transfer/implementation-verification.md b/docs/shell-transient-heat-transfer/implementation-verification.md index 396f54b..01d5991 100644 --- a/docs/shell-transient-heat-transfer/implementation-verification.md +++ b/docs/shell-transient-heat-transfer/implementation-verification.md @@ -315,4 +315,23 @@ Python Fraction oracle와 비교했다. **31,668개 산술 enclosure**, 인증 runner/checker 출력·native exit 기록에 보존했다. 최종 독립 build/runner/checker는 exit 0이다. HDF5 구현과 합친 통합 검사는 writer의 독립 검토 후 수행한다. +### Thermal HDF5 저장과 publication + +`7f11d533`의 writer와 self-check를 STH-C05/C06에 대조한 독립 검토에서 차단 항목이 +없었다. 모든 필수 metadata·model·mapping·frame·diagnostic의 field/type/extent/value를 +검사하며, compound의 순서·padding에 의존하지 않고 fixed/variable UTF-8을 허용한다. +Global material ID, 정규화한 section provenance, raw initial, 실제 delta와 회전된 R 및 +global flux의 trace/component 순서를 직접 읽어 검증했다. + +Candidate close 이후 파일을 다시 열어 검사하고 reader close 성공 뒤에만 최종 파일을 +교체한다. 쓰기·candidate close·self-check·reader close·finalize의 다섯 실패 경계에서 +기존 결과 byte 보존과 candidate 정리를 확인했다. Domain과 이력의 활성 identity, +시간격자, raw 초기값, constraint mask와 완료된 prescribed 온도도 대조한다. + +작업 checkout의 `t8-final-{build,inventory,test}.log` 및 native exit JSON은 모두 0이다. +Inventory **573개**, 관련 **31/31 PASS**이며 이 중 thermal writer 검사는 **13개**다. +실행 당시 HEAD는 commit 전 `983e2fe`였고 `t8-tested-source-hashes.json`의 8개 파일 hash가 +최종 commit과 정확히 일치함을 독립 확인했다. 이 결과는 writer 범위이며 CLI·물리·외부 +reference 검증을 대신하지 않는다. 시간 적분과 합친 통합 검사는 아래에 추가한다. + 전체 thermal 검사, NT11 외부 수치 비교와 실제 결과의 독립 physics 평가는 아직 수행하지 않았다. diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 54d5846..67f5fcc 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -61,6 +61,8 @@ add_library( io/hdf5/eigen_hdf5_results_writer.cpp io/hdf5/eigen_hdf5_self_check.cpp io/hdf5/hdf5_self_check.cpp + io/hdf5/thermal_hdf5_results_writer.cpp + io/hdf5/thermal_hdf5_self_check.cpp loads/concentrated_nodal_load.cpp loads/shell_surface_pressure.cpp materials/isotropic_linear_elastic_material.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 88eec27..db465f3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -61,6 +61,7 @@ add_executable( unit/io/hdf5/eigen_hdf5_results_writer_test.cpp unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp unit/io/hdf5/hdf5_writer_components_test.cpp + unit/io/hdf5/thermal_hdf5_results_writer_test.cpp unit/loads/load_test.cpp unit/loads/shell_surface_pressure_test.cpp unit/model/domain_test.cpp