21 KiB
Shell 축소 좌표 HHT 정식화
상태: implementation-ready; independent-review-and-shell-verification-pending, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. 기존 정식화, 현재 관성, 실험·실패 보고를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 별도 N7 상세가 소유한다.
1. 물리와 좌표
2026-10-13 HHT-ADR-018 이후 all-free rotational null 절점의 component selector와 이에 의존하는 projection/lift는 고정 null 기저 상세의 FB-02–07로 대체한다. 부분구속의 기존 component chart는 유지한다. 아래 continuous physics와 graph/rate 계약은 유지하되, identity-coordinate 전용 설명을 새 plane basis에 그대로 적용하지 않는다. 실제 augmented scaling·초기화·CA/N7의 새 basis 경계는 해당 상세 문서를 따른다.
기존 Total Lagrangian MITC4, objective numerical drilling potential, isotropic linear elasticity, nodal lumped kinetic measure, 공간 적분과 fixed-initial global chart를 유지한다. 좌표는 node-major q=(u_x,u_y,u_z,phi_X,phi_Y,phi_Z), v=dot q, a=ddot q; 병진 단위는 length, 회전은 rad다. 질량 추가, damping, stiffness modification, stress averaging은 없다. 공개 load subset은 기존 constant global force, 구속은 fixed zero다. 아래 smooth F(t)의 시간미분은 C08a 내부 manufactured oracle에만 해당한다.
Zero constrained 성분을 정확히 제거한 free 공간에서
[ E(q,v,a,t)=I(q,v,a)+g(q,t),\quad I=M(q)a+c(q,v),\quad g=f_{int}(q)-F(t). \tag{RC-01} ]
실제 admissible nodal mass-null은 n_i=normalize(J_l(phi_i)^{-1} d_i), d_i=Exp(phi_i)d0_i이다. N은 이 방향의 free-space lift이며 MN=0, N^TI=0이다. 원 대수조건은
[ \psi_i=N_i^Tg=\sum_{e\ni i} k_e S_i\gamma_{ei}-n_i^TF_{\phi,i}(t),\quad S_i=1/|J_l^{-1}d_i|. \tag{RC-02} ]
이는 기존 drilling_constraint의 scalar이며 raw twist gamma가 아니다. Physical force의 null work가 0인 정확 identity를 사용하므로 energy의 4차 tensor는 필요 없다. Translation force의 null work는 0이다. Shared node external term은 한번만 추가한다.
2. Fixed graph와 부분 구속
초기 frame에서 admissible null node마다 free rotation component 중 |n_i[c]| 최대 성분을 z pivot으로 선택한다. 동률은 X,Y,Z 순서이며 node는 기존 canonical/source order다. 나머지 free components가 p다. 고정 selector L_p,L_z로 q_f=L_p p+L_z z를 정의하고 global coupled psi(q,t)=0를 풀어 z=z(p,t), q=Q(p,t)를 만든다. 각 node의 독립 scalar solve로 대신하지 않는다. G=psi_q L_z는 nonsymmetric일 수 있다.
부분 회전 BC의 null 개수는 span(n_i) ∩ {w:C_i w=0}에서 정한다. Constrained component에 n_i가 하나라도 nonzero이면 그 node의 admissible null은 0이며 해당 node의 모든 free components를 p에 남긴다. 모든 constrained null components가 정확히 0이면 null 1개다. 기존 NullNodes의 exact component convention을 사용하되 noise threshold로 rank를 바꾸지 않는다. 작은 constrained 성분을 0으로 clamp하거나 null을 잘라 정규화하지 않는다.
고정 graph 전체에서 initial admissible-node list가 같아야 한다. 매 trial의 실제 null 교집합을 다시 대조한다. Partial BC가 처음에는 null을 허용하나 finite rotation에서 가르면 rank가 변하므로 실패다. 그 모델은 본 fixed-rank local method의 지원 밖이며 silent full/reduced switching을 하지 않는다. Pivot은 최초 선택 후 변경하지 않는다. 기존 principal-chart, geometry, swing/twist validity와 동일한 branch를 유지한다. 실패 chart의 history transport·자동 rechart는 이번 최소 구현에서 지원하지 않는다.
다음은 서로 다른 필수 검사다: G solve regularity, psi_q N transversality, full column-rank J, M_r=J^TMJ positivity 및 기존 condition checks. G의 invertibility만으로 이 모두를 대체하지 않는다. [J,N]이 free space를 span하면 psi=0와 J^TE=0는 원 E_f=0와 동등하다. 기존 N1–N6 scale/condition policies를 사용하고 새 tolerance/floor/pseudoinverse/diagonal shift를 정하지 않는다.
Empty null에서는 Q(p)=L_p p, J=L_p, Q_t=Q''=Q'''=0이며 원 full-coordinate HHT로 환원한다. All-fixed에서는 p,z,free solve가 모두 비며 full reaction만 복구한다. All-free 및 all-rotation-fixed node 조합은 고정 rank를 직접 만족한다. 일반 partial node는 위 교집합/rank 검사 아래에서만 지원하며, 모든 partial BC의 성공을 보장하지 않는다.
3. 축소 적분과 물리 rate
초기 p0=L_p^T q0; graph의 identity coordinates 때문에 vp0=L_p^T v0, ap0=L_p^T a0다. 동일 Q branch와 chain-rule rates가 기존 full frame0를 복원해야 한다. 기존 정확 q0/v0/a0를 silent projection하거나 첫 frame를 제외하지 않는다. Ar0=ap0이다.
초기 null correction과 hidden evidence의 psi_q도 RC-02의 direct scalar primitive와
동일한 미분을 사용한다. Analytically objective physical energy의 n^T H는 이 제약에
기여하지 않지만, 별도로 계산한 physical Hessian을 투영하면 반올림 잡음이 제약 계수로
남을 수 있다. 이를 원래 full a0에 가짜 null acceleration을 추가하는 근거로 사용하지
않는다. Primitive의 source-ordered assembly와 안정적인 contraction으로 같은 수식을
계산하고, physical mass range solve 및 original/reconstructed frame0의 full residual
판정은 유지한다. 이 산술 정정의 원인·실행 범위는
후속 검증 기록을 따른다.
[ Ar_{n+1}=(1+\alpha)ap_{n+1}-\alpha ap_n,\quad p_p=p_n+h vp_n+h^2(1/2-\beta)Ar_n,\quad vp_p=vp_n+h(1-\gamma)Ar_n, \tag{RC-03} ] [ Ar=(p-p_p)/(\beta h^2),\quad vp=vp_p+\gamma h Ar,\quad ap=(Ar+\alpha ap_n)/(1+\alpha). \tag{RC-04} ]
동등한 carried-Ar Newton 산술은 Ar를 직접 갱신할 수 있으나 실제 update operator와 N7 estimator가 대응해야 한다. Public full A는 Ar나 J Ar가 아니다.
[ q=Q(p,t),\quad v=J vp+Q_t,\quad a=J ap+Q_{pp}[vp,vp]+2Q_{pt}vp+Q_{tt},\quad J=Q_p, \tag{RC-05} ] [ A_{full,n+1}=(1+\alpha)a_{n+1}-\alpha a_n,\quad A_{full,0}=a_0. \tag{RC-06} ]
Afull은 full chart의 진단용 filter combination이며, reduced history p,vp,ap,Ar로 다음 predictor를 계산한다. Full physical v/a, spatial omega/omega_dot, 원 E와 반력은 기존 의미를 유지한다. 하나의 accepted full state에서 물리량을 복구하며 Ar를 physical acceleration으로 사용하지 않는다. 적분 이력과 물리 state를 함께 원자적으로 commit한다.
Newton 시작점은 같은 frozen pp,vpp,ap_old에서 p=pp와 p=pn을 각각 새 endpoint 시간의 Q(p,t)로 올린 두 trial이다. 시간 의존 psi에서 과거 full qn를 새 graph state로 그대로 사용하지 않는다. 두 trial의 실제 full chain-rule rates와 원 free ||D^T E||inf를 대조하여 작은 쪽을 선택하고 exact tie는 predictor다. 같은 p이면 한번만 평가하며, 선택한 assembly를 그대로 첫 iteration에 사용한다. 기존 genuine geometry/chart fallback 범위를 유지하되 algebraic-rank, solve, arithmetic failure를 geometry 실패로 숨기지 않는다.
4. Tensor 없는 implicit embedding 미분
시간을 포함해 Psi(q,t)=psi(q,t), Qtilde=(Q,t)로 쓴다. Full extended Hessian을 H, third trilinear operator를 T라 한다. p/t direction b에 대해 U_b=DQtilde[b]이며
[ G z_p=-\psi_q L_p,\qquad G z_t=-\psi_t,\qquad G z''[b,c]=-H[U_b,U_c]. \tag{RC-07} ]
z의 first derivatives로 J와 Qt를 만든다. Second derivatives의 full vector는 z block에만 nonzero이며 time component는 0이다. 전체 second/third tensor를 저장할 필요 없다. 현재 endpoint에서
[ w=(vp,1),\quad W=(v,1)=DQtilde[w],\quad B=D^2Qtilde[w,w],\quad a=J ap+B_q. \tag{RC-08} ]
열 j마다 U_j=(J e_j,0), X_j=D²Qtilde[(e_j,0),w], Y_j=D²Qtilde[(e_j,0),(ap,0)]를 동일 G로 푼다. B_q,X_{j,q},Y_{j,q}는 RC-07의 Hessian RHS다. 필요한 third만
[ G C_{j,z}=-{T[U_j,W,W]+2H[X_j,W]+H[B,U_j]}, \quad C_j=D^3Qtilde[(e_j,0),w,w]. \tag{RC-09} ]
같은 G factorization을 모든 RHS에 재사용할 수 있다. 이는 매 endpoint의 graph derivative factorization이며 Newton tangent의 stale factor reuse를 뜻하지 않는다. Finite RHS/solve residual을 검사하고 direct inverse를 만들지 않는다.
5. Exact reduced Newton
Residual은 R=J^T E_f. cv=gamma/(beta h), ca=1/[(1+alpha)beta h²]라 하면
[ \delta q_j=J_j,\qquad \delta v_j=X_{j,q}+cv J_j,\qquad \delta a_j=Y_{j,q}+ca J_j+C_{j,q}+2cv X_{j,q}. \tag{RC-10} ] [ K_{r,ij}=Q_{pp}[e_i,e_j]^T E_f+ J_i^T{(I_q+K_{int})\delta q_j+I_v\delta v_j+M\delta a_j}. \tag{RC-11} ]
Qpp는 RC-07로 구하며 평형 밖에서 E와의 contraction을 생략할 수 없다. 전체 Qpp vectors 없이 G^T lambda=L_z^T E를 한번 풀면 첫 항은 -lambda^T H[U_i,U_j]다. 같은 transpose solve를 재사용하며 미분을 근사하지 않는다. Kr Δp=-R, 또는 s=beta h²인 동등식 s Kr ΔAr=-R를 nonsymmetric solver로 푼다. 기존 full-coordinate Keff에는 Q 곡률과 (delta J)^T E가 없으므로 Kr로 사용할 수 없다.
Reduced 수렴에는 원 free E, psi와 다음 hidden derivatives도 검사한다.
[ r_1=\psi_qv+\psi_t,\quad r_2=\psi_q a+\psi_{qq}[v,v]+2\psi_{qt}v+\psi_{tt}. \tag{RC-12} ]
작은 R만으로 ill-conditioned embedding이나 원 평형을 인증하지 않는다. 기존 full-space force/moment scales, physical recovery와 linear solve checks를 유지한다. 수정한 trial 좌표와 복구한 rate derivatives는 같은 assembly에 속해야 한다. Branch root와 outer Newton의 iteration 한도·진단은 구현·수치 검토 책임이며 본 정식화에서 새 acceptance 값을 만들지 않는다.
5.1 구현의 동등한 희소 augmented Newton
실제 구현은 전역 J, Qpp를 저장하는 대신 selector residual
E_p=L_p^T E와 graph의 접선 방정식을 함께 푼다. psi=N^T E=0이고
선택한 pivot의 N_z가 가역이면 E_p=0은 원 전체 평형 및 J^T E=0과
같은 root를 갖는다. 이는 다른 residual의 exact Newton이다. 평형 밖의
Newton step까지 RC-11과 동일하다고 주장하거나, RC-11에서 delta J^T E를
생략하는 근사로 해석하지 않는다.
Unknown은 (delta p, delta z, delta vz, delta az)이며
delta q=L_p delta p+L_z delta z,
delta v=L_p cv delta p+L_z delta vz,
delta a=L_p ca delta p+L_z delta az이다. Physical row는
L_p^T[(I_q+Kint)delta q+I_v delta v+M delta a]=-E_p다.
같은 trial의 W=(v,1)에 대해 나머지 세 row는 다음과 같다.
[ \psi_q\delta q=0,\qquad \psi_q\delta v+(\psi_{qq}v+\psi_{qt})\delta q=0, ] [ \psi_q\delta a+(\psi_{qq}a+D^3\Psi[\cdot,W,W])\delta q +2(\psi_{qq}v+\psi_{qt})\delta v=0. ]
각 trial은 position graph root, implicit physical-rate 복구, 실제 full
assembly와 operator 재평가 순으로 구성한다. 위 auxiliary correction은
linear solve의 full physical variation과 noise 평가에 모두 보존하되,
독립적인 이력으로 commit하지 않는다. 다음 trial은 갱신한 p와 private
Ar에서 다시 root와 rates를 복구한다. 원 full E, hidden 0/1/2,
chart/rank regularity 및 기존 물리·선형 solve 검사를 그대로 수행한다.
Hidden 1/2의 초기화 판정과 accepted endpoint의 진단·시간수렴 책임은
기존 N3를 따른다. Endpoint의 hidden 1/2에 새로운 무조건적인 N2 종료
허용값을 추가하지 않는다.
N2는 실제 delta q, h delta v, h^2 delta a, h^2 delta A의 승인된
scaled norm과 private delta Ar를 검사한다. Public
delta A=(1+alpha)delta a에서 이전 accepted physical acceleration은
고정된다. N7에서도 augmented defect의 모든 auxiliary block을 위 식으로
변환해야 한다. delta p만 남기거나 hidden defect를 무시하면 해당 noise
판정은 유효하지 않다. 독립 소형 Schur 검산과 실제 shell 검증의 범위는
수치 검토에 구분하여 기록한다.
5.2 Newton 좌표 증분과 carried Ar의 산술 표현
Private physical candidate p와 Ar는 실제 augmented correction에서 함께 갱신한다.
p <- p + delta_p, Ar <- Ar + delta_p/(beta*h^2)이며, vp/ap는 기존 Ar
recurrence로 구한 뒤 full physical rates를 재구성한다. 처음 선택한 p/Ar 시작값과
정확한 초기화, 원래 full residual·hidden·correction·update 기준은 유지한다.
Exact arithmetic에서는 p=pp+beta*h^2*Ar가 귀납적으로 유지된다. Binary64에서
매 반복 p를 큰 pp와 반대 부호의 큰 Ar 항으로 다시 만드는 것은 작은 실제 Newton
증분을 잃을 수 있다. 실제 large DIRECT probe에서 pp=-11218.75이고 Ar≈651228인
상태의 요청 delta_p=-2.216e-12가 재구성 좌표에서는 -3.638e-12로 반영됐다.
직접 p 증분 누적은 같은 수학 recurrence의 산술 표현 변경이며, p와 Ar를 별도 독립
물리 unknown으로 늘리거나 실패 residual을 보정하는 방법이 아니다.
Accepted absolute update와 원 N3의 q increment trace에 기존 uncancelled-scale
1e-12를 적용하며 불일치는 fail closed한다. 추가 vnew-vold subtraction은
원 N3 요구가 아니므로 diagnostic으로 구분한다. Ar와 vp/ap의 별도 산술 이력 및
graph-rate indicator를 계속 보존한다.
2026-10-13 후속 산술 수정은 Newton candidate의 p 덧셈에서 잃은 low를 유지한다.
(s,e)=TwoSum(p_high,delta_p), t=p_low+e,
(p_high_new,p_low_new)=TwoSum(s,t)로 갱신하며 실제 geometry에는 high를 사용한다.
원 predictor high 및 시작점 선택은 유지하고 predictor의 두 덧셈 low도 별도로
carry한다. Old-p 시작은 해당 binary64 값에서 low0으로 시작한다. Requested trace는
독립적인 보상 합계이며 candidate를 이 trace로 덮어쓰지 않는다.
Finite binary64·gradual underflow에서 pair radius는
Bpair_new=Bpair_old+rho(t), 실제 high radius는 Bpair_new+abs(p_low_new)다.
Predictor의 inherited bound와 초기 low를 포함하고 accepted high의 uncertainty를
다음 step으로 넘긴다. 기존 pp+Ar 또는 plain p addition bound를 이 새 경로의
완전한 evidence로 승계하거나 radius를 reset/clamp하지 않는다. 이는 같은 수학
recurrence의 산술 표현이며 stored high가 원 N3를 만족하지 못하면 여전히 실패다.
독립 exact replay와 적용 한계는 수치 검토를 따른다.
위 high-only 실패 정책은 승인 이전 evidence다. HHT-ADR-016에 따라
reduced whole/requested 두 증분은 실제 candidate pair의 increment
(p_high+p_low)-old_accepted_high를 EFT expansion으로 비교하고, 저장 high의
RN-even 일치를 별도로 검사한다. 원래 각 scale와 1e-12, zero-scale exact-zero,
독립 requested trace와 CA radius는 유지한다. Raw high-only 실패값을 보존하며
승인 이전 FAIL을 변경본 PASS로 승계하지 않는다. 상세 범위와 표현 경계 검증은
승인된 제안을 따른다.
6. 필요한 local operator와 시간 항
기존 scalar Jet의 first, second, mixed_second[j]는 gradient, Hessian과 D³ scalar[e_j,v,v]다. Internal psi(4 nodal scalars, 24 coordinate directions)와 external nodal scalar -n(phi,d0)·Fphi(3 rotation directions)에 이 값을 제공한다. AD/Jet/vendor type은 private로 유지한다. 시간 좌표를 포함한 Psi의 derivative contraction은
[ H[(u,\tau),(w,\sigma)] =\psi_{qq}[u,w]+\tau\psi_{qt}[w]+\sigma\psi_{qt}[u]+\tau\sigma\psi_{tt}, \tag{RC-13} ] [ \psi_t=-n^TF',\quad \psi_{qt}[u]=-Dn[u]^TF',\quad \psi_{tt}=-n^TF'', \tag{RC-14} ] [ T[(u,0),(v,1),(v,1)] =D^3\psi_{int}[u,v,v]-D^3n[u,v,v]^TF -2D^2n[u,v]^TF'-Dn[u]^TF''. \tag{RC-15} ]
Fixed-time Newton에는 RC-15의 T만 필요하므로 F'''는 불필요하다. 일반 pure Qttt 요청에는 F'''가 필요하지만 이번 구현에서 요청하지 않는다. Constant public CLOAD에서는 F'=F''=0이다. Generalized rotational F가 nonzero이면 n의 pure-q 미분은 여전히 필요하다. C08a oracle에 Fdot/Fddot=0을 대입하면 잘못된 구현이다. External time-mixed second contraction은 n의 nodal Hessian에서 계산하며 force finite difference로 대체하지 않는다.
7. 최소 구현 인계
| Owner / 파일 제안 | 대응 operator / 책임 |
|---|---|
include/fesa/elements/nonlinear_mitc4_shell.h, src/fesa/elements/nonlinear_mitc4_shell.cpp |
Internal psi gradient/Hessian와 drilling_constraint_third_directional_gradient[node][j]=D³psi[e_j,v,v]; RC-02/15. 기존 physical energy force/tangent 보존 |
Element-local NonlinearMitc4Shell::EvaluateExternalDrillingConstraint(node,phi,phi_dot,F,Fdot,Fddot) |
Unit d0, principal phi, n convention과 nodal scalar 미분. gradient/Hessian은 pure q, directional_first/second와 gradient_directional_first/second는 W=(v,1) contractions; RC-13–15 |
src/fesa/analysis/hht_reduced_internal.h, hht_reduced_operators.cpp 새 private proposal |
Stable scatter/ordered assembly, external term once/node, current admissible null checks; shell/AD storage ownership 이전 금지 |
src/fesa/analysis/hht_reduced_embedding.cpp 새 private proposal |
Fixed p/z selectors, coupled algebraic root, G/transposed-G solves, J/Qt/B/X/Y/C and full physical state; RC-07–10 |
src/fesa/analysis/hht_dynamic_procedure.cpp 및 필요시 hht_reduced_newton.cpp |
Immutable prediction, reduced candidate/history, exact Kr, original equilibrium/hidden/geometry/recovery and atomic commit. Nonsymmetric sparse solver adapter 사용 |
src/fesa/CMakeLists.txt |
새 private source의 기존 production target registration; 새 vendor/public target 없음 |
Private interface는 EvaluateAlgebraicOperators(q,t,F,Fdot,Fddot,v), SolveEmbedding(fixed_chart,p,t,accepted_z_seed), EvaluateReducedTrial(p,vp,ap,t)의 수학적 책임을 분리하는 정도면 충분하다. 이름·저장/API는 구현자가 existing ownership에 맞춘다. SolveEmbedding은 immutable accepted z seed와 current trial를 구분하며 실패가 committed branch/cache에 반영되지 않는다. Perturbed algebraic-root finite difference is independent derivative validation only; production tangent must RC-11과 동일하다.
8. 검증 인계와 남은 한계
- Local scalar third: nonzero finite rotation/warped element, mixed external F/Fdot/Fddot, directional derivative sweeps와 independent scalar identity 확인. 임의 stored 0 third나 internal-only C08a 경로는 mutation 검출 대상이다.
- RC-07–11: coupled mesh graph derivatives, exact reduced Newton tangent의 독립 directional sweep,
delta J^T E/mixed-time/curvature 누락 mutation. Empty null의 원 full-coordinate recurrence와 all-fixed reaction, partial BC의 null 교집합·rank-change rejection도 확인한다. - Frame0와 hidden0/1/2, full E/reaction, director kinematics, spatial rates, energy/P/L, 실패 rollback을 현재 승인 기준으로 검사한다. 같은 alpha/beta/gamma가 과거 full-coordinate 결과의 동일성을 뜻하지 않는다.
- C08a all-time full q/v/physical-a 차수와 실제 shell C08b physical high-frequency convergence는 별개다. 축소법의 null-rate 개선만으로 C08b finest fixed-grid 기준 통과를 주장하지 않는다. Original reference 비교·현재 full suite는 implementation owner가 수행한다.
- Fixed component graph는 general chart/rank transport, smoothness가 깨진 null cutting BC, nonprincipal branch, nonsmooth F를 지원하지 않는다. 이 경계는 fail-closed 구현과 진단으로 드러나야 하며 tolerance/rank clipping으로 숨기지 않는다.
Owner의 Decimal96 polynomial probe는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. 결과, native0 기록을 보존한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 delta J 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다.
독립 numerical reviewer가 RC-01–15와 actual implementation operator/BC/branch 대응을 검토해야 한다. Public A/schema details는 I/O owner의 승인 계약을 참조하며 본 수식 문서가 새로운 영속 문자열을 정하지 않는다.