Files
FESADev/docs/shell-surface-pressure-load/numerical-review.md
T
2026-09-01 02:34:04 +09:00

255 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.