diff --git a/docs/shell-transient-heat-transfer/implementation-verification.md b/docs/shell-transient-heat-transfer/implementation-verification.md index 54c3a95..1286739 100644 --- a/docs/shell-transient-heat-transfer/implementation-verification.md +++ b/docs/shell-transient-heat-transfer/implementation-verification.md @@ -197,6 +197,22 @@ Domain의 node/section 범위 검사 뒤 전체 patch와 source 접속을 검사 `t3-ready-inventory.log`의 513개는 discovery 수이며 전체 실행 수가 아니다. 실행 metadata의 HEAD는 commit 전 `e33ee6a`이고, 검사한 수정분을 이후 `32f0c16`에 기록했다. Build warning은 검색되지 않았고 formatter와 `git diff --check`도 통과했다. -실제 3/5/7 적분·BE 응답의 독립 수치 검토와 DOF를 포함한 통합 검사는 진행 중이다. +`32f0c16`의 독립 수치 검토도 잔여 차단 항목 없이 통과했다. Commit에서 추출한 실제 +kernel/geometry를 MSVC로 별도 컴파일하여 고정밀 oracle와 대조했다. + +- 유효 fixture 22개의 C/K 계수 17,600개와 평가점 198개의 면적·gradient enclosure + 2,574개에서 production 반올림 오차 경계 위반이 없었다. +- 직접 54점 적분과 절댓값 contribution 기준, C 양정치·K rank 19·상수 모드, + 두께 변화·별도 중립면 trace·source topology 14개 사례를 확인했다. +- 고정 affine/distorted/saddle 사례의 3/5/7 적분 진단과 production C/K를 이용한 + 독립 BE 대수 응답, 실제 `Recover`의 온도 응답 5개를 확인했다. 전역 procedure를 + 실행한 결과는 아니다. + +실제 명령·native exit와 계산 결과는 작업 checkout의 +`.dryforge/review/kernel_32f0c16/`에 보존했다. 최종 compile/runner/checker는 모두 exit 0이다. +최초 surface oracle는 이동된 평판의 정확한 영 성분에 남은 고정밀 cancellation 폭으로 +exit 1이었다. 입력 좌표 차를 exact Fraction으로 계산하여 oracle의 translation을 +제거한 뒤 같은 포함 검사가 통과했다. Production 변경이나 tolerance 완화는 없었다. +DOF를 포함한 통합 검사는 후속 실행으로 구분한다. 전체 thermal 검사, NT11 외부 수치 비교와 실제 결과의 독립 physics 평가는 아직 수행하지 않았다. diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index f239566..83db881 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -17,6 +17,7 @@ add_library( analysis/nonlinear_static_control.cpp analysis/nonlinear_static_procedure.cpp analysis/prepared_analysis.cpp + analysis/thermal_time_grid.cpp app/fesa_application.cpp app/output_paths.cpp assembly/load_assembler.cpp @@ -35,6 +36,8 @@ add_library( elements/mitc4_shell.cpp elements/nonlinear_mitc4_shell.cpp elements/nonlinear_mitc4_inertia.cpp + elements/thermal_shell.cpp + elements/thermal_shell_geometry.cpp fem/dof_manager.cpp io/abaqus/domain_builder.cpp io/abaqus/domain_mapping_context.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e176917..b2e2f89 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -18,6 +18,7 @@ add_executable( unit/analysis/nonlinear_analysis_state_test.cpp unit/analysis/nonlinear_static_control_test.cpp unit/analysis/newton_iteration_log_test.cpp + unit/analysis/thermal_time_grid_test.cpp unit/assembly/parallel_for_test.cpp unit/assembly/load_assembler_test.cpp unit/assembly/surface_pressure_assembler_test.cpp @@ -37,6 +38,7 @@ add_executable( unit/elements/nonlinear_mitc4_shell_test.cpp unit/elements/nonlinear_mitc4_inertia_test.cpp unit/elements/nonlinear_mitc4_shell_tangent_test.cpp + unit/elements/thermal_shell_test.cpp unit/fem/dof_manager_test.cpp unit/math/dense_blas_internal_test.cpp unit/math/matrix_test.cpp @@ -59,6 +61,7 @@ add_executable( unit/loads/shell_surface_pressure_test.cpp unit/model/domain_test.cpp unit/model/thermal_semantics_test.cpp + unit/model/thermal_shell_geometry_test.cpp unit/model/model_types_test.cpp unit/model/shell_geometry_test.cpp unit/model/source_target_resolver_test.cpp