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,9 +1,15 @@
|
||||
# HHT 내부 수치 판정
|
||||
|
||||
[Numerical Review](numerical-review.md#numerical-review)의 구현용 계약이다. IEEE binary64를 기준으로 하며 [정식화](formulation.md), [관성 상세](formulation-inertia.md), [검증 사례](verification-cases.md)를 함께 적용한다. 사용자 결정 [HHT-ADR-007](ADR.md)에 따라 이번 HHT 구현은 **consistent kinetic mass**를 사용한다. 아래 lumped 대조는 기존 eigen/대안 evidence의 경계이며 새 HHT lumped 지원 요구가 아니다. 외부 reference는 [TOLERANCE](../TOLERANCE.md)만 따른다.
|
||||
[HHT-ADR-012](ADR.md)의 `nodal-lumped-kinetic`이 현재 필수 검증 대상이다. M, I, c, DqI, DvI, T, P, L 및 rates를 동일한 rho*N_i*dV0 measure로 계산한다. 기존 [수치 기준](numerical-controls.md), [검증 사례](verification-cases.md), [reference 계약](reference-model.md)과 모든 허용값을 유지한다. 과거 consistent 구현의 결과는 변경본 통과로 승계하지 않으며 현재 실행 상태는 [PRD](PRD.md)의 checklist와 각 검증 evidence를 따른다.
|
||||
|
||||
## N1. Scale와 공통 규칙
|
||||
|
||||
HHT-ADR-018의 고정 sparse reduced basis에는
|
||||
[상세 정식화](formulation-fixed-null-basis.md)의 FB-04a 횡단성 operator와
|
||||
FB-06 augmented row/unknown scale를 적용한다. 실제 scaled solve 후 물리 단위로
|
||||
역변환하여 아래 full residual·correction 및 N3–N7를 검사한다. 이전 raw augmented
|
||||
solve의 backward-error PASS는 새 scaled operator의 evidence로 승계하지 않는다.
|
||||
|
||||
`ell`은 활성 요소의 **초기** 최대 edge 길이이며 finite positive여야 한다. `D=diag_i(ell I3,I3)`, `x=D^-1 q`, `w=D^-1 v`, `b=D^-1 a`, `B=D^-1 A`, `r=D^T E`, `Khat=D^T K D`, `Mhat=D^T M D`를 사용한다. x는 무차원, w는 시간^-1, b/B는 시간^-2, r/Khat은 energy, Mhat은 mass·length²다. D는 분석 내 고정이다. Element 독립 비교에는 해당 element의 ell을 양쪽에 동일 적용한다.
|
||||
|
||||
별도 표시 없는 vector norm은 infinity norm, matrix norm은 infinity norm이다. Frobenius/2-norm은 식에 표시한다. Euclidean/Frobenius norm에는 scaled sum-of-squares, 조립에는 stable source 순서의 reduction을 사용한다. 원 force와 moment, 원 translation과 rotation을 직접 합하지 않는다. N2의 u/phi 채널도 분리한다.
|
||||
@@ -29,7 +35,9 @@
|
||||
|
||||
모든 적용 가능한 gate의 **AND**다. a와 A의 서로 다른 chain-rule 계수를 반영한다. h-based rate gate는 증가량의 운동학 일관성을 검사하며 physical acceleration의 시간 정확도를 인증하지 않는다. 해당 정확도는 N7의 독립 검증으로 확인한다.
|
||||
|
||||
Newton 초기 추정은 직전 accepted geometry `q_trial=q_n`으로 둔다([HHT-ADR-010](ADR.md)). `q_p`, `v_p` 및 물리 a/보조 A의 관계는 정식화 그대로 유지한다. 이는 Newton 시작값이며 시간 scheme 변경이 아니다. 모든 trial에서 고정 q/v/a/A 성분은 exact 0이다. Residual이 이미 통과하는 초기 추정은 correction=0으로 명시하여 동일 gate를 평가한다. 그 외에는 `Keff`를 매회 새로 조립하고 correction을 수정 없이 적용한 후 residual을 다시 검사한다. Initial guess가 chart/geometry 밖이면 실패이며 clamp·line search·cutback으로 바꾸지 않는다.
|
||||
Newton 초기 추정은 [HHT-ADR-013](ADR.md)의 두 시작점 정책을 따른다. 동일한 frozen `q_p`, `v_p`, old physical a에서 q_p와 q_n의 rates·원래 endpoint E/Keff를 평가한다. 둘 다 유효하면 공통 D의 자유 `||D^T E||inf`가 작은 전역 좌표 벡터를 선택하며 exact tie는 q_p다. Exact q_p=q_n은 한 번만 평가한다. Constrained 반력은 이 비교에서 제외한다. 최초 q_p의 genuine geometry/director/principal-chart 부적합만 q_n 선택을 허용한다. 실제 첫 실패 절점의 valid-chart rate overflow, 질량·recovery·접선·기타 산술 실패, q_n 평가 실패 또는 scaled 비교 norm overflow는 즉시 실패다. 이는 초기값 선택이며 별도 수용 tolerance가 아니다. 선택된 assembly를 iteration0에서 그대로 사용한다.
|
||||
|
||||
`q_p`, `v_p` 및 물리 a/보조 A의 관계는 정식화 그대로 유지한다. q_n 선택에도 predictor를 덮어쓰지 않는다. 모든 trial에서 고정 q/v/a/A 성분은 exact 0이다. Residual이 이미 통과하는 초기 추정은 correction=0으로 명시하여 동일 gate를 평가한다. 그 외에는 `Keff`를 매회 새로 조립하고 correction을 수정 없이 적용한 후 residual을 다시 검사한다. 후속 Newton correction이 chart/geometry 밖이면 즉시 실패한다. 최초 시작점 선택을 correction의 retry·clamp·line search·cutback으로 확대하지 않는다.
|
||||
|
||||
최대 **100개의 Newton correction**을 허용한다. 100번째 correction 뒤의 candidate가 모든 gate를 만족하면 통과, 아니면 실패하며 101번째 solve는 없다. 기존 정적 100회/no-cutback 제한을 동일 실패 상한으로 채택한 것이고, 동적 문제가 100회 안에 수렴한다는 보장은 아니다. Backend success나 작은 correction 하나만으로 성공하지 않는다. Singular/invalid/nonfinite/linear backward-error failure는 즉시 실패다.
|
||||
|
||||
@@ -37,6 +45,15 @@ Newton 초기 추정은 직전 accepted geometry `q_trial=q_n`으로 둔다([HHT
|
||||
|
||||
HHT 기본 `alpha=-.05,beta=.275625,gamma=.55`, `A0=a0`, `A1=(1+alpha)a1-alpha*a0`. `q,v`는 A로 적분하고 endpoint I에는 a를 넣는다. 각 update 식의 결함을 **동일 차원의 우변 항 절댓값 합**으로 나누어 `<=1e-12`를 요구한다. 큰 q 두 값을 빼서 잃은 작은 increment를 숨기지 않도록 `q1-qn`과 저장된 predictor/correction의 일치도 함께 검사한다. Fixed boundary의 exact zero는 이 ratio보다 우선한다.
|
||||
|
||||
[HHT-ADR-016](ADR.md)의 reduced private p 경로에서는 whole/requested 두 증분의
|
||||
좌변을 실제 `(p_high+p_low)-old_accepted_high`의 EFT expansion으로 검사한다.
|
||||
독립 요청 trace와 원 HHT 우변 각각의 원래 uncancelled scale 및 `1e-12`는 유지한다.
|
||||
실제 저장 high가 pair의 round-to-nearest/ties-to-even 결과인지 별도로 검사하고
|
||||
high-only 증분 오차·표현 거리를 raw 진단으로 보존한다. 이전 accepted low를
|
||||
history에 숨겨 더하지 않으며, scale0 exact-zero·finite-first·fixed exact-zero를
|
||||
유지한다. ULP floor·허용량 추가·좌표 clamp는 없다. 다른 absolute update·full
|
||||
physical residual·CA/N7 및 schema/reference 계약은 바꾸지 않는다.
|
||||
|
||||
Scaled analytic null basis Z는 `Mhat_ff Z=0`, `Z^TZ=I`이며 ψ=`Z^T(D^Tg)_f`다. Physical inertia의 null action도 N4로 검사한다. 초기 ψ는 `|| |Z|^T (D^T s)_f ||`로, 초기 velocity/acceleration hidden residual은 각각 `|| |ψ_x| |w|+|ψ_t| ||`, `|| |ψ_x| |b|+|ψ_xx|[|w|,|w|]+2|ψ_xt| |w|+|ψ_tt| ||`로 나누어 `<=1e-10`을 요구한다. Matrix/tensor contraction 내부 상쇄도 분모에서 제거한다. 초기 acceleration solve는 physical range equation과 null consistency equation 둘 다 통과해야 한다. 비영 ψ에 대해 초기 q/v를 몰래 보정하지 않는다.
|
||||
|
||||
초기 q0=v0=0, STEP의 `0+` force 전값과 우측 Fdot=Fddot=0을 사용한다. `M a_P=F-f_int-c`, `Z^T D^-1 a_P=0` 후 `a0=a_P+D Z eta`의 η를 differentiated ψ 식으로 결정한다. Null acceleration을 0으로 고정하거나 pseudoinverse 결과만 채택하지 않는다. c0=0은 v0=0에서 유도되는 값이지 일반 초기조건 생략 규칙이 아니다.
|
||||
@@ -45,14 +62,16 @@ Accepted endpoint의 ψ도 `<=1e-10`으로 검사하되 denominator는 `|| |Z|^T
|
||||
|
||||
## N4. 질량·null·대수 regularity
|
||||
|
||||
HHT-ADR-017의 제한 Newton 정책은 아래 질량·regularity 검사를 대체하지 않는다.
|
||||
|
||||
Analytic expected null은 각 node의 `[0;Jl^-1 d]`와 **실제 free component 공간의 교집합**이다. Constrained 성분 중 하나라도 정확히 비영인 null vector는 그 node의 admissible null이 아니다. Tiny nonzero를 0으로 취급하지 않는다. Rank-changing partial BC 구성은 regular branch를 벗어나므로 실패한다. 처음 예상한 rank를 numerical eigenvalue cutoff로 다시 정의하지 않는다. 지정 reference의 625 free nodes는 expected positive dimension 3125/null 625이며 실측 rank가 아니다. Z의 nodal 방향은 위 analytic 식을 positive norm으로 정규화하여 연속적으로 정의한다. Trial마다 eigen/SVD basis나 최대성분 부호 규칙을 새로 선택하여 ψ 미분에 불연속을 넣지 않는다.
|
||||
|
||||
| 대상 | 판정·수치 |
|
||||
| --- | --- |
|
||||
| `Mhat` symmetry, analytic null action | `||Mhat-Mhat^T||F/||Mhat||F <=1e-12`; `||Mhat Z||F/(||Mhat||F ||Z||F)<=1e-12`. Empty Z는 N/A |
|
||||
| Basis·complement | `||Z^TZ-I||F/sqrt(nz)<=1e-12`, `||P^TZ||F<=1e-12`, `[P Z]` Gram도 `1e-12`; deterministic basis sign/source ordering |
|
||||
| Positive mass | Consistent element physical20와 lumped node physical5의 projected scaled block에 Cholesky strict-positive pivot; assembled free physical mass factor도 SPD. Small positive pivot을 없애지 않음 |
|
||||
| Local conditioning | 각 nonempty element/node positive block의 `rcond_inf=1/(||B||inf ||B^-1||inf) >=2^-32` (약 `2.3283064e-10`). Small-block triangular solves로 계산하고 global dense inverse는 만들지 않음 |
|
||||
| Positive mass | 채택된 lumped 질량에도 기존 element 전체 physical20 projected scaled block의 Cholesky strict-positive pivot 검사를 유지한다. Assembled free physical mass factor도 SPD이며 small positive pivot을 없애지 않음 |
|
||||
| Local conditioning | 기존 element 전체 physical20 block의 `rcond_inf=1/(||B||inf ||B^-1||inf) >=2^-32` (약 `2.3283064e-10`)를 유지한다. Node별 physical5만 검사하는 비교 후보보다 엄격하며 nodal mass disparity도 포함한다. Small-block triangular solves로 계산하고 global dense inverse는 만들지 않음 |
|
||||
| Lumped scalar positivity | finite `m>0,j>0`, `j-(s/m)*s>0`; `m*j-s*s`의 overflow/underflow에 판정을 맡기지 않음. Independent centered thickness integral과 `1e-12` 대조 |
|
||||
| Mass/inertia identities | Scalar Ck entry error / `[m_e(t/2)^k]`, 총질량·uniform translation energy·직접 volume kinetic energy·Cholesky reconstruction: 각각 `1e-12`. Nonlinear physical inertia null action과 kinetic power identity는 `1e-10` |
|
||||
|
||||
@@ -93,6 +112,51 @@ Temporal 검증에서만 다음 **read-only defect solve**를 추가한다. 마
|
||||
|
||||
시간오차는 각 grid의 전체 시점에서 위 estimate/산술 지표의 최댓값보다 **100배 커야** order evidence로 사용한다. 미달이면 roundoff/iteration dominated로 **inconclusive**, 통과가 아니다. 정해진 coarse grids 또는 고정밀 독립 oracle로 다시 검토하며 실패한 판정값을 완화하지 않는다. 실제 shell self-convergence에는 C08의 별도 기준을 적용한다. 일반 production analysis/reference 비교에 이 두 추가 solve를 매 frame 수행하라는 요구는 아니다.
|
||||
|
||||
### 승인된 reduced-coordinate 경로의 N2/N7 변환
|
||||
|
||||
[HHT-ADR-014](ADR.md)와 [희소 augmented 정식화](formulation-reduced-coordinate.md)의
|
||||
경로에서는 full-coordinate `eta_x`에 고정 Newmark 계수를 곱하는 위 전파식을
|
||||
그대로 적용하지 않는다. 실제 correction 및 두 read-only defect solve의 네
|
||||
block `(delta p, delta z, delta vz, delta az)`를 모두 보존한다.
|
||||
각 solve별 full physical variation은
|
||||
`delta q=L_p delta p+L_z delta z`,
|
||||
`delta v=L_p gamma/(beta h) delta p+L_z delta vz`,
|
||||
`delta a=L_p/[ (1+alpha)beta h^2 ] delta p+L_z delta az`이며,
|
||||
public `delta A=(1+alpha)delta a`다. 이전 accepted physical a는 고정이다.
|
||||
각 측정량의 채널/node norm은 이 full variation을 N1 및 case amplitude로
|
||||
정규화한 뒤 마지막 correction·linear defect·accepted nonlinear defect의
|
||||
norm을 합한다. Private `delta Ar=delta p/(beta h^2)`도 N2에서 별도로 검사한다.
|
||||
|
||||
Accepted endpoint defect solve는 실제 graph의 hidden 0/1/2 residual을 포함하거나,
|
||||
별도로 계산한 embedding uncertainty를 해당 물리량의 bound에 합해야 한다.
|
||||
Auxiliary defect를 버리고 `J delta p`만 사용하는 것은 허용하지 않는다.
|
||||
|
||||
[HHT-ADR-017](ADR.md)의 restricted-last에는 N2-L 검사 영역이 실제
|
||||
scaled `K[J,J]`인 경우가 추가된다. 원 backward-error threshold는 `1e-12`다.
|
||||
원 full endpoint N2·hidden·N3/N4는 계속 요구한다. Trigger/thaw·copy·100회
|
||||
경계는 [승인 명세](c09-channel-newton-proposal.md)를 따른다.
|
||||
|
||||
이 경우 N7은 같은 last trial의 full K/RHS를 보존하여 다음 네 항을 사용한다:
|
||||
actual last correction, 실제 restricted linear defect 해(zL, zero-U embed),
|
||||
**제외 U 행도 포함한** full-model last linear defect 해(zM), fresh accepted
|
||||
full residual/hidden defect 해(zN). 각 vector를 원 physical q/v/a/private Ar/public A
|
||||
map으로 변환하고 norm을 각각 구한 뒤 합산한다. Restricted/full/fresh defect
|
||||
solve 모두 실제 operator의 N2-L·finite 검사를 요구한다. Full-last는 기존 세
|
||||
항을 유지한다. Full-model defect solve 실패를 restricted 성공으로 대체하지
|
||||
않으며 estimator의 보수성 때문에 factor100 미달이면 INCONCLUSIVE다.
|
||||
[독립 검토의 상세 식](numerical-review-channel-newton.md)을 따른다.
|
||||
Copied translation의 inherited CA radius는 계속 graph/rate map에 포함하며
|
||||
fixed-path CA는 mode-branch 민감도의 인증이 아니다. Defect 해는 read-only이고
|
||||
production state에 적용하지 않는다.
|
||||
Position subtraction에 의존하지 않는 carried-Ar 산술 해상도는
|
||||
[CA-01–06](formulation-carried-a-noise.md)의 이력 및 업데이트 연산 bound를
|
||||
사용하고 physical-rate reconstruction의 산술 오차도 별도로 보존한다.
|
||||
기존 position-cancellation 지표를 새 경로의 인증 bound로 승계하지 않는다.
|
||||
구체적인 독립 검산·구현 검토 범위는
|
||||
[reduced 수치 검토](numerical-review-reduced-coordinate.md)에 기록한다.
|
||||
위 변환은 **100배 separation**, 기존 N2/N7 허용값과
|
||||
FAIL/INCONCLUSIVE 판정을 변경하지 않는다.
|
||||
|
||||
동일 binary/runtime/thread/input 세 실행의 source/frame/diagnostic order와 sparse structure는 exact 일치, scaled scalar state 차이는 `1e-12` 이하를 요구한다. Failed trial은 committed q/v/a/A·history·frame count·기존 최종 HDF5를 바꾸지 않아야 한다. Reference fixed DIRECT는 100 increments이며 원 n*h schedule과 identity를 검사한다.
|
||||
|
||||
수치값의 근거: `u=2^-53`, `gamma4096≈4.55e-13`에 대해 작은 dense/27점 항등식 `1e-12`, 그보다 100배 큰 assembled residual `1e-10`을 사용한다. `rcond>=2^-32`는 `gamma64/rcond≈3.06e-5`의 local worst-case 규모를 제한하며 보편 forward accuracy 보장이 아니다. FD `1e-6`/zero `1e-10`, objectivity `1e-10`, balance `1e-8`은 기존 [비선형 검토](../nonlinear-static-newton-raphson/numerical-review.md) 및 [eigen2 controls](../mitc4-shell-feast-eigen2/numerical-review-controls.md)의 해당 식을 현재 관성/좌표에 대조해 채택했다. 기존 정적 Newton 외력 상대 1%·typed absolute `1e-3`, FEAST controls, eigen 외부 RMS 예외는 채택하지 않았다. 새로운 runtime/solver 사례의 실행 상태는 아직 **NOT RUN**이며 숫자를 실행 통과처럼 보고하지 않는다.
|
||||
수치값의 근거: `u=2^-53`, `gamma4096≈4.55e-13`에 대해 작은 dense/27점 항등식 `1e-12`, 그보다 100배 큰 assembled residual `1e-10`을 사용한다. `rcond>=2^-32`는 `gamma64/rcond≈3.06e-5`의 local worst-case 규모를 제한하며 보편 forward accuracy 보장이 아니다. FD `1e-6`/zero `1e-10`, objectivity `1e-10`, balance `1e-8`은 기존 [비선형 검토](../nonlinear-static-newton-raphson/numerical-review.md) 및 [eigen2 controls](../mitc4-shell-feast-eigen2/numerical-review-controls.md)의 해당 식을 현재 관성/좌표에 대조해 채택했다. 기존 정적 Newton 외력 상대 1%·typed absolute `1e-3`, FEAST controls, eigen 외부 RMS 예외는 채택하지 않았다. 문서 gate 당시 새로운 runtime/solver 사례는 **NOT RUN**이었다. 현재 실행 결과는 [PRD](PRD.md)와 연결된 evidence를 따르며, 기준 숫자 자체를 실행 통과처럼 보고하지 않는다.
|
||||
|
||||
Reference in New Issue
Block a user