# Shell Surface Pressure Load Formulation > 현재 구현·검증은 [기능 요약](README.md)을 먼저 따른다. 아래 준비 상태·owner 인계와 > 옛 source 문서명은 작성 당시 이력이며, 원문은 Git 이력에서 확인한다. ## 1. Metadata - feature_id: `shell-surface-pressure-load` - source_requirement: `docs/shell-surface-pressure-load/requirements.md` - source_research: `docs/shell-surface-pressure-load/research.md` - source_requirement_range: `FESA-REQ-SHELL-PRESSURE-001`–`FESA-REQ-SHELL-PRESSURE-024` - status: `ready-for-numerical-review` - owner_agent: `formulation-agent` - date: `2026-08-30` - formulation_scope: S4/S4R source element의 `SPOS|SNEG` named element surface에 작용하는 uniform surface-based `DSLOAD P` - evidence_boundary: `research.md`의 `CL-03`–`CL-10`, `CL-12`–`CL-15`와 binding project contracts 이 문서는 FESA가 소유하는 압력 하중의 수학적·알고리즘 계약이다. Abaqus 문서는 승인된 입력과 observable sign/follower behavior의 근거일 뿐이다. 이 문서는 Abaqus의 내부 shell formulation, integration, stabilization, load-vector, pressure-load stiffness 또는 결과 생성 절차와 FESA가 동등하다고 주장하지 않는다. ## 2. Scope and Assumptions ### 2.1 승인 범위 | 항목 | 계약 | | --- | --- | | analysis type | 단일 linear static 또는 승인된 full-Newton nonlinear static `NLGEOM=YES` | | source elements | Abaqus source type `S4`, `S4R`; 둘 다 기존 FESA MITC4를 선택하되 source type/label은 보존 | | load | `*SURFACE, TYPE=ELEMENT`의 single-sided `SPOS|SNEG` member에 uniform finite scalar `*DSLOAD P` | | linear geometry | reference configuration | | nonlinear geometry | trial/current configuration `x=X+u`; current-area follower pressure | | material/section | 기존 MITC4 linear isotropic elastic shell material/section 그대로 | | coordinates | geometry, pressure force, reaction, equilibrium은 global Cartesian | | units | model-consistent; `p:[F/L^2]`, `u:[L]`, rotation `[1]`, force `[F]`, physical moment `[F L]` | Linear static은 small-displacement/small-rotation 해석이며 pressure geometry를 reference configuration에 고정한다. Nonlinear static은 finite translation/rotation을 허용하는 geometrically nonlinear 해석이며 trial/current midsurface geometry를 사용한다. Material nonlinearity는 추가하지 않는다. ### 2.2 제외와 기존 계약 보존 - `*DLOAD` element-face pressure, `P n`, spatially varying pressure, amplitude, user load, edge/node/double-sided surface, 다른 element type과 다른 procedure는 이 formulation의 대상이 아니다. - Surface offset, shell thickness face arm, thickness-side pressure correction과 distributed pressure couple을 사용하지 않는다. 압력은 midsurface에 작용하는 force resultant만 만든다. - S4/S4R source type은 같은 FESA MITC4 및 같은 pressure quadrature를 사용한다. `S4R`이라는 source token은 FESA reduced pressure integration이나 별도 hourglass 경로를 선택하지 않는다. - 기존 MITC4 strain, stress, material tangent, drilling stabilization과 result recovery는 변경하지 않는다. 압력은 material-independent external contribution이다. - 새로운 pressure-only HDF5 dataset, integration-point pressure output 또는 nodal extrapolation을 만들지 않는다. ## 3. Primary Variables, Symbols, and DOFs ### 3.1 Nodal variables and ordering Four-node element의 generalized coordinate는 \[ \mathbf q_e= [\mathbf u_1,\boldsymbol\theta_1, \mathbf u_2,\boldsymbol\theta_2, \mathbf u_3,\boldsymbol\theta_3, \mathbf u_4,\boldsymbol\theta_4]^T\in\mathbb R^{24}, \] 이고 각 절점의 global 순서는 \[ [UX,UY,UZ,URX,URY,URZ] \] 이다. `\mathbf u_i\in\mathbb R^3`의 단위는 `[L]`, `\boldsymbol\theta_i\in\mathbb R^3`는 dimensionless finite-rotation coordinate다. `\mathbf E_i\in\mathbb R^{3\times24}`를 `\mathbf E_i\mathbf q_e=\mathbf u_i`인 translation extractor로 둔다. 압력 geometry와 pressure generalized force는 오직 `UX/UY/UZ`에 의존한다. `URX/URY/URZ`, shell director와 thickness offset은 pressure geometry에 들어가지 않는다. 따라서 pressure force의 rotational entries와 pressure tangent의 rotation row/column은 모두 정확히 zero다. Global generalized coordinates는 stable full-DOF space에서 free set `q_f`와 prescribed constrained set `q_c`로 분할한다. Pressure contribution은 이 분할 전에 full space에 조립한다. 기존 essential-constraint policy가 `q_c`를 정하고, constrained residual은 reaction, free residual은 equilibrium evidence다. ### 3.2 Symbols and sign convention | symbol | meaning | dimension | | --- | --- | --- | | `(\xi,\eta)` | natural coordinates on `[-1,1]^2` | `[1]` | | `N_i` | bilinear shape function | `[1]` | | `\mathbf X_i`, `\mathbf x_i` | reference, current nodal position; `x_i=X_i+u_i` | `[L]` | | `\mathbf g_\xi,\mathbf g_\eta` | covariant surface tangents in the chosen configuration | `[L]` | | `\mathbf a=\mathbf g_\xi\times\mathbf g_\eta` | connectivity-positive oriented area vector per `d\xi d\eta` | `[L^2]` | | `J_s=\|\mathbf a\|` | unsigned surface Jacobian | `[L^2]` | | `s` | side multiplier: `+1` for `SPOS`, `-1` for `SNEG` | `[1]` | | `p` | unscaled signed source `DSLOAD P` magnitude | `[F/L^2]` | | `\lambda` | current analysis step load factor | `[1]` | | `[\mathbf v]_\times` | skew matrix satisfying `[v]_\times w=v\times w` | same as `v` | Selected-side oriented area vector는 `\mathbf a_s=s\mathbf a`다. Positive `DSLOAD P`는 selected normal 반대 방향이므로 natural-area force density는 \[ d\mathbf f_p=-\lambda p\,s\,\mathbf a\,d\xi d\eta. \tag{1} \] 따라서 exact sign map은 다음과 같다. | side | selected normal | `p>0` force | `p<0` force | | --- | --- | --- | --- | | `SPOS` | connectivity-positive | `-\mathbf n` | `+\mathbf n` | | `SNEG` | connectivity-negative | `+\mathbf n` | `-\mathbf n` | 여기서 `\mathbf n=\mathbf a/\|\mathbf a\|`다. Magnitude에 absolute value를 취하지 않는다. 이 sign은 named surface의 surface-based `DSLOAD P` 계약이다. Element/element-set face label을 쓰는 `DLOAD` sign rule을 가져오지 않는다. ## 4. Strong Form and Boundary Conditions Reference body `\Omega_0`에 대한 일반적인 equilibrium strong form을 \[ \operatorname{Div}\mathbf P+\mathbf B=\mathbf0 \quad\text{in }\Omega_0, \] \[ \mathbf u=\bar{\mathbf u}\quad\text{on }\Gamma_u, \qquad \mathbf P\mathbf N=\bar{\mathbf t}\quad\text{on }\Gamma_t \] 로 둔다. Shell reduction에서 selected shell face pressure는 midsurface external distributed load로 나타낸다. 승인 pressure patch에서 spatial traction은 \[ \mathbf t_p=-\lambda p\,\mathbf n_s, \qquad \mathbf n_s=s\mathbf n. \tag{2} \] 여기서 `P`는 first Piola stress, `B`는 reference body force density, `N`은 reference outward normal이고 `Gamma_u`, `Gamma_t`는 Dirichlet/Neumann boundary partition이다. Equation `(2)`는 current-area spatial traction이다. Reference weak form에서 그 nominal pullback은 `\bar t_0 dA=t_p da`를 만족해야 하며, 아래 oriented-area integral이 이 변환을 직접 포함한다. Linear path에서는 `(2)`의 direction과 area measure를 reference surface에서 평가한다. Nonlinear path에서는 current surface에서 평가한다. 압력은 edge traction이나 nodal couple을 추가하지 않으며, 기존 essential displacement/rotation constraints가 `\Gamma_u`를 정의한다. ## 5. Weak or Variational Form Admissible test field `\delta\mathbf q`는 `\Gamma_u`에서 zero다. Equilibrium functional은 \[ G(\mathbf q;\delta\mathbf q) =\delta W_{int}(\mathbf q;\delta\mathbf q) -\delta W_{ext}(\mathbf q;\delta\mathbf q)=0. \tag{3} \] Integration by parts 뒤 body/edge natural terms와 selected pressure term이 external virtual work를 이룬다. 이 feature가 추가하는 element pressure virtual work는 \[ \delta W_{p,e} =-\lambda p s\int_{-1}^{1}\int_{-1}^{1} \delta\mathbf x_h(\xi,\eta)\cdot\mathbf a(\xi,\eta) \,d\xi d\eta, \tag{4} \] \[ \delta\mathbf x_h=\sum_{i=1}^{4}N_i\,\delta\mathbf u_i. \] Equation `(4)`는 같은 interpolation에 대해 work-equivalent nodal force를 정의한다 (`research.md` `CL-06`). Rotational virtual coordinates에는 pressure virtual work가 없다. Internal virtual work와 pressure-independent body/edge load는 기존 MITC4/procedure 계약을 그대로 사용한다. ## 6. Discretization ### 6.1 Nodal layout and shape functions Connectivity order와 natural node coordinates는 | node `i` | `(\xi_i,\eta_i)` | | --- | --- | | 1 | `(-1,-1)` | | 2 | `(+1,-1)` | | 3 | `(+1,+1)` | | 4 | `(-1,+1)` | 이며 \[ \begin{aligned} N_1&=\tfrac14(1-\xi)(1-\eta),& N_2&=\tfrac14(1+\xi)(1-\eta),\\ N_3&=\tfrac14(1+\xi)(1+\eta),& N_4&=\tfrac14(1-\xi)(1+\eta). \end{aligned} \tag{5} \] Natural derivatives are fixed as \[ \begin{aligned} N_{1,\xi}&=-\tfrac14(1-\eta),&N_{1,\eta}&=-\tfrac14(1-\xi),\\ N_{2,\xi}&=+\tfrac14(1-\eta),&N_{2,\eta}&=-\tfrac14(1+\xi),\\ N_{3,\xi}&=+\tfrac14(1+\eta),&N_{3,\eta}&=+\tfrac14(1+\xi),\\ N_{4,\xi}&=-\tfrac14(1+\eta),&N_{4,\eta}&=+\tfrac14(1-\xi). \end{aligned} \tag{5a} \] 필수 interpolation checks는 \[ \sum_{i=1}^{4}N_i(\xi,\eta)=1, \qquad N_i(\xi_j,\eta_j)=\delta_{ij} \tag{6} \] 이다. `(6)`은 constant translation과 nodal interpolation을 보장한다. ### 6.2 Isoparametric surface mapping Linear/reference mapping은 \[ \mathbf X_h=\sum_iN_i\mathbf X_i, \quad \mathbf G_\xi=\sum_iN_{i,\xi}\mathbf X_i, \quad \mathbf G_\eta=\sum_iN_{i,\eta}\mathbf X_i, \quad \mathbf A=\mathbf G_\xi\times\mathbf G_\eta. \tag{7} \] Nonlinear/current mapping은 \[ \mathbf x_h=\sum_iN_i(\mathbf X_i+\mathbf u_i), \quad \mathbf g_\xi=\sum_iN_{i,\xi}\mathbf x_i, \quad \mathbf g_\eta=\sum_iN_{i,\eta}\mathbf x_i, \quad \mathbf a=\mathbf g_\xi\times\mathbf g_\eta. \tag{8} \] Load integration은 natural derivative와 oriented area vector를 직접 사용하므로 physical in-plane derivative transform이나 `2x2` inverse Jacobian이 필요하지 않다. Material strain `B` matrix를 계산하는 기존 MITC4 kernel의 derivative transform은 별도이며 변경하지 않는다. ## 7. Kinematics Pressure load kinematic operator는 `(7)` 또는 `(8)`의 midsurface positional mapping이다. Linear path는 `\mathbf A`를 고정하며 candidate displacement가 pressure direction이나 area를 바꾸지 않는다. Nonlinear path는 trial `\mathbf x=\mathbf X+\mathbf u`를 사용한다. Current area vector의 directional variation은 임의의 translational direction `\Delta\mathbf u_j`에 대해 \[ D\mathbf a[\Delta\mathbf u] =D\mathbf g_\xi[\Delta\mathbf u]\times\mathbf g_\eta +\mathbf g_\xi\times D\mathbf g_\eta[\Delta\mathbf u], \tag{9} \] \[ D\mathbf a[\Delta\mathbf u] =\sum_{j=1}^{4} \left(-N_{j,\xi}[\mathbf g_\eta]_\times +N_{j,\eta}[\mathbf g_\xi]_\times\right) \Delta\mathbf u_j. \tag{10} \] Pressure는 strain, deformation gradient 또는 director strain을 직접 계산하지 않는다. Geometrically linear/finite-rotation MITC4의 strain-displacement operator, strain measure와 internal tangent는 기존 formulation 계약을 따른다. 이 문서가 소유하는 새로운 kinematic derivative는 `(9)`–`(10)`뿐이다. Objectivity invariants는 다음과 같다. - Uniform translation `x_i'=x_i+c`에서 tangents, area vector, nodal pressure forces는 변하지 않는다. - Proper rigid rotation `x_i'=Qx_i+c`, `Q^TQ=I`, `det Q=+1`에서 `a'=Qa`, `f_i'=Qf_i`, `K_{ij}^{uu\prime}=QK_{ij}^{uu}Q^T`다. - Homogeneous in-plane area change는 current vector area를 바꾸므로, 일정 scalar pressure라도 nonlinear total resultant magnitude가 current area에 따라 바뀔 수 있다. ## 8. Constitutive Contract Existing MITC4 linear isotropic shell constitutive relation을 추상적으로 \[ \mathbf s=\mathbf D\mathbf e, \qquad \delta\mathbf e=\mathbf B_{MITC4}\delta\mathbf q_e, \qquad \delta W_{int,e}=\int_{\Omega_{0,e}}\delta\mathbf e^T\mathbf s\,d\Omega_0, \qquad \mathbf f_e^{int}=\int_{\Omega_{0,e}}\mathbf B_{MITC4}^T\mathbf s\,d\Omega_0 \] 로 둔다. `\mathbf e`, `\mathbf s`, `\mathbf D`, MITC shear interpolation, drilling stabilization, existing material state와 internal consistent tangent는 이 feature가 변경하지 않는다. Pressure force와 external tangent는 `\mathbf D`, thickness, stress와 material state에 의존하지 않는다. 새 material state variable, mass 또는 damping contribution은 없다. ## 9. Element Equations ### 9.1 Consistent nodal pressure force Equation `(4)`와 `(5)`로부터 node `i`의 translational force block은 \[ \mathbf f_{p,i}^{u} =-\lambda p s\int_{-1}^{1}\int_{-1}^{1} N_i\mathbf a_c\,d\xi d\eta\in\mathbb R^3, \tag{11} \] 여기서 linear path는 `a_c=A`, nonlinear path는 `a_c=a`다. Element generalized vector는 \[ \mathbf f_{p,e}^{ext} =\sum_{i=1}^{4}\mathbf E_i^T\mathbf f_{p,i}^{u} \in\mathbb R^{24}. \tag{12} \] 각 node block은 `[f_x,f_y,f_z,0,0,0]`이며 translation은 `[F]`, zero rotation entry의 generalized unit은 `[F L]`이다. `p=0`이면 force와 tangent는 exact zero지만 surface/model validation을 생략하지 않는다. `\lambda`는 unscaled source `p`에 식 `(11)`에서 정확히 한 번만 곱한다. ### 9.2 Linear path Linear static에서는 \[ \mathbf f_{p,e}^{lin} =-\lambda p s\int N_i\mathbf A\,d\xi d\eta, \qquad \mathbf K_{p,e}^{ext,lin} =\frac{\partial\mathbf f_{p,e}^{lin}}{\partial\mathbf q_e} =\mathbf0_{24\times24}. \tag{13} \] 따라서 pressure는 reference-area/reference-normal constant load이고 candidate displacement와 독립이다. ### 9.3 Nonlinear external tangent `[v]_\times w=v\times w` 정의와 `(10)`을 `(11)`에 대입하면 translation-to-translation `3x3` block은 \[ \boxed{ \mathbf K_{p,ij}^{ext,uu} =\frac{\partial\mathbf f_{p,i}^{u}}{\partial\mathbf u_j} =\lambda p s\int_{-1}^{1}\int_{-1}^{1} N_i\left( N_{j,\xi}[\mathbf g_\eta]_\times -N_{j,\eta}[\mathbf g_\xi]_\times \right)d\xi d\eta }\in\mathbb R^{3\times3}. \tag{14} \] 동일 식의 implementable generalized form은 \[ \mathbf K_{p,e}^{ext} =\sum_{i=1}^{4}\sum_{j=1}^{4} \mathbf E_i^T\mathbf K_{p,ij}^{ext,uu}\mathbf E_j \in\mathbb R^{24\times24}. \tag{15} \] 모든 rotation row와 column은 exact zero다. Nonzero block unit은 `[F/L]`이다. `K_{p,e}^{ext}`는 일반적으로 nonsymmetric이며 조용히 symmetrize하지 않는다. 특정 closed loaded boundary에서 global assembly가 대칭을 보일 수 있으나 element operator나 solver contract의 가정으로 사용하지 않는다. ### 9.4 Residual and Newton tangent sign FESA nonlinear procedure의 binding convention은 \[ \mathbf r=\mathbf f^{int}-\mathbf f^{ext}, \qquad \mathbf K=\frac{\partial\mathbf r}{\partial\mathbf q} =\mathbf K^{int}-\mathbf K^{ext}, \qquad \mathbf K\Delta\mathbf q=-\mathbf r. \tag{16} \] 따라서 `(14)`–`(15)`는 `f_ext`의 양의 directional derivative이고 residual tangent에는 `-K_ext`로 들어간다. Linear static도 같은 equilibrium sign으로 `r=K_int q-f_ext`다. 이 구분은 pressure force와 tangent에 같은 sign 오류를 넣어 finite difference만 통과하는 common-mode failure를 방지한다. Mass와 damping은 이 static load feature에 없다. ## 10. Mapping, Numerical Integration, and Geometry Validity ### 10.1 Pressure quadrature S4와 S4R source type 모두 pressure force와 pressure tangent에 동일한 tensor-product `2x2` Gauss rule을 사용한다. \[ g=1/\sqrt3, \quad (\xi_q,\eta_q)\in\{(-g,-g),(+g,-g),(+g,+g),(-g,+g)\}, \quad w_q=1. \tag{17} \] Force와 tangent는 반드시 같은 point order와 weight를 사용한다. 실제 계산식은 \[ \mathbf f_{p,i}^{u} =-\lambda p s\sum_{q=1}^{4}w_qN_i(q)\mathbf a_c(q), \tag{18} \] \[ \mathbf K_{p,ij}^{ext,uu} =\lambda p s\sum_{q=1}^{4}w_qN_i(q) \left(N_{j,\xi}(q)[\mathbf g_\eta(q)]_\times -N_{j,\eta}(q)[\mathbf g_\xi(q)]_\times\right). \tag{19} \] Bilinear mapping에서 `a(\xi,\eta)`는 `\xi,\eta`의 affine vector이고, `(18)`과 `(19)`의 각 scalar component는 각 natural coordinate에 대해 차수가 최대 2다. 따라서 `2x2` rule은 이 discrete uniform-pressure force와 그 exact derivative를 적분한다. 이 선택은 work-equivalence, force/tangent consistency와 단순성을 위한 FESA-owned 결정이며 Abaqus S4/S4R 내부 integration과의 동등성을 뜻하지 않는다. ### 10.2 Scale-aware surface validity contract Reference validation에는 `y_i=X_i`, current trial validation에는 `y_i=x_i`를 사용한다. 각 configuration에서 \[ \ell_e=\max_{1\le i\tau_J`여야 한다. 4. Check set `C={(-1,-1),(+1,-1),(+1,+1),(-1,+1)}\cup{four Gauss points}`의 모든 point `z`에서 \[ j_s(z)=\frac{\mathbf a(z)\cdot\bar{\mathbf n}}{\ell_e^2}>\tau_J \tag{21} \] 이어야 한다. 5. Four Gauss points 각각에서 `J_s=\|a\|`, `N_i`, derivatives, force integrand와 nonlinear tangent blocks가 finite여야 한다. Accumulated element vector/matrix도 finite여야 한다. Bilinear surface의 area vector는 natural coordinates에 affine이므로, corner에서 `(21)`의 signed projection이 양수이면 square 내부 전체에서 같은 orientation을 유지한다. Gauss-point checks는 실제 적분 위치의 scale과 finite 값을 추가로 보장한다. Mean cancellation 또는 corner/point sign loss는 fold, local inversion 또는 singular mapping으로 분류해 fail closed한다. Connectivity order는 orientation의 유일한 source이며 geometry validation이 node를 reorder, normal flip 또는 absolute-area repair하지 않는다. `SPOS/SNEG`의 `s`도 step 동안 고정한다. Current normal을 reference global normal과 dot-product 비교하지 않는다. 그러한 비교는 valid large rigid rotation을 inversion으로 잘못 거부한다. Coherent proper rigid rotation은 valid이고, local regularity/orientation loss만 `(20)`–`(21)`로 거부한다. Reference configuration은 analysis 시작 전에 검사한다. Nonlinear current configuration은 매 Newton trial에서 force/tangent 평가 전에 검사한다. 어느 검사든 실패하면 해당 candidate의 pressure contribution, state와 final output을 commit하지 않는다. ## 11. Deterministic Assembly and Failure Contract ### 11.1 Source/facet identity and exact-once semantics - Resolved facet identity는 stable source `(instance, element label, source element type, side)`를 보존한다. S4/S4R은 같은 numerical kernel을 선택해도 source identity에서 합치지 않는다. - 한 named surface 안의 동일 facet membership은 unique inventory에 정확히 한 번 존재한다. 같은 element의 conflicting side/membership은 ambiguity로 fail closed한다. - 각각의 valid `DSLOAD P` source record는 distinct load identity다. 한 surface를 가리키는 여러 valid load record가 있으면 각 record를 source order에서 한 번씩 적용하고 합한다. 서로 다른 load record를 deduplicate하지 않는다. - Local contribution identity는 최소한 `(load source order, resolved facet order, instance, element label, side, local row[, local column])`을 포함한다. Element-local vector와 tangent contribution을 먼저 완성·검증하고, 위 stable identity 순서로 full generalized space에 고정 reduction한다. Parallel producer는 global vector/matrix를 직접 갱신하지 않는다. Full-space assembly가 끝난 뒤에만 stable free/constrained projection을 적용한다. 이 계약은 surface declaration order, thread schedule과 internal index가 physical source identity나 floating reduction order를 바꾸지 않게 한다. ### 11.2 Fail-closed conditions 다음은 pressure contribution 없이 deterministic non-success로 끝나야 한다. - unsupported surface/load/side/element/procedure, unresolved·empty·ambiguous target 또는 incompatible duplicate; - nonfinite `p`, `\lambda`, nodal coordinate, tangent, area vector, integrand, element/global force 또는 tangent; - reference 또는 current geometry가 `(20)`–`(21)`을 위반함; - local/generalized dimension 또는 full-DOF scatter identity 불일치; - stable reduction 결과가 nonfinite임. Input/mapping failure는 file/line/keyword/surface/load/facet source identity를 가능한 범위에서 보존하고, numerical failure는 configuration, load record와 facet identity를 보존한다. Exact diagnostic schema/code는 Stage 5 I/O가 소유하지만 failure category, source order와 atomicity는 여기서 바뀌지 않는다. 실패한 candidate는 accepted state나 정상 final HDF5로 publish하지 않는다. ## 12. Output Recovery 압력 효과는 기존 authoritative HDF5 결과에서만 관측한다. | quantity | location / identity | pressure contract | | --- | --- | --- | | displacement/rotation | nodal, global `[UX,UY,UZ,URX,URY,URZ]` | 기존 accepted frame output; pressure solution effect 포함 | | full residual/reaction | nodal full DOF, stable source node identity | `r=f_int-f_ext`; constrained entry는 reaction, free entry는 equilibrium residual | | global equilibrium | accepted nonlinear factor-one frame, global origin | applied pressure force와 current `X+u` arm을 사용한 applied-plus-reaction force/moment balance | | element force/resultant | 기존 MITC4 element/output locations | internal recovery unchanged; pressure-only row 없음 | | generalized strain/stress | 기존 MITC4 integration point/section locations | material response를 기존 방식으로 복구; pressure dataset/extrapolation 없음 | Pressure generalized vector의 rotational nodal entries는 zero지만 physical global moment는 current/reference force arm으로 계산한다. Origin `O`에 대한 applied pressure moment는 \[ \mathbf M_O^p =\sum_i(\mathbf x_i-\mathbf O)\times\mathbf f_{p,i}^{u} =-\lambda p s\sum_qw_q (\mathbf x_h(q)-\mathbf O)\times\mathbf a(q) \tag{22} \] 이다. Linear check에서는 `x` 대신 `X`, nonlinear accepted equilibrium에서는 current `x`를 사용한다. 별도 pressure nodal moment를 더하지 않는다. External reference disposition은 변경하지 않는다: stored displacement `U1/U2/U3`는 blocking, `UR1/UR2/UR3`는 warning-only, reaction CSV는 review-only, stress CSV는 excluded다. External comparison만 `docs/TOLERANCE.md`를 사용하며 analytical/tangent/geometry tolerance를 대신하지 않는다. ## 13. Algorithm Pseudocode ```text INPUT: approved step load factor lambda, ordered DSLOAD records, ordered unique surface facets, full nodal generalized trial q validate procedure, finite lambda, load records, target identity and side for load_record in stable source order: p = unscaled signed uniform magnitude validate p is finite for facet in stable resolved order: require source type S4 or S4R and side SPOS or SNEG preserve (instance, element label, source type, side) s = +1 for SPOS, -1 for SNEG if linear static: y_i = X_i else if nonlinear static: y_i = X_i + u_i from the current trial evaluate geometry scale and mean oriented area validate reference/current geometry at four corners and four Gauss points initialize f_e[24] = 0 initialize K_ext_e[24,24] = 0 for q in fixed 2x2 Gauss order: evaluate N_i, N_i,xi, N_i,eta evaluate g_xi, g_eta, a = g_xi cross g_eta validate every value and integrand is finite for i = 1..4: f_e.translation(i) += -lambda*p*s*w_q*N_i*a if nonlinear static: for j = 1..4: block = lambda*p*s*w_q*N_i * (N_j,xi*skew(g_eta) - N_j,eta*skew(g_xi)) K_ext_e.translation(i),translation(j) += block require all rotation entries/rows/columns remain exact zero validate f_e and K_ext_e finite emit an element-local contribution with stable load/facet identity stable-reduce all local pressure contributions into full-space f_ext and K_ext combine with other approved loads in stable source order linear: solve existing partitioned linear equilibrium using reference f_ext K_ext_pressure = 0 nonlinear trial: assemble existing MITC4 f_int and K_int r = f_int - f_ext K = K_int - K_ext partition only after full-space assembly solve K_ff * Delta_q_f = -r_f evaluate existing convergence gates on accepted state only: recover displacement, full residual/reaction, global equilibrium, and existing MITC4 results atomically publish existing HDF5 contract ``` ## 14. Verification Identities and Oracles ### 14.1 Analytical and algebraic identities 1. **Partition/Kronecker:** `(6)` must pass exactly up to the Numerical Review-approved arithmetic check tolerance. 2. **Resultant:** consistent assembly gives \[ \sum_i\mathbf f_{p,i}^{u} =-\lambda p s\sum_qw_q\mathbf a_c(q). \tag{23} \] Flat patch에서는 right side가 `-lambda*p*s*A*n`이다. 3. **Moment:** equation `(22)` must hold using the same quadrature and declared origin. 4. **Sign reversal:** `SPOS↔SNEG` 또는 `p↔-p`는 force, tangent와 applied moment의 부호를 각각 정확히 반전한다. 두 번 반전하면 원래 부호다. 5. **Load factor:** fixed geometry에서 `lambda={0,0.5,1}` force/tangent는 각각 exact proportional path를 따른다. Factor는 다른 layer에서 다시 곱하지 않는다. 6. **Rigid motion:** translation/rotation objectivity와 tangent covariance는 §7을 만족한다. 7. **Rotation-only tangent direction:** pressure force가 nodal rotations에 의존하지 않으므로 rotation-only direction `d_theta`에 대해 `K_ext d_theta=0` exactly다. ### 14.2 Directional tangent oracle Nondegenerate distorted current patch, both source types, both sides와 positive/negative pressure에 대해 translation direction `d`를 사용하여 \[ \mathbf d_{FD}(\varepsilon) =\frac{\mathbf f^{ext}(\mathbf u+\varepsilon\mathbf d) -\mathbf f^{ext}(\mathbf u-\varepsilon\mathbf d)}{2\varepsilon} \quad\text{and}\quad \mathbf d_A=\mathbf K^{ext}(\mathbf u)\mathbf d \tag{24} \] 를 비교한다. 두 perturbed geometry 모두 §10.2를 만족해야 한다. `epsilon`, direction scaling, force scale와 norm criterion은 Numerical Review가 dimensionless rule로 확정한다. Residual tangent check는 `(16)`에 따라 `-K_ext d`와 비교한다. ### 14.3 Assembly, solution, and reference oracles - Flat/distorted S4와 S4R patch에서 resultant, moment, reaction, side/sign reversal을 검증한다. - 동일 geometry의 single/multi-element mesh와 shuffled declaration/member order에서 force/moment invariant와 stable reduction/diagnostic order를 검증한다. - Fully constrained patch에서 constrained reaction은 applied pressure와 equal-and-opposite이며, mixed constraint에서는 constrained reaction과 free residual을 분리한다. - Nonlinear accepted factor-one에서 applied-plus-constrained-reaction global force와 moment의 normalized error는 각각 `<=1e-8`이고 accepted free residual은 기존 convergence gate를 통과한다. - Exact stored input/CSV는 current path/name 그대로 read-only로 사용한다. External displacement agreement는 sign, tangent와 equilibrium unit checks를 대체하지 않는다. ## 15. Numerical Risks | risk | formulation consequence / required evidence | | --- | --- | | rigid body modes | Pressure는 support를 만들지 않는다. Unconstrained linear patch의 six rigid-body modes를 regularization으로 숨기지 않는다. | | patch test | Flat/distorted constant-pressure resultant와 moment, mesh subdivision invariant를 검사한다. | | tangent symmetry | Element `K_ext`는 일반적으로 nonsymmetric이다. Symmetrization 금지; full unsymmetric solver path를 유지한다. | | positive definiteness | `K_int-K_ext`는 follower loading에서 positive definite일 필요가 없다. Unsupported fallback/regularization으로 failure를 숨기지 않는다. | | hourglass | Pressure는 S4/S4R 모두 2x2로 적분하므로 pressure under-integration mode를 만들지 않는다. 기존 MITC4 drilling/hourglass 정책은 변경하지 않는다. | | shear locking | Existing MITC4 internal kinematics의 위험이며 pressure interpolation을 바꾸는 이유가 아니다. Thin-shell verification에서 분리 관찰한다. | | volumetric locking | Shell pressure load kernel에는 volumetric constitutive mode가 없어 직접 해당하지 않는다. 기존 material contract를 확장하지 않는다. | | distortion / warpage | Bilinear tangents와 vector area를 pointwise 사용하고 §10.2의 dimensionless check로 fold/collapse를 거부한다. | | singular Jacobian | `J_s`, signed projected area 또는 mean area scale이 threshold를 통과하지 못하면 force/tangent 계산 전에 실패한다. | | sign/common-mode error | Analytical sign/reaction oracle를 tangent finite difference와 함께 사용한다. FD만으로 force+tangent 공통 sign 오류를 승인하지 않는다. | | source duplication/order | Unique facet와 distinct load-record exact-once semantics, stable full-space reduction을 별도로 검사한다. | | nonfinite propagation | 매 geometry/integration/contribution/reduction boundary에서 finite를 확인하고 accepted state/output을 보존한다. | ## 16. Requirement Traceability | requirement | formulation disposition / verification evidence | | --- | --- | | `FESA-REQ-SHELL-PRESSURE-001` | §2, §3 sign/scope; exact syntax mapping은 Stage 5 I/O, formulation은 `DSLOAD`와 `DLOAD`를 분리 | | `FESA-REQ-SHELL-PRESSURE-002` | §3 `p:[F/L^2]`, signed finite scalar; §9 exact-once scaling | | `FESA-REQ-SHELL-PRESSURE-003` | §11 stable unique facet identity/order | | `FESA-REQ-SHELL-PRESSURE-004` | §2 S4/S4R→existing MITC4, source identity retained, only SPOS/SNEG | | `FESA-REQ-SHELL-PRESSURE-005` | equations `(1)`, `(11)` and §14 sign-reversal oracle | | `FESA-REQ-SHELL-PRESSURE-006` | connectivity-positive `a`, side multiplier `s`, fixed orientation rule §10.2 | | `FESA-REQ-SHELL-PRESSURE-007` | equations `(7)`, `(13)`; reference force and zero pressure tangent | | `FESA-REQ-SHELL-PRESSURE-008` | equations `(8)`, `(11)`; current vector area and §7 objectivity | | `FESA-REQ-SHELL-PRESSURE-009` | exact derivative `(9)`–`(15)`, residual sign `(16)`, FD oracle `(24)` | | `FESA-REQ-SHELL-PRESSURE-010` | `lambda` occurs once in `(11)`, `(14)`; proportional oracle §14.1 | | `FESA-REQ-SHELL-PRESSURE-011` | §11 local contribution then stable full-space assembly before projection | | `FESA-REQ-SHELL-PRESSURE-012` | residual/reaction sign `(16)`, §12 recovery and equilibrium oracle | | `FESA-REQ-SHELL-PRESSURE-013` | §11 stable identity, fixed quadrature/reduction/result/diagnostic order | | `FESA-REQ-SHELL-PRESSURE-014` | §2 exclusions and §11.2 unsupported variant fail-closed handoff | | `FESA-REQ-SHELL-PRESSURE-015` | §11 unique resolution, ambiguity/empty/conflicting membership failure | | `FESA-REQ-SHELL-PRESSURE-016` | §10.2 configuration checks and §11.2 procedure/nonfinite/geometry failure | | `FESA-REQ-SHELL-PRESSURE-017` | §11.2 stable diagnostic identity and no failed state/output commit | | `FESA-REQ-SHELL-PRESSURE-018` | §2.2, §12 existing HDF5 authority; no new pressure dataset | | `FESA-REQ-SHELL-PRESSURE-019` | §12 existing nodal/reaction/equilibrium/element result chain | | `FESA-REQ-SHELL-PRESSURE-020` | §14 flat/distorted S4/S4R sign/resultant/reaction/mesh-order suite | | `FESA-REQ-SHELL-PRESSURE-021` | §7 objectivity, `(14)`/`(24)` tangent, §14.3 residual/global balance | | `FESA-REQ-SHELL-PRESSURE-022` | §14.3 exact stored path/name read-only contract retained | | `FESA-REQ-SHELL-PRESSURE-023` | §12 U blocking/UR warning-only and deterministic source mapping retained | | `FESA-REQ-SHELL-PRESSURE-024` | §12 reaction CSV review-only, stress CSV excluded; internal equilibrium remains blocking | Coverage: normative IDs `24`, covered IDs `24`, formulation trace gaps `0`. ## 17. Open Issues and Downstream Handoff ### 17.1 Numerical Review-owned open issues | issue_id | exact decision required | constraint | | --- | --- | --- | | `FORM-NR-01` | §10.2의 single dimensionless `tau_J` 최종 수치 | chord scale `ell_e`, mean/corner/Gauss rules를 유지; `max(1,...)`, absolute floor, clamp 금지 | | `FORM-NR-02` | `(24)`의 dimensionless perturbation scaling, vector norm와 acceptance tolerance | centered FD, valid perturbed geometry와 both force/residual sign checks 유지 | | `FORM-NR-03` | analytical resultant/moment, rigid-motion objectivity와 shape-function arithmetic tolerance | external `docs/TOLERANCE.md`로 대체하지 않고 model scale을 명시 | | `FORM-NR-04` | element/global pressure tangent symmetry evidence 확인 | `(14)`를 기준으로 검토하며 symmetrization 또는 Abaqus internal assumption 도입 금지 | | `FORM-NR-05` | 직접 적용 가능한 public S4/S4R follower benchmark 부재의 evidence disposition | analytical suite와 exact stored case를 사용하고 target을 발명하지 않음 | 이 항목들은 승인 physics, sign, supported scope, HDF5 authority, stored reference disposition 또는 external tolerance를 바꿀 수 없다. Critical user question은 없다. ### 17.2 Handoff evidence Numerical Review Agent는 Coordinator를 통해 다음을 독립 검토해야 한다. - Equation `(11)`의 selected-side/pressure sign과 `(14)`의 skew/cross-product sign; - `r=f_int-f_ext`, `K=K_int-K_ext` residual convention과 nonsymmetric assembly; - S4/S4R 공통 `2x2` quadrature가 force/tangent에 동일하게 쓰이고 discrete integrand를 정확히 적분한다는 polynomial-degree argument; - §10.2의 reference/current dimensionless regularity 및 fold/inversion rule; - resultant, moment, rigid-motion, side/sign, FD tangent, reaction/free residual와 global balance oracle; - 24개 requirement trace와 output/reference disposition. 이 문서는 Numerical Review에 충분한 수학적 계약을 제공하지만 numerical approval을 의미하지 않는다. Parser/I/O schema, C++ API/file ownership, implementation, reference solver execution과 Gate 4 decision은 수행하지 않았다.