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.
123 lines
9.1 KiB
Markdown
123 lines
9.1 KiB
Markdown
# Hex8 lumped 질량 변경본의 물리 평가
|
||
|
||
검토일: 2026-10-11–12. 적용 계약은 [PRD](PRD.md), [정식화](formulation.md),
|
||
[numeric controls](numeric-controls.md), [reference mapping](reference-model.md),
|
||
[HEX8-ADR-010](ADR.md)이다. `$fem-physics-review`에 따라 코드·계약·원본·출력을
|
||
변경하지 않고 현재 생성된 evidence만 검토했다. 단위는 입력 일관 단위이며 SI로 단정하지 않는다.
|
||
|
||
**현재 판정: 원본 5 case의 질량·모드·정적 및 HHT 관측 수지에 한정한 물리 대조 PASS.
|
||
전체 configured Debug 회귀는 실패로 종료했으며 최종 test-only 변경 후 전체 790개는 미실행이다.
|
||
기능 전체 통과나 release 승인이 아니다.** 과거 consistent 결과를
|
||
lumped 변경본의 통과로 승계하지 않는다.
|
||
|
||
## 원본 고유치의 독립 재계산
|
||
|
||
현재 evidence는
|
||
`.dryforge/lumped-mass-adoption-20261011/references/hexa_freq/`의
|
||
`native.json`, `comparison.json`, `hexa_freq_results.h5`다. CLI는 MSVC x64 Debug이며
|
||
native exit 0, comparator도 PASS다. HDF5 SHA-256은
|
||
`94a576bbfe1d5826235a6323e6d470163ed2e970c4fe6f65a86b2d65a3db7f8a`다.
|
||
원본과 실행 복사본의 raw SHA는
|
||
`42cbcec2a8b738f8b6d2c1e13114b8840dccdde6fc3e6f8a43a3272e85d82347`로 같다.
|
||
|
||
저장된 기준 좌표·연결·E/ν/ρ로 Python/NumPy/SciPy에서 별도 8점 적분을 수행했다.
|
||
선형 강성은 deviatoric 항과 `κbbᵀ/V` 체적 항으로 재조립하고, 요소별
|
||
`m_a=Σ_g ρN_a det J₀g`를 **전체 절점에 조립한 후** 고정 자유도를 제한했다.
|
||
생산 `ComputeMass`나 저장된 검사값을 독립 계산의 입력으로 사용하지 않았다.
|
||
|
||
| 검사 | 현재 계산값 | 해석 |
|
||
| --- | --- | --- |
|
||
| Inventory와 BC | 442 nodes, 300 elements, 고정 51 / free 1275 scalar DOFs | 원본 모델과 일치 |
|
||
| 적분점 기준 Jacobian | `det J₀ ∈ [0.0173052408541, 0.0311031172125]` | 현재 적분점은 양수; whole-cell 인증 대체가 아님 |
|
||
| 기준 체적·질량 | `V=56.56854152`, `ρV=444063.050932` | 한 병진 축의 총 질량과 일치; 세 축 trace를 총 질량으로 쓰지 않음 |
|
||
| 조립 절점 질량 | `[423.377959037, 1380.99055553]` | 모두 양수이며 전체 영역의 기준 질량을 보존 |
|
||
| 모드·강체 증상 | IDs 1–10, 모든 λ>0, 고정 좌표의 eigenvector exact 0 | 지지된 모델에서 불필요한 강체 모드 징후 없음 |
|
||
| 독립 `max eta_r` / `max eta_energy` | `1.16389132e-17` / `4.15247286e-19` | 계약 `1e-10` 이내 |
|
||
| 독립 mass Gram / modal norm 결함 | `1.33287771e-15` / `4.44089210e-16` | 계약 `1e-10` 이내 |
|
||
| 원본 10 λ의 최대 상대차 | `1.96104961e-5 = 0.00196104961%`, mode 4 | 원본 singleton RMS 기준 1% 이내 |
|
||
|
||
직접 λ 대조는 제공 TXT의 `Value`를 사용했다. 주파수의 제곱이나 인접 모드 재매칭을
|
||
사용하지 않았다. 저장된 returned-pair 검사에는 25개가 있으며 최대 `eta_r=1.05545514e-17`,
|
||
전체 Gram `4.37942691e-15`다. Reviewer의 독립 벡터 재검산은 공개된 10개에 한정된다.
|
||
최저 모드 count/search bound의 별도 수치 검토를 이 물리 검사로 대체하지 않는다.
|
||
|
||
## 신규 정적 2 case와 HHT 2 case의 수지 검산
|
||
|
||
닫힌 Debug 정적 2 case와 current production **Release** 선형/TL HHT 각각 101 frames를
|
||
별도 8점 적분으로 재구성했다. 원본/복사본 raw bytes, native exit 0과 HDF SHA를 확인했고
|
||
각 comparator도 PASS다. 상세 artifact SHA와 관측량은
|
||
[lumped 계산 상세](lumped-mass-physics-details.json)에 있다.
|
||
동적 폴더는 `references/hexa_dynlinear-release/`와 `references/hexa_dynnonlinear-release/`이며
|
||
Debug 동적 실행으로 표시하지 않는다.
|
||
|
||
강성의 reference-relative derivative로 실제 infinitesimal/Green strain과
|
||
`2μ dev(strain)+κ mean(trace)I`, TL first Piola/Cauchy stress, 내력·에너지를
|
||
재계산했다. 동적 관측은 `T=½Σm_a|v_a|²`, `P=Σm_av_a`,
|
||
`L=Σ(X_a+u_a)×m_av_a`, 실제 endpoint force의 trapezoid work를 사용했다.
|
||
정적 case에는 동적 work/energy defect를 정의하지 않았다.
|
||
|
||
| 현재 결과 | 주요 독립 계산의 최대 차이 |
|
||
| --- | --- |
|
||
| 선형 정적 | RF `1.74623e-10` force, stress `1.23382e-8` force/length², U `1.13687e-13` force·length |
|
||
| TL 정적 10 frames | RF `2.32831e-10`, stress `1.37079e-8`, U `1.42109e-13`; 동일 차원 순서 |
|
||
| 선형 HHT 101 frames | RF `3.49246e-10`, T `7.10543e-15`, P `3.63798e-12`, L `6.54836e-11`; 각 force / force·length / mass·length/time / mass·length²/time |
|
||
| 선형 HHT work / defect | `1.13687e-13` / `1.27898e-13` force·length |
|
||
| 선형 HHT force balance | normalized `1.41900e-16`; 저장 free residual을 포함한 ledger 차이 `7.22645e-10` force |
|
||
| TL HHT 101 frames | RF `3.49246e-10`, T `7.10543e-15`, P `5.45697e-12`, L `8.00355e-11`; 선형 HHT 행과 같은 차원 순서 |
|
||
| TL HHT work / defect | 각각 `1.70530e-13` force·length |
|
||
| TL HHT force / current moment balance | normalized `1.39768e-16` / `2.74239e-16` |
|
||
| 요소 합력·해당 arm 모멘트 | 정적/선형/TL HHT의 상쇄 전 norm 합 대비 모두 `2.46e-16` 이하 |
|
||
|
||
구속 U 및 동적 V/a/A와 free RF는 exact 0이다. Positive 하중에 최종 중심 U의 세 성분이
|
||
positive이며 거의 대칭인 원본 형상에서 x/y 차이는 `3.46e-10` length 이하이다.
|
||
TL 정적의 실제 Gauss-point `detF≥0.999986939`이고 energy는 양수다.
|
||
TL 정적 raw free residual 최대 `35.3624` force, 전체 force balance normalized
|
||
`2.48995e-6`은 승인된 정적 Newton residual 계약의 관측이다. 이를 동적 strict criterion으로
|
||
바꾸거나 exact equilibrium으로 설명하지 않는다. Stored free residual을 포함한 static ledger의
|
||
차이는 `7.10259e-10` force 이하다.
|
||
|
||
선형 K의 내부 moment는 **reference arm**에서 0이다. Current arm에는
|
||
`Σu×f_int`가 남아 선형 HHT의 실제 current moment balance 최대 `287.045278 force·length`다.
|
||
같은 내부 current moment를 포함한 ledger 차이는 `1.54483e-9 force·length`로 일치한다.
|
||
이를 TL 회전 불변성과 동일시하거나 0으로 강제하지 않는다.
|
||
|
||
선형 HHT 최종 `(T,U,W,B)`는
|
||
`(.249978981888,177.740764261,256.221236292,−78.2304930487)`이고 최대 T는
|
||
`51.6145686844`다. T/U는 비음수다. Alpha<0와 endpoint work에서 정확 보존이나
|
||
매-frame 단조 감소를 요구하지 않았으며 coarse original만으로 시간 정확도를 보증하지 않는다.
|
||
Rounded HDF state의 독립 free residual 재구성 최대 `1.10035e-7` force와 tiny 저장 residual은
|
||
구분한다. 이 audit는 내부 high+low gate의 독립 재실행이 아니다.
|
||
|
||
TL HHT에서는 현재 arm의 내부 moment 최대 `2.34564e-9 force·length`, 저장 free residual을
|
||
포함한 current moment ledger 차이 `1.79830e-9`로 회전 불변 내력과 일관된다.
|
||
Gauss-point `detF≥0.999979043552`, T/U는 비음수다. 최종 `(T,U,W,B)`는
|
||
`(.251339920298,177.770554367,256.242640663,−78.2207463760)`이고 최대 T는
|
||
`51.6133464012`다. 새 TL HDF SHA-256은
|
||
`8730e5562c91b3c7c9e654c811d2791ab7d24fdcc62286b0b28efa7cdc5957d6`다.
|
||
큰 strain/회전·임의 distorted mesh의 정확도에 이 작은 변형 원본을 확대하지 않는다.
|
||
|
||
## 남은 검토와 coverage
|
||
|
||
외부 V/A/energy 원본이 없으므로 U CSV 통과만으로 rate·시간 정확도를 판정하지 않는다.
|
||
|
||
최초 focused 실행은 중단 기록(`exit -1`)이므로 전체 focused PASS로 사용하지 않는다.
|
||
후속 `new-kernels.log`/`new-kernels-native.json`은 exit 0 / 38 tests PASS를 확인했다.
|
||
여기에는 warped nodal 질량 적분, Jensen energy, BC 전 full mass, scalar/MDOF 시간수렴과
|
||
readback 검사가 포함된다. 이 실행 범위를 전체 회귀·임의 warped cell 검증으로 확대하지 않는다.
|
||
전체 Debug CTest는 native 8로 자연 종료했으며 raw **784 PASS / 4 FAIL / 1 SKIP (789개)**를
|
||
보존했다. Shell C08a 시간수렴과 C08b의 새 chart 이탈 외의 두 실패는 이전 consistent
|
||
off-diagonal을 요구하던 factory expectation과 lumped pencil에서는 finite인 overflow fixture다.
|
||
Test-only 수정 후 두 검사는 `final-stale-fixtures.log`/native record에서 **2 PASS / native 0**이다.
|
||
Factory는 diagonal nodal mass를 확인하고 overflow는 `E=4e306`에서 실제 nonfinite validation을
|
||
검사한다. `E=3e306` 사례를 실패시키도록 production gate나 tolerance를 바꾸지 않았다.
|
||
|
||
같은 최종 Debug rebuild의 HHT force-rate oracle/pointwise 두 검사도 별도 PASS다.
|
||
최종 discovery는 790개이며 **전체 790개는 재실행하지 않았다**. Raw 789개와 후속 2+2 결과를
|
||
합쳐 새 전체 통과 수를 만들지 않는다. Production 190/reference 16 files의 현재 SHA를
|
||
`closed-identities-after-final-regression.json`과 독립 대조해 불일치 0을 확인했으므로,
|
||
앞의 원본 5 case 물리 대조는 유지한다. C08a/C08b OPEN 및 C04a SKIP과 이 원본 대조를 구별한다.
|
||
새 C08b 예외를 과거 baseline의 동일 실패라고 분류하지 않으며 해당 영향과 최종 manifest는
|
||
[Shell 물리 검토](../hht-implicit-dynamics/physics-evaluation.md)에 있다.
|
||
전역 최신 상태는
|
||
[PRD checklist](PRD.md)를 따른다.
|