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.
10 KiB
MITC4 HHT consistent/lumped 질량 비교 실험
2026-10-11 사용자의 질량만 변경한 비교 요청에 따른 private 실험이다. 기존 질량 결정과 관성 정식화의 consistent kinetic mass 기본값은 유지한다. Abaqus S4의 내부 질량행렬을 추출하거나 그 회전 관성 구현을 재현한 실험은 아니다.
방법과 변경 경계
원본 reference/shellNL-dyn-meshfine/shellNL-dyn-meshfine.inp의 byte 동일 복사본을
두 별도 출력 경로에서 해석한다. 729 nodes/676 S4, thickness=.5, rho=2700,
E=2.1e11, nu=.3, 중심 node2의 각 병진 방향 하중 -100000, 외곽 104 nodes의
6 DOF 고정, NLGEOM 및 HHT 계수와 dt=.1, 종료 시간10을 유지한다.
Consistent는 production source를 그대로 사용한다. Lumped는 관성 상세의 비교식
T_L=1/2 Σ_i ∫rho N_i |v_ui+z Dd_i v_phi_i|² dV0을 private kernel에 적용한다.
Reference geometry/Jacobian과 current geometry 검사는 유지하고, kinetic
interpolation만 각 절점으로 옮긴다. 질량뿐 아니라 해당 kinetic energy의 관성력,
convective force, 위치·속도 접선, 에너지와 운동량 회복까지 같은 measure로 계산한다.
일반 24×24 행렬을 단순 대각화하거나 drilling에 질량을 추가하지 않는다.
두 실행 파일은 같은 source revision과 같은 새 MSVC Release library를 사용한다.
Lumped 실행 파일만 관성 object와 결과 writer object를 먼저 링크한다. Writer의
mass metadata/self-check는 research-nodal-lumped-kinetic으로 명시한다.
Stiffness, HHT update, residual, 초기화·수렴 기준, 하중, 모델, 회전 운동학과
나머지 recovery는 동일하다. Production source/API/CLI와 reference 원본은 수정하지 않는다.
요소 단위 검산
아래 결과는 MSVC Debug private probe의 제한된 smoke 진단이다. 기존 N5 또는 C08 acceptance 통과로 분류하지 않는다. Rectangle .2 thickness, density1에서 기존 eigen 요소의 consistent/lumped 24×24 행렬과 초기 질량을 직접 대조했다.
| 검사 | Consistent | Lumped |
|---|---|---|
| 기존 mass oracle 최대 절대차 | 3.46945e-18 | 5.55112e-17 |
| 절점 간 mass block 최대 절대값 | .0444444 | exact0 |
| 방향별 총 병진 질량 | .8 | .8 |
| uniform translation kinetic energy | 1.6 | 1.6 |
| 동일 비균일 q/v의 kinetic energy | .0648590621 | .0802553965 |
I−Ma−c 최대 절대차 |
1.38778e-17 | 6.93889e-18 |
| 병진 force 합과 momentum rate 최대 절대차 | 1.38778e-17 | 5.55112e-17 |
비영 q/v/a에서 central difference로 관성력 위치·속도 접선을, kinetic energy의
시간 방향 미분으로 v·I=dT/dt를 대조했다. Step1e-3~1e-6의 raw 절대오차는
약3.1e-11 이하이고 각 probe native exit0이다. 이는 기존 scaled N5 계약의
검사와 구분한다. Warped geometry, objectivity, 전체 angular-momentum 평형과
시간수렴을 이 smoke로 입증하지 않는다. 독립 numerical reviewer가 식·patch와
probe 결과에서 오류를 발견하지 않았으며 같은 coverage 한계를 확인했다.
원본 모델 비교 결과
전체 100증분 결과를 확보한 뒤 원본 CSV의 승인된 row/RMS/near-zero 정책으로 U/UR을 비교한다. Lumped용 private comparator는 기대하는 mass metadata만 실험 이름으로 바꾸고 identity·finite·frame·tolerance 검사는 유지한다. Lumped의 통과 여부는 연구 관측이며 기존 consistent 지원 계약의 acceptance로 분류하지 않는다. V/A·공간 각속도/각가속도·에너지는 Abaqus CSV에 없어 두 FESA 해석 사이의 진단으로 구분한다.
두 private CLI가 모두 100 increments/101 frames를 완료했다. Native exit는 각각0,
실행 시간은 consistent1116.70초/lumped1117.08초였다. 분석 script도 native exit0이며
729-node identity, frame/time, metadata와 필요한 양의 finite 검사를 통과했다.
원본 INP/CSV, production inertia/writer/comparator와 기존 Debug library의 before/after
SHA256은 동일하다. 공통 source revision은 ede137c6b40192f7e7c2647ec16765ce29c8239e다.
| 원본 CSV 비교·동적 진단 | Consistent | Lumped |
|---|---|---|
| U blocking comparison | PASS; 0 failures | PASS; 0 failures |
| Frame별 U family 상대 RMS의 최댓값 | .227058974% | .228242450% |
| Frame별 UR family 상대 RMS의 최댓값 | 2.53311382% | 2.53460488% |
| UR warning 건수 | 200 | 200 |
| 중심 node2 초기 병진 가속도; 각1–3방향 | −1502.222173 | −500.7407241 |
| 최대 병진 속도 절대값; 전체 nodes/frames | 1.387005688 | .4644038863 |
| 최대 운동에너지 | 191.6142090 | 64.12476142 |
| 최종 운동에너지 | .0002844432611 | .00009319202462 |
| 최대 energy defect 절대값 | 190.2255716 | 62.73624080 |
| 최종 energy defect | −1.398427506 | −1.398618759 |
| 중심 node2 최종 U3 | −2.563681542e-5 | −2.563676875e-5 |
외부 CSV의 U/UR 비교는 승인된9개 선택 절점의101 frames이다. 729-node 전체 이력 비교와 혼동하지 않는다. 단위는 일관된 입력의 L/F/T를 따르며 acceleration=L/T², velocity=L/T, energy=F·L이다. SI 단위라고 단정하지 않는다. UR은 기존 정책의 warning-only이며, V/A와 energy의 값에는 이번 실험을 위한 새 acceptance threshold를 적용하지 않았다.
두 해석 사이의 전체729 nodes×101 frames×3 components의 동일 양에 대해
||L−C||₂/||C||₂를 계산했다. 이것은 reference family RMS와 다른 private 진단이다.
| 양 | 전체 이력의 상대 L2 차이 |
|---|---|
| 병진 변위 U | .0226059033% |
| 회전 좌표 UR | .0223918588% |
| 병진 속도 V | 76.3639464% |
| 병진 물리 가속도 A | 76.3762180% |
| 회전 좌표 속도 PHIDOT | 54.2689255% |
| 회전 좌표 가속도 PHIDDOT | 54.2811291% |
Frame0을 제외한 병진 가속도 이력의 상대 차이도76.3762009%여서 초기 가속도 한 frame만의 차이는 아니다. U의 최대 절대차는1.30297458e-8 L이다. 두 mass의 U reference RMS 차이는 .001183476 percentage points이며, 양쪽 모두 같은 정책을 통과한다. 이 원본의 U 비교는 두 질량 선택을 판별하는 데 민감하지 않다는 관측이다. 속도·가속도·운동에너지까지 같다고 확대할 수 없고, 회전 관성 차이의 상쇄가 원인이라고 판별한 결과도 아니다. 병진 mass coupling만으로도 초기 가속도 분포가 달라진다. 특히 이 centered flat shell의 frame0은 q=v=0이며, 두께의 first moment와 병진–회전 mass coupling은0이다. 이때 속도의 제곱에 비례하는 convective 항도0이므로, 중심 초기 병진 가속도의 약3배 차이는 병진 mass 분포·절점 간 coupling의 영향이다. 이를 회전 관성항의 상쇄로 설명할 필요는 없다.
최대 T가 consistent 쪽에서 더 크더라도 같은 q/v에서의 T_L>=T_C와 모순되지
않는다. 전체 해석에서는 두 질량 방식의 q/v 자체가 달라진다. Coarse dt에서 시간
이산화·수치 감쇠가 U 차이를 가릴 수 있다는 가설은 이 관측과 양립하지만, 이를
원인으로 확정하려면 같은 두 질량으로 시간 refinement를 수행해야 한다.
결과 HDF5 SHA256:
- Consistent:
fe0ea4bddca18a23c55c3c7880aaa377fd0ff13b964c1d4f70ddefad5995d5d9. - Lumped:
b6253edae92ab73201d089795d274709d1f0cccce759a753b24712c7b6d9c3ea.
공통 Release library SHA256:
1dc5d33417ce905e501cd56bbbb21262d1c8b856394a23e2c798e200cbcdfa31.
독립 numerical reviewer는 comparator를 호출하지 않고 원본 CSV의202 families/
5454 scalar values를 재계산하여 두 report의 원값·error·row 판정과 RMS를 확인했다.
HDF5의101×729 전체 이력·초기값·에너지 요약, source/input/library/exe SHA와 공통
metadata를 별도로 확인했고 finding은 없었다. 실제 독립 실행 native exit0이며
independent-review-result.json SHA256은
b33d2019cb553f848fafdb2906dd540d2109982ec322b6b7d5b279721c22a20c다.
Energy identity의 재계산은 저장량 사이의 일관성 검사이며 독립 volume kinetic
적분이나 정확한 에너지 보존·시간수렴을 새로 입증한 것은 아니다.
실행·재현과 한계
Private 생성·실행·결과 경로는 저장소 기준
.dryforge/hht-mass-comparison-20261011/이다. prepare.py는 원본 source/reference
hash와 byte 동일 입력 복사본을 보존한다. build.ps1/build-probe.ps1은 Debug
요소 probe를, build-optimized.ps1은 공통 Release library와 paired CLI를 만든다.
각 variant의 CLI에 그 variant의 복사 INP를 전달하고 analyze.py를 h5py/NumPy
환경에서 실행한다. result.json, 두 reference-comparison.json, probe.json,
native exit 기록과 before/after hash가 실제 evidence다.
Debug 원본 모델 실행은 각각 초기 동적 평형까지만 확보한 뒤 runtime 때문에 중단했다. 각 native exit -1은 중단 기록이며 PASS가 아니다. 최초 private writer link의 HDF5 DLL macro 누락은 수정했다; 초기 link 실패는 tool 실행 기록에 있으며 log 파일은 후속 link 실행으로 덮어쓰여 별도 raw 파일로 남지 않았다. Probe의 index/Vector3 API 오류는 수정 전 실패 로그로 별도 보존한다. 초기 분석 script의 source label을 정수로 직접 비교한 오류는 HDF5의 문자열 label을 명시적으로 해석하도록 수정했고, 수정 전 native1/log와 수정 후 native0을 구분해 보존했다. 공통 Release source build 및 두 private CLI build는 native exit0이다.
이 실험은 production 수정이나 기능 완료 작업이 아니며 전체 MSVC Debug/CTest를
새로 실행하지 않았다. 기존 C08 시간수렴 실패는 유지한다. dt/T1≈7.4567인 성긴
원본 시간간격에서의 외부 U 비교를, 시간 정확도·큰 회전 관성 또는 질량 정책의
동등성으로 확대하지 않는다. Source/reference와 기존 Debug library의 hash 보존을
확인하며 reference 원본·tolerance·공개 mass 정책을 결과에 맞춰 변경하지 않는다.
2026-10-11 후속 질량 정책 승인
사용자는 고유치·HHT lumped mass 채택을 명시 승인했다(HHT-ADR-012). 위 조사와 private 비교는 채택 전 원문 기록이며 production 검증으로 승계하지 않는다. 현재 채택 수식은 formulation, 변경본 재검증 상태는 PRD의 현재 checklist를 따른다. 원본 reference·허용값·HHT 계수와 출력 layout은 유지한다.