# Shell Surface Pressure Load Numerical Review ## 1. Metadata - feature_id: `shell-surface-pressure-load` - source_formulation: `docs/shell-surface-pressure-load/formulation.md` - source_requirements: `docs/shell-surface-pressure-load/requirements.md` - source_research: `docs/shell-surface-pressure-load/research.md` - status: `pass-for-io-definition` - owner_agent: `numerical-review-agent` - date: `2026-08-30` - reviewed_requirement_range: `FESA-REQ-SHELL-PRESSURE-001`–`FESA-REQ-SHELL-PRESSURE-024` - external_tolerance_authority: `docs/TOLERANCE.md` ## 2. Review Verdict **Verdict: `pass-for-io-definition`.** Blocking formulation defect, research gap, reference-artifact gap 또는 critical user decision은 없다. Pressure virtual work, discrete force, exact current-area derivative, residual/tangent sign과 reference/current geometry 구분은 서로 일관된다. S4/S4R 공통 `2x2` rule은 FESA-owned discrete pressure force와 tangent를 정확히 적분하고, 기존 full unsymmetric nonlinear tangent solver와 호환된다. 이 verdict는 Stage 5가 I/O contract를 정의할 수 있다는 뜻이며 구현, reference agreement 또는 release approval이 아니다. ## 3. Critical Findings ### 3.1 Confirmed defects 없음. ### 3.2 Independently confirmed findings 1. Connectivity-positive area vector `a=g_xi x g_eta`, `s=+1` for `SPOS`, `s=-1` for `SNEG`와 `f_i=-lambda*p*s*integral(N_i*a)`의 조합은 positive `P`가 selected normal의 반대 방향으로 작용하게 한다. `p` 또는 `s` 하나만 반전하면 force, moment와 nonlinear tangent가 반전하고 둘을 함께 반전하면 원래 부호다. 2. `delta W_p=sum(delta u_i dot f_i)`는 식 (4)의 surface virtual work와 동일하다. `sum N_i=1`로 nodal resultant 식 (23)이, `x_h=sum N_i*x_i`로 current/reference arm을 쓰는 moment 식 (22)가 직접 따른다. 승인된 midsurface/no-offset 범위에서는 pressure가 nodal rotation에 의존하지 않으므로 rotational force entries와 tangent rows/columns가 exact zero인 계약이 맞다. 3. `Da[d]=sum_j(-N_j,xi*[g_eta]_x+N_j,eta*[g_xi]_x)d_j`의 cross/skew 부호가 맞다. 따라서 external derivative 식 (14)는 `df_ext/du`이고, `r=f_int-f_ext`에 대한 pressure residual directional derivative는 `-K_ext*d`, Newton tangent는 `K_int-K_ext`다. 4. 식 (14)의 open-facet element operator는 일반적으로 nonsymmetric이다. Silent symmetrization, symmetric-triangle storage 또는 SPD 가정은 금지한다. Existing nonlinear path는 full CSR과 oneMKL PARDISO `mtype=11`을 사용하므로 이 계약을 수용한다. 5. Bilinear surface mapping에서 `a`는 `xi,eta`의 affine vector다. `N_i*a`와 식 (19)의 scalar component는 각 natural coordinate에서 차수가 최대 2이므로 tensor-product `2x2` Gauss rule은 force와 exact derivative를 적분한다. 이는 Abaqus S4/S4R 내부 integration과의 동등성 주장이 아니다. 6. Reference geometry는 analysis 시작 전, nonlinear current geometry는 매 trial에서 같은 chord/mean/corner/Gauss 규칙으로 검사한다. Connectivity reorder, normal flip, absolute-area repair 또는 reference-normal dot test가 없으므로 proper large rigid rotation을 허용하면서 fold, local inversion, collapse와 nonfinite geometry를 fail closed한다. ### 3.3 Open questions Critical open question은 없다. 직접 적용 가능한 public S4/S4R follower-pressure target이 없다는 `research.md`의 `OI-01`은 analytical/tangent/internal-equilibrium suite와 exact stored case로 보완되는 disclosed nonblocking limitation이다. ## 4. Numerical Risk Assessment | risk label | assessment | blocking evidence / disposition | | --- | --- | --- | | `rigid_body_modes` | Pressure는 support 또는 artificial stiffness가 아니다. Unconstrained patch의 six rigid modes를 regularization으로 숨기면 안 된다. | supported patch solution과 별도로 unconstrained singular behavior 및 pressure rigid-translation action을 검사한다. | | `patch_test` | Stored case만으로 sign, S4R 또는 exact resultant를 분리할 수 없다. | Flat/distorted S4/S4R의 resultant, moment, side/sign, reaction과 mesh subdivision test가 blocking이다. | | `symmetry` | `K_ext`는 일반적으로 nonsymmetric이고 global closure 조건이 우연히 symmetry를 만들 수 있다. | 독립 식 (14) matrix oracle, nonsymmetric open-patch precondition과 full-matrix assembly가 blocking이다. Symmetrization 금지. | | `positive_definiteness` | `K_int-K_ext`는 follower loading에서 positive definite일 필요가 없다. | Existing unsymmetric tangent solver를 사용하며 pivot perturbation, SPD fallback 또는 hidden regularization을 허용하지 않는다. | | `hourglass` | Pressure force/tangent는 S4/S4R 모두 `2x2`라 pressure under-integration mode를 만들지 않는다. | Existing MITC4 drilling/hourglass policy는 변경하지 않는다. Source `S4R`은 reduced pressure integration을 뜻하지 않는다. | | `shear_locking` | Existing MITC4 internal kinematics의 위험이며 external pressure interpolation의 결함이 아니다. | Existing shell evidence를 보존하고 pressure kernel을 locking correction으로 바꾸지 않는다. | | `volumetric_locking` | Pressure kernel에는 volumetric constitutive mode가 없다. | `N/A`; material/section scope를 확장하지 않는다. | | `distortion` | Warped/distorted bilinear patch는 pointwise vector area와 consistent tangent가 필요하다. | Mean, four corners와 four Gauss points의 dimensionless validity 및 distorted analytical/FD tests가 blocking이다. 추가 calibrated distortion portfolio는 요구하지 않는다. | | `singular_jacobian` | Collapsed, folded, inverted 또는 nonfinite surface에서는 normal/area와 force가 유효하지 않다. | §6.1의 strict `tau_J` gate를 force/tangent 평가 전에 적용하고 failed candidate를 commit하지 않는다. | | `conditioning` | Near-collapse와 extreme aspect ratio는 normalization 및 tangent conditioning을 악화한다. | Chord-relative gate와 finite-first checks를 사용한다. Absolute length floor, `max(1,...)` 또는 clamp는 금지한다. | | `convergence` | Force와 tangent의 common sign error는 FD만 통과할 수 있고, tangent omission은 full Newton 수렴을 악화한다. | Independent sign/resultant oracle, external-force 및 residual FD, accepted free residual과 global balance를 모두 통과해야 한다. | ## 5. Consistency Checks | check | result | independent evidence | | --- | --- | --- | | units and dimensions | pass | `p:[F/L^2]`, `a:[L^2]`, `f:[F]`, translational `K_ext:[F/L]`; generalized rotational force의 단위는 `[F L]`이고 값은 exact zero다. | | matrix/vector dimensions | pass | `q_e,f_e`는 `24x1`, `E_i`는 `3x24`, `K_ij`는 `3x3`, `K_e`는 `24x24`; four translation blocks와 exact-zero rotational blocks가 일치한다. | | signs | pass | `SPOS/SNEG`, positive/negative `p`, external force, reaction, `r=f_int-f_ext`, `K=K_int-K_ext`가 하나의 sign chain을 이룬다. | | DOF ordering and constraints | pass | Global nodal order `[UX,UY,UZ,URX,URY,URZ]`; full-space stable assembly 후 free/constrained projection; constrained residual은 reaction, free residual은 equilibrium evidence다. | | coordinates and transforms | pass | Geometry/force/reaction/balance는 global Cartesian; pressure mapping에는 physical in-plane inverse Jacobian이 필요 없다. 기존 MITC4 local frame, `B`와 recovery transform은 변경하지 않는다. | | kinematic / `B` operator | pass | New load kinematics는 midsurface positional mapping과 식 (9)–(10)뿐이다. `B_MITC4`는 internal strain용이며 pressure force/tangent에 혼합되지 않는다. | | constitutive contract | pass | Pressure는 `D`, stress update, thickness와 material state에 독립이다. Existing linear-isotropic MITC4 internal force/tangent/recovery를 변경하지 않는다. | | Jacobian / geometry | pass with fixed decision | `ell_e`, mean area, corner/Gauss signed projection과 finite checks가 충분하며 final `tau_J=1.0e-12`를 §6.1에서 고정한다. | | integration | pass | S4/S4R force와 tangent 모두 fixed-order four-point `2x2`, `w_q=1`; polynomial exactness와 same-rule consistency 확인. | | tangent symmetry | pass | General nonsymmetry가 예상되며 full unsymmetric solver path와 일치한다. Symmetric storage 또는 averaging은 계약 위반이다. | | output locations | pass | Nodal global displacement/rotation, full residual/reaction, factor-one global balance와 existing MITC4 result locations만 사용한다. Pressure-only recovery row는 없다. | | deterministic identity | pass | Stable `(load source order, facet order, instance, element label, source type, side, local row[,column])`, exact-once local completion, fixed reduction, full-space-before-projection 계약이 완전하다. | ## 6. Verification Readiness ### 6.1 Geometry validity decision Final single threshold is \[ \boxed{\tau_J=1.0\times10^{-12}}. \] Formulation 식 (20)–(21)의 모든 strict inequality에 동일 값을 사용한다. 즉 `||bar(a)||/ell_e^2 > tau_J`와 four corners plus four Gauss points의 `a(z) dot bar(n)/ell_e^2 > tau_J`가 모두 필요하다. 값이 threshold와 같으면 fail이다. 모든 coordinate, chord, tangent, area, normalized mean, integrand, accumulated vector/matrix는 finite여야 하고 `ell_e=0`은 즉시 fail이다. 이 값은 double roundoff보다 약 4,500배 큰 dimensionless guard이며 별도 aspect-ratio calibration gate를 만들지 않는 최소 fail-closed 선택이다. Stored Abaqus value에 맞춰 조정하지 않았고 absolute length floor도 없다. ### 6.2 Analytical arithmetic decisions Configuration `c`에서 다음 unclamped scales를 쓴다. \[ A_\Sigma=\sum_qw_q\|a_c(q)\|_2,\qquad F_\Sigma=|\lambda p|A_\Sigma, \] \[ M_\Sigma=|\lambda p|\sum_qw_q \|x_h(q)-O\|_2\|a_c(q)\|_2,\qquad K_\Sigma=F_\Sigma/\ell_e. \] - Natural nodes와 four Gauss points에서 `|sum_i N_i-1|<=1e-14` 및 `|sum_i N_i,xi|, |sum_i N_i,eta|<=1e-14`; nodal Kronecker values는 exact `0/1`이다. - 식 (23) resultant error는 `||error||_2/F_Sigma<=1e-12`, 식 (22) moment error는 `||error||_2/M_Sigma<=1e-12`다. - Side/sign reversal, double reversal, `lambda={0,0.5,1}` proportionality, flat analytical force/reaction과 mesh/order invariance도 해당 `F_Sigma` 또는 `M_Sigma`로 `<=1e-12`다. - Scale이 exact zero이면 expected와 computed vector가 모두 exact zero여야 한다. `p=0`은 force/tangent exact zero지만 geometry/model validation을 우회하지 않는다. - Rotation entries와 tangent rotation rows/columns은 exact zero다. Rigid-translation tangent action은 direction의 maximum nodal translation을 `ell_e`로 scaling한 뒤 `||K_ext*d||_2/F_Sigma<=1e-12`; `F_Sigma=0`이면 exact zero다. ### 6.3 Centered directional tangent decision Nonzero deterministic translational direction `d`에 대해 `D=max_i||d_i||_2`와 `dhat_i=ell_e*d_i/D`를 사용한다. Dimensionless perturbation is \[ \boxed{h=1.0\times10^{-5}},\qquad u^\pm=u\pm h\,\hat d. \] Both perturbed surfaces must independently pass §6.1. Define \[ d_{FD}=\frac{f^{ext}(u^+)-f^{ext}(u^-)}{2h},\quad d_A=K^{ext}(u)\hat d,\quad S_D=\max(\|d_{FD}\|_2,\|d_A\|_2). \] If `S_D>0`, require `||d_FD-d_A||_2/S_D<=1e-8`; if `S_D=0`, both actions must be exact zero. The pressure-residual check independently compares centered `D(-f_ext)` with `-K_ext*dhat` by the same rule. A nonzero-pressure non-rigid direction must have `S_D>0` so an accidentally zero oracle cannot pass. S4/S4R, SPOS/SNEG와 positive/negative `p`를 각각 다룬다. `p=0`, rigid translation and rotation-only directions use their stated zero rules rather than this relative branch. This fixed centered rule reflects the quadratic current-area mapping and is not selected from stored reference results. ### 6.4 Objectivity and current-area decisions - Translation test uses finite `||c||_2<=10*ell_e`. Force/area invariance and tangent invariance must pass normalized `<=1e-12` using `F_Sigma`, `A_Sigma`, `K_Sigma`; zero scales require exact zero. - Proper rigid rotation uses an independently constructed orthogonal `Q`, `det(Q)=+1`, including a `120 deg` non-coordinate-axis rotation. Require force covariance, vector-area covariance, scalar area invariance and `T K T^T` tangent covariance `<=1e-12` with the same unclamped scales. The rotated geometry must remain valid; reference-global-normal comparison is forbidden. - A planar current patch with homogeneous in-plane scale `gamma=1.25` must produce area and total pressure resultant magnitude factors `gamma^2` within `<=1e-12`; pressure scalar and source identity remain unchanged. - The open distorted-patch tangent oracle must use a case whose independent 식 (14) has nonzero antisymmetric part, compare every full-matrix entry by `K_Sigma` within `<=1e-12`, and demonstrate that no symmetrization occurred. ### 6.5 Assembly, reaction, residual and global equilibrium Blocking assembly tests cover unique facet exact-once application, distinct load-record addition, fixed Gauss/contribution order, serial/parallel stable reduction, shuffled declaration/member order, full-space-before-projection, nonfinite rejection and failed-candidate atomicity. Accepted factor-one global equilibrium preserves the existing nonlinear contract. With current `x=X+u` and global origin `0`, form applied/reaction nodal force contributions `a_F,I`, `c_F,I` and current-arm plus spatial physical moment contributions `a_M,I`, `c_M,I`. Pressure has no separate nodal moment. Define \[ e_F=\sum_I(a_{F,I}+c_{F,I}),\quad S_F=\max(\sum_I\|a_{F,I}\|_2,\sum_I\|c_{F,I}\|_2), \] \[ e_M=\sum_I(a_{M,I}+c_{M,I}),\quad S_M=\max(\sum_I\|a_{M,I}\|_2,\sum_I\|c_{M,I}\|_2). \] Both `||e_F||_2/S_F<=1e-8` and `||e_M||_2/S_M<=1e-8` are blocking. Exact-zero scale requires exact-zero balance; there is no absolute floor, `max(1,S)` or clamp. Accepted free translation-force and rotation-moment residual channels remain separate and finite-first. For a nonzero matching external scale, the existing infinity-norm relative gate is `<=1e-2`. For an exact-zero external scale, the existing typed absolute infinity-norm gate is `<=1e-3` force or force-length. Both channels must pass; neither global balance nor local reaction distribution substitutes for this evidence. ### 6.6 Evidence classes and requirement traceability | evidence class | classification | readiness / requirement trace | | --- | --- | --- | | input/surface/source identity | `blocking-internal` | Exact grammar/semantic projection remains Stage 5-owned; stable scope/failure contracts cover `001`–`004`, `013`–`017`. | | sign/resultant/moment/reaction patches | `blocking-internal` | §6.2 and flat/distorted S4/S4R portfolio cover `005`–`007`, `010`–`012`, `020`. | | current geometry/objectivity/tangent | `blocking-internal` | §§6.1, 6.3–6.4 cover `008`–`009`, `016`, `021`. | | deterministic assembly/output preservation | `blocking-internal` | Exact identity/order/atomicity and unchanged existing result meanings cover `011`, `013`, `017`–`019`. | | factor-one free residual/global balance | `blocking-internal` | §6.5 covers `012`, `019`, `021`. | | stored `U1/U2/U3` | `blocking` external | Exact required input/CSV, source rows and common tolerance are ready for `022`–`023`; success remains Implementation-owned. | | stored `UR1/UR2/UR3` | `warning-only` external | Same identity/precheck and common tolerance, deterministic warning disposition for `023`. | | reaction CSV | `review-only` | Optional inventory only; internal reaction/equilibrium remains blocking under `012`, `021`, `024`. | | stress CSV | `excluded` | No comparison family; existing stress recovery remains unchanged under `019`, `024`. | Coverage: normative requirements `24`, reviewed requirements `24`, numerical/reference readiness gaps `0`. ## 7. Required Revisions ### Formulation Agent 없음. ### Research Agent 없음. Public follower-pressure benchmark absence remains a disclosed nonblocking gap and does not justify an invented target or extra portfolio. ## 8. Downstream Handoff Coordinator를 통해 I/O Definition Agent에 전달한다. - Preserve logical source facet `(instance, element label, source element type, side)`, distinct load source order and exact-once semantics; final diagnostic representation is I/O-owned. - Preserve global nodal component order, pressure rotational zero contract, source node identity, `r=f_int-f_ext`, constrained reaction/free residual distinction and current-arm factor-one balance. - Preserve the exact external logical families and row contract in `reference-model.md`; I/O owns the final authoritative dataset projection. - Do not add a pressure-only result quantity unless Stage 5 finds binding evidence; none was found in this review. - Internal thresholds in §6 are test gates only. They do not modify `docs/TOLERANCE.md` and must not be calibrated to Abaqus output.