Files
FESADev/docs/hht-implicit-dynamics/numerical-review.md
T

65 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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은 이번 문서 작업 범위에서 실행하지 않았다.