diff --git a/docs/shell-transient-heat-transfer/implementation-verification.md b/docs/shell-transient-heat-transfer/implementation-verification.md index 15a3594..52051fb 100644 --- a/docs/shell-transient-heat-transfer/implementation-verification.md +++ b/docs/shell-transient-heat-transfer/implementation-verification.md @@ -121,6 +121,36 @@ Abaqus 실행·reference 재생성·이름 변경·내용 보정은 수행하지 ### Thermal 구현 -열물성·Domain·AnalysisModel semantic 구현과 해당 행동 검사를 진행 중이다. +열물성·Domain·AnalysisModel semantic 구현을 `254247e`, `283628e`로 작성하고, +독립 코드 검토에서 해당 범위의 잔여 차단 항목이 없음을 확인했다. +BC/CFLUX는 source DOF 11·15만 허용한다. 열 재료·단면의 local index와 전체 Domain +material index를 구분하며, 구조 step 접근을 열 모델에 잘못 호출하면 명시적으로 실패한다. +두 단계 BC는 원본 수준별 정의를 보존하며 최종 상속·override는 후속 입력/실행 연결의 책임이다. + +Endpoint 제한의 행동 재현 검사에서 기존 구현이 12·13·14를 수용하여 CTest exit 8을 +확인했고 수정 후 통과했다. 이전 API 누락에 의한 compile 실패는 행동 재현 evidence로 +계산하지 않는다. 잘못된 물성·두께, 비활성 target, 초기값·BC 충돌, constrained CFlux +중복·순서 보존, 이동 후 소유 데이터 접근과 다중 재료 인덱스를 검사했다. + +작업 checkout의 clean MSVC x64 Debug build와 최종 fixture 추가 후 incremental build는 +각각 exit 0이다. 최종 관련 CTest는 **21/21 PASS**, exit 0이며 compiler warning은 +검색되지 않았다. 실제 evidence는 `t2-correction-clean-build-build.log`, +`t2-correction-final-build-build.log`, `t2-correction-final-regression-test.log` 및 각 +명령·cwd·native exit JSON에 보존했다. 실행 당시 HEAD는 commit 전 `254247e`이고, +최종 검사 09:47:06 UTC 후 동일 수정분을 `283628e`로 기록했다. + +검증 중 한국어 MSVC `/showIncludes` prefix가 CMake에서 잘못 decode되어 Ninja가 +header dependency를 0개로 기록하는 환경 문제를 발견했다. Header 변경 후 이전 객체를 +재사용하여 AnalysisModel 접근 오류가 발생했다. 개인 검증 환경에서 실제 UTF-8 prefix를 +지정하고 clean build한 뒤 같은 객체의 dependency가 47개이며 관련 header를 포함함을 +확인했다. 잘못된 추적 상태의 중간 incremental 결과는 최종 evidence로 사용하지 않는다. +Production 변경 전 baseline은 175개 build action을 처음부터 실행한 결과로 유지한다. + +공통 CMake source/test 등록 후 통합 checkout에서도 clean build exit 0, CTest inventory +**487개**, 관련 semantic·기존 structural DOF 검사를 포함한 **29/29 PASS**를 확인했다. +Evidence는 `.dryforge/evidence/semantic-integrated-{configure,build,test}.log`와 +`semantic-integrated-serial-inventory.log`다. 최초 inventory와 test를 동시에 시작했을 때 +GoogleTest discovery의 공용 JSON 생성이 경합하여 inventory exit 8이 발생했다. +직렬 inventory 재실행은 exit 0이며, 이후 같은 build tree의 discovery/test는 직렬 실행한다. + 전체 thermal 검사, NT11 외부 수치 비교와 실제 결과의 독립 physics 평가는 아직 수행하지 않았다. -완료 후 실제 명령·결과·coverage와 미해결 한계를 이 절에 기록한다. diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 06fc1e0..f239566 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -57,6 +57,7 @@ add_library( loads/concentrated_nodal_load.cpp loads/shell_surface_pressure.cpp materials/isotropic_linear_elastic_material.cpp + materials/isotropic_thermal_material.cpp math/dense_blas_internal.cpp math/matrix.cpp math/sparse_matrix.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 24349f4..e176917 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -58,6 +58,7 @@ add_executable( unit/loads/load_test.cpp unit/loads/shell_surface_pressure_test.cpp unit/model/domain_test.cpp + unit/model/thermal_semantics_test.cpp unit/model/model_types_test.cpp unit/model/shell_geometry_test.cpp unit/model/source_target_resolver_test.cpp