feat: adopt lumped mass and reduced-coordinate shell HHT
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.
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
# HHT 연구 근거와 수치 설계
|
||||
|
||||
2026-10-11 질량 정책 변경: [HHT-ADR-012](ADR.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](PRD.md)의 현재 checklist를 따른다.
|
||||
|
||||
2026-10-12 후속 조사: [C08 시간 정확도·P 감소 실패 해결 후보](#temporal-remediation-research)는
|
||||
현행 lumped mass·HHT-ADR-013 변경본의 evidence를 대상으로 한다. 해결 후보의 조사이며
|
||||
새 적분법·startup·수치 기준의 채택 또는 solver 변경 승인이 아니다.
|
||||
|
||||
|
||||
|
||||
<a id="research"></a>
|
||||
@@ -364,3 +370,138 @@ Numerical Review에 인계할 결정은 scaling·conditioning/hidden-defect 판
|
||||
시간 수렴 구간·case 최소 조합이다. Formulation에 남는 사항은 singular-mass regularity의
|
||||
실제 shell 적용과 full-coordinate hidden constraint 검증이다. 사용자 결정에 따라 이번
|
||||
HHT 구현은 consistent mass를 사용한다. 위 lumped 비교 근거는 연구 이력이며 현재 지원 요구가 아니다.
|
||||
|
||||
<a id="temporal-remediation-research"></a>
|
||||
## 2026-10-12 C08 시간 정확도·P 감소 실패 해결 후보
|
||||
|
||||
사용자 요청에 따른 `fem-research-evidence` 조사다. 전문 research-agent의 DAE 문헌 조사와
|
||||
메인의 현재 evidence·시간 해상도·합산 조사 결과를 대조했다. Production·tests·reference·
|
||||
tolerance·PRD checklist·ADR 결정은 변경하지 않았다. 아래 제안은 정식화·독립 검토를
|
||||
거쳐야 하는 후보이며 현재 실패를 통과로 대체하지 않는다.
|
||||
문서 정적 검토는 로컬 참조528개 누락0·git diff --check native0이다. 이전 완료 검증의
|
||||
production190·원본16·task source/test6·binary4 hash가 그대로임을 확인했다.
|
||||
|
||||
### 현재 판정과 공동 해결책이 아닌 방법
|
||||
|
||||
[현재 실행 기록](newton-start-policy.md)의 전체802 결과는799 PASS·2 FAIL·1 SKIP이다.
|
||||
C08a는 finest 정규화 angular-a error 약5.67473e-4와 finest noise 분리 미달을 유지한다.
|
||||
C08b는 N7 noise 분리에 성공했지만 finest angular-a self-difference 약.474897과
|
||||
q/v/a 일부 시간수렴·P 감소 기준에 실패했다. 별도 복구 진단의 physical complement는
|
||||
약.474897, null 성분은 약.001844다. P drift는 약2.84555e-14→8.03575e-14로 증가했다.
|
||||
|
||||
- 현재 endpoint 평형·물리 a/보조 A 분리는 이미 Arnold–Brüls variant와 같은 방향이다.
|
||||
같은 variant를 다시 채택하는 것은 해결책이 아니다. [R1]의 일반 constrained 결과를
|
||||
singular moving-null shell의 정확도 보장으로 확대하지 않는다.
|
||||
- A0만 바꾸는 방법은 [NR-009의 Decimal80 cubic 반례](implementation-numerical-review.md)에서
|
||||
실패했다. Newton이나 double roundoff 없이도 전체 시점 최대 null 가속도 오차가1차다.
|
||||
- 기존 [null 가속도 복구 후보](formulation-acceleration-recovery.md)는 physical complement와
|
||||
q/v를 바꾸지 않는다. 같은 q/v에서 physical mass block의 가속도를 다시 풀어도 이미
|
||||
endpoint 평형으로 결정된 physical a의 시간오차를 자동으로 없애지 못한다.
|
||||
- 추가 고정밀·refinement 조사는 원인을 구분하는 diagnostic이다. 공식 grid·최대 시점
|
||||
범위를 바꾸거나 초기 구간을 제외해 기존 acceptance를 통과시킨 것으로 표시하지 않는다.
|
||||
|
||||
### 후보 비교와 채택 경계
|
||||
|
||||
| 후보 | 기대 효과 | 제한·필요한 결정 |
|
||||
| --- | --- | --- |
|
||||
| **국소 대수 drilling 좌표 제거와 q/v/a 미분 복구** | 독립적인 physical 좌표를 적분하고 대수 평형으로 drilling 좌표를 재구성해 null 좌표의 이력 차분 문제를 피하는 후보 | 전체 좌표의 현 이산 recurrence가 바뀐다. Smooth chart·rank·partial BC·양의 reduced mass·원 full residual 동등성 정식화가 필요하다. C08b 고주파 해상도 해결은 별도 검증 |
|
||||
| **위치·속도 수준 제약을 함께 처리하는 DAE 적분** | Hidden velocity drift와 startup의 일관성을 같이 다루는 SOI2/stabilized index-2 후보 [R2,R3] | 추가 보조 변수·수정 kinematic update가 필요하다. Force-derived psi를 표준 holonomic reaction 제약으로 대입하면 다른 모델이 될 수 있으므로 동등성 증명이 선행돼야 함 |
|
||||
| Constraint-consistent numerical startup | 초기 가속도 transient 감소 가능성 [R3, §4.1 Example8] | 유효한 문헌 방법은 속도의 O(h²) 수치 보정도 포함한다. Exact frame0 q/v/a 보존과 이력 일관성 검증 필요; A0-only 재시도는 근거 부족 |
|
||||
| Same-schedule 산술 개선 | Compensated/error-free sum·dot, 작은 증분의 차감 계산, 높은 정밀도의 residual 및 refinement로 noise 감소 [R5,R6] | C08a noise와 P 계산의 일부 문제에 유용할 수 있으나 DAE order reduction·C08b의 큰 physical 오차를 고치는 증거는 아님 |
|
||||
| Momentum/energy를 보존하거나 소산하는 새 적분법 | Nonlinear shell dynamics의 보존·안정성에 맞춘 별도 알고리즘 [R4,R7] | Algorithmic force/stress·관성 및 시간 update가 바뀌는 범위. 현 HHT 대체에 대한 사용자 결정·정식화·독립 검증 필요; 보존만으로 현재 fixed-grid 정확도 PASS를 보장하지 않음 |
|
||||
|
||||
국소 제거 후보는 DOF를 삭제하거나 drilling 질량을 추가하는 방식이 아니다. 원래 대수
|
||||
평형 psi=N(q)^T(f_int-F)=0을 풀어 full q를 복구한다. G=psi_q N의 가역성은 국소
|
||||
transversality 근거이지만 전 구간의 독립 좌표 chart를 제공하지는 않는다. 적절한 국소
|
||||
chart에서 대수 좌표가 독립 좌표·시간의 함수임을 확인해야 한다. 복구된 속도·가속도에는
|
||||
embedding의 미분·곡률과 explicit-time 항이 모두 필요하다. Current N/P를 매 frame 곱하고
|
||||
그 미분을 생략하는 projection은 이 방법과 다르다. 특히 C08a의 F(t)에 대한 시간미분을
|
||||
누락하면 올바른 oracle가 아니다. 이는 개념 후보이며 구현-ready 정식화가 아니다.
|
||||
|
||||
### C08b의 시간 해상도 판별
|
||||
|
||||
[이전 private elastic-scale 조사](newton-rotation-investigation.md)는 일부 state에서
|
||||
omega≈311.3/time을 관측했지만 current trajectory의 dynamic Jacobian spectrum·실제
|
||||
가진 amplitude를 확인한 결과가 아니다. [R4]의 stiff shell-like 사례는 선형 안정성과
|
||||
비선형 시간 정확도·보존의 구별을 뒷받침한다.
|
||||
|
||||
이번에 같은 HHT 계수(alpha=-.05,beta=.275625,gamma=.55)와 endpoint physical a를 쓰는
|
||||
**독립 scalar unit-amplitude oscillator**를 계산했다. Omega311.3, T=.25,
|
||||
q0=1/v0=0/a0=A0=-omega²이며 전체 endpoint 최대 q error를 측정했다.
|
||||
Scratch `.dryforge/hht-accuracy-research-20261012/oscillator-resolution.py`와 JSON의
|
||||
실제 실행 native0이며 FESA build/test 또는 실제 shell 검증은 아니다.
|
||||
독립 numerical-review-agent가 별도3×3 증폭행렬로8개 grid를 재계산했으며 저장된
|
||||
q/v/a 최대 오차와의 차이는 최대3.36e-15였다. 후보의 전제·채택 경계도 검토했고,
|
||||
P floor 확정 표현은 아래처럼 의심 단계로 수정했다. 이는 후보 연구의 검토 결과다.
|
||||
|
||||
| h | omega*h | 주기당 증분 수 | 최대 정규화 q error | 직전 grid 대비 관측 차수 |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| 1/512 | .6080 | 10.33 | 1.76413 | .04693 |
|
||||
| 1/1024 | .3040 | 20.67 | .645985 | 1.44939 |
|
||||
| 1/2048 | .1520 | 41.34 | .167876 | 1.94410 |
|
||||
| 1/4096 | .0760 | 82.67 | .0421431 | 1.99403 |
|
||||
| 1/8192 | .0380 | 165.34 | .0105458 | 1.99863 |
|
||||
|
||||
이 계산은 coarse grid에서 비단조 오차가 발생하고 더 작은 h에서2차 구간에 들어갈 수
|
||||
있음을 보여 준다. **C08b의 원인을 확정한 재현은 아니다.** 실제 모드 amplitude가 작을
|
||||
수 있고 회전·DAE 결합도 다르다. 2차 차수의 회복과 finest1e-4 달성도 별개다.
|
||||
Current C08b의 공통 시점에서 physical mass block의 spectrum/가진 amplitude와
|
||||
오차 history를 대응시키고, 별도 finer-grid·고정밀 oracle와 비교해야 한다. 공식5개
|
||||
grid는 그대로 판정한다. 해상도 부족이 확인되면 현 fixed-grid·HHT 요구와의 양립성을
|
||||
검토해야 하며 silent substep·alpha 변경·benchmark 초기조건 변경으로 해결하지 않는다.
|
||||
|
||||
### P 감소 실패의 조사·처리 방법
|
||||
|
||||
P의 두 finest 값은 roundoff floor가 의심되는 크기이며 strict decrease를 보장하는 수정은
|
||||
아직 없다. 실제 floor 판정은 아래 고정-state·고정밀 대조로 확인해야 한다.
|
||||
우선 같은 accepted q/v를 고정하고 다음 세 계산을 대조해 오차 위치를 구분한다.
|
||||
|
||||
1. 현재 quadrature/global P 합과 deterministic compensated/error-free sum·dot의 P 합.
|
||||
2. 동일 binary64 입력값의 arbitrary-precision 적분·차감 결과. 이 대조는 저장·평가
|
||||
오차만 구분하며 원 accepted history 자체의 roundoff를 복구하지 않는다.
|
||||
3. 현재 flat centered C08b의 독립 nodal 식과 시간 update에서 유도한 momentum 증분.
|
||||
이 fixture의 zero first moment를 일반 warped shell에 자동 적용하지 않는다.
|
||||
|
||||
평가 오차가 원인이면 같은 P의 정의·source 순서를 유지한 산술 개선을 검증한다.
|
||||
History 오차가 지배하면 합산만 바꿔 strict decrease가 회복된다고 보장할 수 없다.
|
||||
같은 물리/이산 식의 더 정확한 계산과, momentum projection으로 q/v/history를 바꾸는
|
||||
새 방법을 구분한다. Exact conservation 또는 새 energy-momentum method도 finite
|
||||
precision의 감소 조건을 자동 보장하지 않는다. Roundoff floor가 확인되면 absolute
|
||||
보존 기준과 시간 truncation의 감소 판정을 분리하는 **계약 검토 후보**를 제시할 수 있으나
|
||||
현재 strict 조건·허용값·FAIL은 유지한다. 결과 clamp나 P를 P0로 덮어쓰는 방법은 배제한다.
|
||||
|
||||
MSVC의 long double은 double과 같은 representation이므로 단순 타입 교체를 고정밀
|
||||
검증으로 부르지 않는다 [R6]. 고정밀 oracle 또는 double-double/error-free 연산은
|
||||
검증할 연산·입력·누적·반올림 경계를 명시해야 한다.
|
||||
|
||||
### 권장 검증 순서
|
||||
|
||||
2026-10-12 사용자 요청으로 수행한 후속 수학·private 실행 결과는
|
||||
[시간 정확도·운동량 후속 검증](temporal-remediation.md)에 기록한다. 아래는 조사 당시
|
||||
권장 순서이며 private 후보 실행과 production 채택을 구별한다.
|
||||
|
||||
1. 기존 Decimal80 cubic 반례로 후보의 exact frame0 보존·전체 시점 q/v/a 정확도와
|
||||
hidden0/1/2를 확인한다. 초기 구간과 후반 구간을 진단상 분리하되 전체 최대 기준은 유지한다.
|
||||
2. Explicit-time 및 실제 moving-null 소형 모델에서 축소 embedding/새 DAE update를
|
||||
검증한다. Partial BC·empty null·원 full residual·physical momentum/energy와의
|
||||
동등성을 확인하고 고정 null 모델의 성공을 shell로 확대하지 않는다.
|
||||
3. C08a의 null/physical error와 recurrence/solve/recovery noise를 구분하고 C08b의
|
||||
가진 모드·physical rate·time resolution을 대조한다. Finer oracle는 기존 grid의
|
||||
정확도를 평가하는 자료이지 기존 FAIL의 대체가 아니다.
|
||||
4. P의 고정-state 평가와 history drift를 분리한 뒤 원인에 맞는 수정 또는 계약 검토를 선택한다.
|
||||
5. 채택 후보만 구현-ready 정식화·독립 수치 검토·필요한 사용자 결정으로 넘긴다.
|
||||
실제 구현 뒤 기존 C08/N7·lifecycle·필수 원본·전체 MSVC 회귀와 물리 검토를 수행한다.
|
||||
|
||||
### 일차 출처와 적용 한계
|
||||
|
||||
Accessed2026-10-12. 위 문헌은 방법 선택 근거이며 FESA 실패 해결의 실행 evidence가 아니다.
|
||||
|
||||
| ID | 출처·locator | 열람 범위·한계 |
|
||||
| --- | --- | --- |
|
||||
| R1 | Arnold–Brüls(2007), [Convergence of the generalized-alpha scheme for constrained mechanical systems](https://orbi.uliege.be/bitstream/2268/27094/1/pa_ArnoldBruls2007_ConvergenceOfTheGeneralizedAlphaSchemeForConstrainedMechanicalSystems.pdf), §2.1·§3 | 현재 endpoint/auxiliary 방식과의 연결. 원 singular shell의 theorem 아님 |
|
||||
| R2 | Jay–Negrut, [A Second Order Extension of the Generalized-alpha Method for Constrained Systems in Mechanics](https://homepage.divms.uiowa.edu/~ljay/publications.dir/GenerAlphaDAEs.pdf), §4 Eq.9/Theorem1·§6 | Research-agent가 author PDF 열람. 메인의 fetch는 timeout. Position+velocity SOI2·bordered regularity 조건; force-derived shell psi에 대한 직접 적용 증명 없음 |
|
||||
| R3 | Arnold(2016), [DAE aspects of multibody system dynamics](https://www2.mathematik.uni-halle.de/reports/sources/2016/01-2016.pdf), §2.3·§4.1 Example8·§4.2 | PSD mass/index 분류·startup 보정·stabilized index-2. FESA index와 동등성은 별도 검토 |
|
||||
| R4 | Lavrenčič–Brank(2020), [Comparison of numerically dissipative schemes for structural dynamics](https://www.sciencedirect.com/science/article/pii/S0263823120309496), abstract·Introduction | Publisher의 공개 본문 열람, 직접 open은 오류. Stiff shell-like 모델의 비교; 원 FESA benchmark나 적용 증명 아님 |
|
||||
| R5 | Demmel–Hida(2002), [Accurate floating point summation](https://people.eecs.berkeley.edu/~demmel/AccurateSummation.pdf), §1–4; Ogita–Rump–Oishi(2004), [Accurate Sum and Dot Product with Applications](https://www.tuhh.de/ti3/paper/rump/OgRuOi04a.pdf) | Cancellation과 정확 합산·dot의 방법 근거. 입력 history의 오차 제거 또는 strict 감소 보장 아님 |
|
||||
| R6 | Microsoft, [IEEE Floating-Point Representation](https://learn.microsoft.com/en-us/cpp/build/ieee-floating-point-representation?view=msvc-170) | MSVC long double representation. 다른 compiler·arbitrary precision으로 일반화하지 않음 |
|
||||
| R7 | Simo–Tarnow–Wong(1992), [Exact energy-momentum conserving algorithms and symplectic schemes for nonlinear dynamics](https://www.sciencedirect.com/science/article/pii/004578259290115Z), abstract; Kuhl–Ramm(1999), [Generalized Energy–Momentum Method for non-linear adaptive shell dynamics](https://www.sciencedirect.com/science/article/pii/S0045782599000249), abstract·Introduction | Publisher 공개 설명 열람. 새 algorithmic force/stress의 범위 근거; current drill DAE·회전 chart·정확도 기준에 맞춘 정식화 없음 |
|
||||
|
||||
Reference in New Issue
Block a user