eaa5cbeb21
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
69 lines
5.1 KiB
Markdown
69 lines
5.1 KiB
Markdown
# Hex8 구현·검토 인계
|
|
|
|
2026-10-13. 사용자 요청에 따라 장시간 전체 검증을 수행하지 않고 남은
|
|
검토·기존 결과 재대조·인계를 정리했다. Hex8 구현과 이 범위의 검증은
|
|
확보했으며, FEM-REQ-HEX8-024의 최신 전체 통합 완료 판정은 보류다.
|
|
현재 체크리스트는 [PRD](PRD.md#현재-checklist)에만 둔다.
|
|
|
|
## 이번에 확인한 근거
|
|
|
|
| 확인 | 결과 | 적용 범위 |
|
|
| --- | --- | --- |
|
|
| 구성된 MSVC x64 Debug 관련 CTest | 91/91 PASS, native0,254.64초 | Hex8 kernel·Solid static/frequency·HHT state/kinematics/dynamics/Float64 history. 전체 CTest·장시간 원본 동해석·전체 시간수렴 아님 |
|
|
| Hex8 비교기 Python 검사 | 96 PASS, native0,38.29초 | `tests/test_compare_hex8.py`; Python 전체 suite 아님 |
|
|
| 현재 비교기로 보존된 원본5개 결과 재대조 | 정적2·고유치·동적2 모두 native0 | 기존 성공 native/HDF5와 현재 read-only 원본을 사용한 새 비교. 새 솔버 원본 실행 아님 |
|
|
| 기존 검증본과 source identity 대조 | production190 중180 동일,10 변경; 원본16개 모두 동일 | Hex8 및 Solid 실행·질량·복구·출력 경로는 동일. 변경10개는 Shell HHT/state/element/writer 관련이며 전체 공용 binary의 동일성은 주장하지 않음 |
|
|
| 독립 수치·물리 인계 검토 | 해당 범위에서 새로 조치할 문제 없음 | Hex8 직접 소비 소스27개 및 기존 evidence39개의 hash 대조. 별도 질량 적분의 한 축 총질량444063.050932, 양의 nodal mass와 기존 수지 검토 확인. 최신 전체 물리 PASS 아님 |
|
|
|
|
이번 작업에서는 production·C++ 검사·physics·질량·입력·schema·tolerance를
|
|
변경하지 않았다. 전체 build/CTest와 C08b 미세 grid, 장시간 원본 CLI를
|
|
시작하지 않았다. 기존 실패·중단 기록을 PASS로 바꾸지 않았다.
|
|
|
|
실행 근거는 `.dryforge/hht-remediation-20261012/`의
|
|
`hex8-handoff-bounded-debug.{native.json,raw.log}`, `hex8-handoff-python.{native.json,log}`,
|
|
`hex8-handoff-comparisons/execution.json` 및 case별 보고서다.
|
|
독립 검토는 같은 폴더의 `hex8-handoff-numerical-review.json`과
|
|
`hex8-handoff-physics-review.json` 기록을 따른다. 과거 manifest에 없는
|
|
private header는 현재 hash만 별도로 기록하며 과거 동일성 입증 범위에 넣지 않는다.
|
|
|
|
## 보존할 구현·물리 경계
|
|
|
|
Local kernel은 reference8점 deviatoric 항과 요소 평균 trace energy를 사용한다.
|
|
선형 K와 비선형 f/Kmat/Kgeo/Kt는 같은 energy에서 유도하며, 응력·변형률은
|
|
Gauss point identity로 반환한다. 질량은 full element consistent M의
|
|
reference row sum을 **BC 제한 전에** 구한 대각 M이다. Eigen/HHT·관성력·
|
|
반력·운동에너지·운동량은 같은 질량을 사용한다.
|
|
|
|
Solid HHT의 normalized high+low 상태와 최종 RN64 결과 의미를 유지한다.
|
|
실패 candidate가 accepted history나 기존 최종 HDF5를 변경하지 않아야 한다.
|
|
원본5개 비교와 기존 독립 수지·modal 검산은 검증한 모델에 한정한 근거다.
|
|
임의 distorted mesh·큰 변형·다른 시간간격의 정확도나 전체 green을 보증하지 않는다.
|
|
상세 물리 근거는 [물리 평가](physics-evaluation.md),
|
|
수치 기준은 [numeric controls](numeric-controls.md)를 따른다.
|
|
|
|
## Shell 영향과 미검증 범위
|
|
|
|
초기 lumped 변경본의 C08b 회전 runtime 실패는 후속 승인된 초기 Newton
|
|
정책에서 해소된 이력이다. 이후 ADR-018 변경본의 C09와 공식 Release
|
|
C08a7-grid도 통과했다. 이 결과들을 과거 전체789/802 검사에 소급 합산하지 않는다.
|
|
|
|
최신 전체 Debug는44/856 PASS 후 사용자 중단, Release C08b도 중단됐다.
|
|
최신 Shell 원본은99증분·t=9.9까지 accepted 로그만 있으며 현재 HDF5가 없어
|
|
새 Abaqus 변위 비교를 수행할 수 없다. [중단 시점 비교](../hht-implicit-dynamics/interrupted-validation-comparison.md)를
|
|
따르며 C08b·현재 Shell 원본 비교·전체 통합·독립 전체 물리 판정은 남아 있다.
|
|
이는 Hex8 필수 원본5개 비교가 다시 실패했다는 뜻이 아니다.
|
|
|
|
## 성능 최적화 후 재검증으로 넘길 내용
|
|
|
|
사용자가 요청한 다음 순서는 성능 최적화 후 전체 검증이다. 이번 작업은
|
|
최적화 구현을 시작하지 않았으며 느린 연산의 원인을 계측 없이 단정하지 않는다.
|
|
먼저 같은 source/input·빌드 구성·thread 설정에서 local 계산·조립·solve·
|
|
복구·출력 시간을 분리해 기준을 확보한다. 중복 계산 제거와 데이터 재사용은
|
|
실제 state/operator 수명을 지켜야 한다.
|
|
|
|
연산 순서나 reduction을 바꾸면 수치 변경으로 다룬다. 시간간격·grid·질량·
|
|
반복 제한·수용 기준을 줄여 성능 개선으로 보고하지 않는다. 최적화 전후
|
|
관련 analytical/invariant·failure preservation·serial/TBB 결정론을 대조하고,
|
|
최종 source에서 구성된 전체 MSVC Debug build/CTest와 필수 원본 비교 및
|
|
독립 물리 검토를 다시 수행한다. 현재 bounded 결과는 그 실행을 대체하지 않는다.
|