Files
FESADev/docs/shell-surface-pressure-load/physics-evaluation.md
T

104 lines
11 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 물리 평가
## 1. Metadata
- feature_id: `shell-surface-pressure-load`
- source reference comparison report: `docs/shell-surface-pressure-load/reference-comparison.md`
- source reference model: `docs/shell-surface-pressure-load/reference-model.md`
- status: `pass-for-release-agent`
- owner_agent: `physics-evaluation-agent`
- date: `2026-09-01`
- evaluated commit: `1eb4dce885175b78b8229b095f14cac102ea93df`
이 판정은 승인된 물리 기대와 기존 Gate 6 evidence에 한정한다. Abaqus 내부 formulation,
integration, stabilization 또는 result recovery와의 동등성을 주장하지 않으며 release
readiness를 승인하지 않는다.
## 2. Input Evidence
### 2.1 Gate와 artifact
`reference-comparison.md`는 명시적으로 `pass-for-physics-evaluation` handoff를 권고하고,
blocking `U1/U2/U3` 2,187/2,187 rows와 warning-only `UR1/UR2/UR3` 2,187/2,187 rows가
모두 통과했음을 기록한다. Physics Gate는 그 tolerance 판정을 재승인하지 않고, 통과한
비교 결과를 물리 plausibility의 선행 조건으로만 사용했다.
| evidence | exact path / identity | read-only 확인 |
| --- | --- | --- |
| solver HDF5 | `.harness/build/reference/shell-surface-pressure-load/shellNL-meshfine-pressure_results.h5` | schema `1`, 10 accepted frames, unique factor-one frame `9` / increment `10`; SHA-256 `74f35e3e59edd05460733b1d6367994c7f4a1e847b366f2efad6fbecc03796f3` |
| nonlinear log | `.harness/build/reference/shell-surface-pressure-load/shellNL-meshfine-pressure_log.txt` | factor-one iteration `3`: `combined_pass=1`, `transition=accepted`; SHA-256 `8555ff365dcf1f066813d0cce6440c3d56c9840baf8246696daa7b2e7b0061a1` |
| required input | `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure.inp` | 56,665 bytes, SHA-256 `53718ccc9b41c23fcc1b509a51d66f1347e87aca43a74f1d6cec4d2085f4b90e` |
| required Abaqus CSV | `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure displacements.csv` | 729 finite wide rows; SHA-256 `2fe53f98eac9f04779100721c3edf8049eb1dbfe733ebcbd819aeeed03b81198` |
| optional Abaqus CSV | `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure reactions.csv` | `review-only`; SHA-256 `a2347f4e88e4b73c75abe7c23e96bcc696c16c1975e2440b3ad9bf7ecda5f2b6` |
| excluded Abaqus CSV | `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure stresses.csv` | `excluded`; SHA-256 `bc06f3324cc5d6655ded2939b3e1cb9d55a0359fa0d272a6958399464218a128` |
| test record | `.harness/build/Testing/Temporary/LastTest.log` | existing automatic Stop evidence에서 full CTest `362/362 PASS`; 관련 physics test의 개별 pass 기록 확인 |
| optional FESA debug CSV views | 없음 | 요구되거나 생성된 debug CSV가 없으며 official output으로 사용하지 않음 |
확인한 authoritative quantities는 factor-one global nodal displacement, generalized external/
internal force, generalized residual, constrained reaction, global equilibrium, physical strain
energy, 기존 MITC4 generalized strain/section resultant/stress다. Model purpose는 729-node,
676-element `S4` square shell의 `SPOS`, positive `P=1e6`, `NLGEOM=YES` current-surface follower
pressure response를 end-to-end로 확인하고, stored case가 직접 포함하지 않는 sign, S4R,
linear, objectivity와 tangent 경계를 승인 internal tests로 보완하는 것이다.
## 3. Physics Checks
| physics check | status | evidence와 판정 |
| --- | --- | --- |
| global equilibrium | `pass` | Factor-one applied force sum은 `[8.626e-12, -7.311e-12, -1.0000000000000016e8]`이고 constrained reaction force sum은 `[-5.047e-6, -3.331e-6, 9.999999999999714e7]`이다. HDF5 stored balance를 approved current-arm scales로 다시 normalize하면 force `6.758e-14`, moment `3.725e-14`로 둘 다 `<=1e-8`이다. |
| reaction consistency | `pass` | Constrained DOF에서 `/nodal/reaction`과 `generalized_residual`은 exact 일치했다. Pressure resultant의 `-Z` `1.0e8`에 대해 masked constrained reaction은 `+Z` `9.999999999999714e7`이며, tiny `X/Y`와 moment remainder는 위 global balance gate 안이다. |
| displacement direction | `pass` | Reference connectivity의 `SPOS` vector area는 `+Z`, positive pressure resultant는 `-Z`다. Factor-one HDF5의 729개 `UZ`는 모두 nonpositive이며 625개 free nodes는 negative, 104개 constrained boundary nodes는 exact zero다. Center node의 `UZ=-5.514459701328648e-3`로 load 방향과 deformation mode가 일치한다. |
| pressure sign, resultant, and moment | `pass` | Current configuration의 quadrature vector-area oracle은 expected force `[-1.723e-12, 2.450e-11, -1.0000000000000025e8]`를 주며 HDF5 applied resultant와의 normalized error는 `8.94e-16`이다. Current-arm applied moment oracle error는 승인 `M_Sigma` 기준 `1.32e-16`이다. Existing `ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment`와 `ReversesExactlyForSposSnegAndNegativeMagnitude`도 full CTest 기록에서 pass했다. |
| symmetry and expected zero | `pass` | Feature-blocking exact-zero contract인 pressure generalized external rotational entries는 factor-one HDF5에서 exact zero다. Zero pressure/factor geometry validation test도 pass했다. Stored square patch의 mirror symmetry는 보조 sanity로만 확인했으며 `UX/UY/UZ` mirror mismatch의 최대 절대값은 `1.63e-16`, `1.09e-16`, `8.89e-17` 이하다. 별도 외부 symmetry tolerance를 만들지 않았다. |
| nonlinear follower objectivity and current-area behavior | `pass` | HDF5 resultant는 factor-one current `X+u` vector-area oracle과 위 roundoff 수준으로 일치했다. Current scalar area/reference scalar area ratio는 `1.0000006316335197`로 finite하다. Stored symmetric case만으로 reference/current path를 분리하지 않고, existing tests `UsesCurrentAreaAndNormalForFollowerForce`, `IsTranslationAndRigidRotationObjective`, `IsObjectiveUnderRigidMotionAndTracksCurrentArea`, `MatchesCenteredFiniteDifferenceForForceAndResidualSigns`의 pass evidence로 rigid rotation covariance, `gamma=1.25` area/resultant scaling, follower direction과 external tangent sign을 보완했다. |
| element force balance | `not-separately-applicable` | 이 feature는 pressure-only element force row나 element end-action balance contract를 정의하지 않는다. 대신 HDF5에서 `generalized_internal_force - generalized_external_force - generalized_residual`은 element assembly 이후 nodal full space에서 exact zero이고 global resultant/moment gate가 pass했다. Existing MITC4 section resultants는 finite이며 별도 pressure comparator를 만들지 않았다. |
| stress/strain | `pass-sanity-only` | Factor-one `generalized_strain`, `section_resultant`, `stress`의 component names, units, `shell-local` coordinate system과 `midsurface`/`section-position` location은 `io.md`와 일치하고 모든 값이 finite다. 관측 range는 strain `[-9.842e-4, 1.801e-3]`, section resultant `[-4.595e6, 8.646e6]`, stress `[-1.036e8, 1.039e8]`이다. Feature-specific stress sign/reference expectation은 없고 stress CSV는 `excluded`이므로 그 이상의 pass를 주장하지 않는다. |
| rigid body mode | `pass-no-symptom` | Stored case는 104 boundary nodes의 DOF 1–6을 구속하고 625 interior nodes가 자유다. 모든 accepted frame이 finite하게 수렴했고 factor-one maximum translation은 `5.514e-3`로 10-unit span 대비 `5.514e-4`이며 unbounded translation, near-zero-stiffness 또는 impossible displacement 증상이 없다. Pressure가 support를 제공한다는 주장은 하지 않는다. |
| energy/residual | `pass` | 모든 HDF5 numeric dataset과 required U/UR rows는 finite다. Factor-one free translation residual은 `9.06582420157065e-6 / 1.47929199940215e5 = 6.12849e-11 <=1e-2`; zero-external-scale rotation residual은 `1.3758908607997e-6 <=1e-3`이다. Existing `PHYSICAL_STRAIN_ENERGY=86418.04713575779`는 finite positive 보조 evidence이며 pressure-only energy gate로 사용하지 않았다. HDF5 diagnostics는 result-neutral ignored-keyword warning 4개뿐이고 error/nonfinite diagnostic은 없다. |
| model coverage | `pass` | Stored case의 declared inventory `729 nodes / 676 S4 / SPOS / positive P / NLGEOM=YES`와 unique factor-one frame이 모두 확인됐다. Stored case가 직접 다루지 않는 `S4R`, `SNEG`, negative/zero magnitude, linear reference configuration, exact resultant/moment, current-area objectivity와 tangent는 Numerical Review가 지정한 internal portfolio에서 해당 named tests가 pass했다. 승인 범위 밖의 추가 reference portfolio는 요구하지 않는다. |
## 4. Failure Classification
- failure classification: `none`
- 다음 분류는 발생하지 않았다: `equilibrium-failure`, `reaction-inconsistency`,
`displacement-direction-failure`, `symmetry-failure`, `stress-location-failure`,
`element-force-inconsistency`, `rigid-body-mode-suspected`, `nonfinite-result`,
`model-coverage-gap`, `upstream-contract`, `environment`.
`element force balance`의 `not-separately-applicable`과 stress의 `pass-sanity-only`는 upstream
contract가 의도적으로 pressure-only element/stress acceptance family를 만들지 않은 데 따른
범위 표시이며 failure 또는 evidence gap이 아니다.
## 5. Evaluation Verdict
**Verdict: `pass-for-release-agent`.**
문서화된 pressure 방향/부호, resultant/moment, reaction/equilibrium, exact-zero와 보조 symmetry,
nonlinear follower objectivity/current-area, residual/nonfinite 및 declared model coverage가 모두
물리적으로 일관된다. Release Agent가 release readiness를 별도로 audit할 수 있다. 이 verdict는
release approval, publish 권한 또는 reference tolerance의 재승인이 아니다.
## 6. Handoff Recommendation
- handoff target: `Release Agent`
- route: 항상 `Coordinator Agent`를 통해 전달
- recommendation: Gate 8은 requirements-to-physics traceability, known limitations와 release
evidence를 독립 audit한다. Physics Evaluation Agent는 Gate 8을 시작하거나 승인하지 않는다.
## 7. No-Change Assertion
이 평가에서 source, header, test, CMake, Harness, phase files, `coordination.md`, upstream feature
contracts, implementation reports, reference input/CSV artifacts, `results.h5`, nonlinear log,
`docs/TOLERANCE.md`와 tolerance policy를 수정하지 않았다. 생성한 파일은
`docs/shell-surface-pressure-load/physics-evaluation.md` 하나뿐이다.
## 8. Open Issues
- missing physical expectations: 없음.
- incomplete model coverage: 없음. Stored-case 한계는 승인 internal tests로 보완되며 추가
reference case는 계약상 요구되지 않는다.
- contradictory sign conventions: 없음.
- unavailable energy/residual evidence: 없음. Existing energy와 residual HDF5/log evidence를
사용했으며 새 pressure-only energy quantity는 요구되지 않는다.
- blockers: 없음.