docs: add shell pressure feature workflow

This commit is contained in:
KOKO\Mimi
2026-09-01 02:34:04 +09:00
parent c54a528709
commit 2d071069b9
17 changed files with 4835 additions and 1 deletions
@@ -0,0 +1,254 @@
# 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.