65 lines
11 KiB
Markdown
65 lines
11 KiB
Markdown
# HHT 독립 수치 검토·검증 계약
|
||
|
||
- Feature: `hht-implicit-dynamics`; owner: `numerical-review-agent`; date: `2026-09-22`.
|
||
- 상태: `numerical-contract-defined; io-binding-and-implementation-verification-pending`. 기존 정식화 검토에 후속 Numerical gate의 내부 판정·검증 사례·reference mapping 검토를 추가했다. Solver 기능 통과 또는 I/O schema 승인이 아니다.
|
||
- 기준: [프로젝트 지침](../../AGENTS.md), [Feature PRD](PRD.md), [요구사항](requirements.md), [연구 근거](research.md), [공통 tolerance](../TOLERANCE.md).
|
||
- 상세: [내부 수치 기준](numerical-controls.md), [검증 사례](verification-cases.md), [시간정확도 검산](numerical-review-probes.md), [추가 일차 근거](numerical-research.md), [reference mapping](reference-model.md). Solver source/tests/reference/상위 계약은 수정하지 않았다.
|
||
|
||
## 결론
|
||
|
||
[주 정식화](formulation.md)와 [관성 상세](formulation-inertia.md)를 독립 대조했다. **현재 physical/algorithmic 가속도 분리 후보의 표시된 수식에서 새 오류는 발견하지 않았다.** 사용자는 [HHT-ADR-007](ADR.md)에서 consistent kinetic mass를 선택했다. 내부 수치값과 반증 가능한 사례를 구체화했으며 Numerical 계약은 후속 I/O/구현에 인계할 수 있다. 실제 finite-rotation shell의 drilling DAE·시간수렴·reference 검증은 구현 후 필수 evidence다. 이 미실행을 수식 모순이나 코드 작성 금지로 해석하지 않는다.
|
||
|
||
| 확정한 내부 판정 | 핵심 기준 |
|
||
| --- | --- |
|
||
| Newton·선형계 | Force/moment별 상쇄 전 기여 scale의 residual `1e-10`, correction 및 h-scaled v/a/A 각각 `1e-10`의 AND; linear backward error `1e-12`; 최대100 corrections, fixed DIRECT/no cutback |
|
||
| Mass·DAE | Analytic `Jl^-1 d`의 free-space intersection으로 expected rank; positive-space Cholesky, scaled local/대수 rcond `>=2^-32`, null/Gram/moment `1e-12`; 초기 hidden consistency `1e-10` |
|
||
| 미분·불변식 | D3/관성/전체 tangent step sweep의 nonzero error `1e-6`, exact zero action `1e-10`; nonlinear objectivity `1e-10`, force/moment balance `1e-8`; dynamic Keff 대칭 가정 없음 |
|
||
| 시간·coverage | 지정 smooth oracle의 q/v/physical a 최대오차와 마지막 두 refinement 차수 `>=1.8`; A는 별도량. Full Cartesian moving-null, coupled massless startup, finite-rotation shell, energy, rollback, 전체 reference 사례 |
|
||
|
||
숫자의 norm·zero branch·단위·실행 상태는 [numerical-controls](numerical-controls.md)가 원본이다. 위 요약의 값만 떼어 다른 metric에 적용하지 않는다. 기존 정적 외력 상대 1%/absolute `1e-3`나 eigen 외부 RMS 예외를 동적 Newton에 승계하지 않았다.
|
||
|
||
## 위험과 수정 반영
|
||
|
||
| ID | 판단 | 근거·필요 조치 |
|
||
| --- | --- | --- |
|
||
| HHT-NR-001 | Naive variable-mass HHT의 일반 2차 주장 **FAIL; 현 후보에서 배제 완료** | 여기서 `g=c+f_int-F`. `M(q1)A1+(1+alpha)g1-alpha*g0`에 `-alpha*h*Mdot*a` 결함. Smooth SDOF의 마지막 refinement 차수 `0.976709`. 관성 상세 §5.1이 이를 배제한다. |
|
||
| HHT-NR-002 | 두 시점 mass 가중을 moving-null 해결책으로 채택 **FAIL; 현 후보에서 배제 완료** | 양의 가중 합의 nullspace는 교집합이다. 회전하는 drill null이 사라지면 인공 관성이 생긴다. SDOF 2차 관찰은 shell 채택 근거가 아니다. 관성 상세 §5.3이 이를 채택하지 않는다. |
|
||
| HHT-NR-003 | Endpoint physical `a`와 auxiliary `A` 분리 **SUPPORTED CANDIDATE** | `A1=(1+alpha)a1-alpha*a0`, Newmark에는 A, endpoint balance에는 a. Smooth variable-mass와 한 moving-null 제조해에서 U/V/a의 2차 경향 확인. 일반 shell DAE 수렴 증명·구현 통과는 아니다. |
|
||
| HHT-NR-004 | `A`를 physical acceleration으로 출력 **FAIL; 현 후보에서 구분 완료** | 위 후보에서도 A의 endpoint 오차는 1차다. 주 정식화 §§4–6이 a/A와 endpoint reaction을 구분한다. 영속 결과 선택은 I/O owner의 후속 계약이다. |
|
||
|
||
## 수식 대조 결과
|
||
|
||
| 검토 항목 | 결과와 evidence |
|
||
| --- | --- |
|
||
| DOF·좌표·회전 | `[u,phi]`, total fixed-global chart `|phi|<pi`, `omega=Jl v_phi`와 `omega_dot=Jl a_phi+DJl[v_phi]v_phi`는 기존 [비선형 정식화 §§3,6](../nonlinear-static-newton-raphson/formulation.md)와 일관된다. B, C, D3의 방향미분을 직접 대조했다. Rate에 A를 넣지 않는다. |
|
||
| 질량·적분·단위 | Consistent `HᵀH`, scalar moment lumping, `M_uu/M_uphi/M_phiphi`의 `M/ML/ML²`와 force/moment 차원은 일관된다. `3³` 질량 적분의 최대 축별 차수 4, 내력 `2³`의 분리 및 density/reference measure 고정도 [기존 mass M1–M7](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md)과 대조했다. 질량 종류별 에너지·orbital inertia 차이는 실제 물리 선택이다. |
|
||
| 관성력·접선 | `I=∫rho Hᵀ(Ha+D²x[v,v])dV0`는 kinetic energy의 Euler–Lagrange 전개와 일치한다. `DqI`의 `D²x[p,·]ᵀ xddot`, `HᵀD²x[p,a]`, `HᵀD³x[p,v,v]` 및 `DvI=2∫rho HᵀD²x[v,p]`를 확인했다. `M/((1+alpha)beta h²)`와 `gamma/(beta h)` chain-rule 계수도 맞다. 일반 비대칭을 허용해야 한다. |
|
||
| Null·초기화 | `ker B=span(Jl^-1 d)` 및 free admissible null을 사용한다. `psi=Nᵀg=0`, 초기 1·2차 미분조건과 `(psi_q N)eta`로 null acceleration을 구하는 절차는 일관된다. M pseudoinverse만으로 초기 가속도를 정하지 않는 것이 필요하다. 실제 shell의 constant rank/regularity는 미검증이다. |
|
||
| 시간·하중 | `alpha=-.05,beta=.275625,gamma=.55`, STEP의 `0+` 전값, `a0` 평형 및 `A0=a0`, `DIRECT h=.1,T=10`을 보존한다. Constant M에서 free endpoint 평형과 표준 force-weighted HHT의 환원을 확인했다. 큰 h의 정확도·일반 비선형 무조건 안정성을 주장하지 않는다. |
|
||
| 반력·에너지·회복 | Endpoint `E=I+f_int-F`, reaction의 support-on-structure 부호, `M_spatial=Jl^-T m_phi`의 가상일 관계는 일관된다. `R_HHT,c`와 endpoint reaction을 구별한다. `T+U_phys+U_drill-W`는 이산 에너지 결함이며 물리 damping이 아니다. Numerical drill을 physical section stress에 넣지 않는다. |
|
||
| State·안정성·coverage | 같은 trial의 q/v/a/A·tangent·recovery, 원자적 commit, 실패 history 보존 및 fixed dt 실패 종료는 수식과 일치한다. 기존 MITC의 locking/왜곡/chart 경계는 사라지지 않는다. U/UR reference만으로 V/A/에너지·큰 회전·hidden constraint를 검증할 수 없다. |
|
||
|
||
## 계약 결정과 후속 검증의 구분
|
||
|
||
| ID | 영향·owner | 필요한 해소 |
|
||
| --- | --- | --- |
|
||
| HHT-NR-005 | **구현 후 필수 검증; 기능 acceptance blocking**, Formulation/Implementation/Numerical Review | 선택한 지원 범위에서 free mass의 예상 constant rank와 `psi_q N` guard, finite-rotation drill coupling, q/v/a 및 hidden-constraint defect의 시간수렴을 검증한다. Nonsingular-mass 문헌 정리를 직접 확대하지 않으며 모든 finite-rotation shell DAE의 보편 정리를 새로 요구하지도 않는다. 현재 2D moving-null probe는 특정 regular 예제의 제한된 evidence다. |
|
||
| HHT-NR-006 | **CLOSED: mass 사용자 결정**, Main/사용자 | HHT-ADR-007의 consistent kinetic mass를 사용한다. Lumped를 동시에 지원하거나 reference fitting으로 전환할 의무·권한은 없다. 이 결정은 HHT의 모든 공개 입력/결과 계약까지 승인한 것이 아니다. |
|
||
| HHT-NR-007 | **Numerical criteria DEFINED; I/O binding pending**, 해당 owner | [N1–N7](numerical-controls.md)과 [C01–C12](verification-cases.md)에 mixed-unit Newton, zero branch, conditioning/branch, 종료·hidden defect·oracle를 정의했다. 공개 a/A·omega quantity 선택과 HDF5 field/schema 연결은 후속 I/O 소유다. |
|
||
|
||
후속 필수 검증은 정식화 §7과 연구 HHT-E01–E10을 따른다. 특히 실제 shell의 3차 director/관성 tangent directional derivative, 초기 drilling acceleration coupling, 좌표변환 후 동일 물리 모델, kinetic-energy derivative·관성 force/moment 평형, 선형 alpha=0 에너지 및 비선형 에너지 결함 시간수렴을 포함해야 한다. 일반 비선형 HHT에 정확 에너지 보존·매 frame 단조감소를 강제하지 않는다.
|
||
|
||
## Reference tolerance 적용 경계
|
||
|
||
[reference-model](reference-model.md)을 독립 대조해 수치 비교 정의에 이견이 없음을 확인했다. 원본 inventory의 직접 재집계는 그 문서에 기록된 main evidence다. `Step-1/increment/instance/node/component` identity, frame별 `U-global`/`UR-global` 27 scalars씩 총202 families, 9-node projection 전후 사전검사를 사용한다. CSV decimal time `n/10`과 FESA scheduled binary64 `n*h`를 각각 검증한 뒤 integer increment로 연결하므로 표시 decimal과 부동소수점 곱의 차이를 nearest-time tolerance로 숨기지 않는다. 실제 HDF5 field/schema는 후속 I/O가 연결한다.
|
||
|
||
[TOLERANCE](../TOLERANCE.md)의 near-zero band `0.01S`, 일반 행 relative `0.05`, relative RMS `0.01`, `S=0` exact-zero를 그대로 사용한다. U blocking, UR warning-only이나 identity/finite 오류는 전체 실패다. Eigen RMS 예외는 적용하지 않는다. Reference 비교는 **미실행**이다. 9개 node가 중심 주변 3×3 patch라는 coverage 한계 및 성긴 `dt/T1≈7.4567`을 보존한다.
|
||
|
||
## 실행 evidence와 한계
|
||
|
||
[독립 검산](numerical-review-probes.md)의 기존 SDOF/angle-reduced moving-null은 **종단 오차** evidence로 재사용했다. 후속 main의 full Cartesian 2×2 residual/Jacobian probe를 읽고 한 번 재실행하여 exit `0` 및 **전체 시점 최대오차**를 확인했다. 마지막 refinement의 q/v/a 차수는 `1.99985/1.99992/1.99834`, full residual 최대 `7.94824e-11`, 최대 Newton3 corrections였다. 별도 Jacobian의 고정 step sweep도 연속한 내부 점에서 `1e-6` 이하를 보였다. 이 관찰은 N2–N7의 모든 gate나 실제 shell을 통과한 실행이 아니다.
|
||
|
||
본 owner의 4개 문서에서 로컬 링크 대상·trailing whitespace를 검사하여 문제 0개였다. Binary64 scalar 계산으로 `gamma4096=4.54747e-13`, `gamma64/(2^-32)=3.05176e-5` 및 `diag(1,c)`의 c=`2^-31,2^-32,2^-33,0`에 대한 conditioning 경계 판정 `pass,pass,fail,fail`을 확인했다. 이는 scalar 산술 확인이며 C05의 실제 mass/condition-estimator 실행 통과가 아니다.
|
||
|
||
잔여 위험은 선택 consistent mass의 실제 shell constant-rank/regularity, D3 구현과 small-angle 경계, 큰 h의 시간 alias, 초기·finite-dt hidden constraints, 조건수 추정의 forward-error 한계다. C01–C12가 이를 검출하도록 설계됐고 아직 solver 실행 결과는 없다. Build/CTest, FESA 동적 해석, Abaqus, 외부 reference comparison은 이번 문서 작업 범위에서 실행하지 않았다.
|