Files
FESADev/docs/linear-static-mitc4-shell/physics-evaluation.md
T
2026-08-15 03:14:34 +09:00

332 lines
19 KiB
Markdown

# Linear Static MITC4 Shell Physics Evaluation Report
## Metadata
- feature_id: `linear-static-mitc4-shell`
- model_id: `shell-s4`
- evaluated_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- source_build_test_report:
`docs/linear-static-mitc4-shell/build-test.md`
- source_reference_verification_report:
`docs/linear-static-mitc4-shell/reference-comparison.md`
- source_reference_model:
`docs/linear-static-mitc4-shell/reference-model.md`
- source_requirement: `docs/linear-static-mitc4-shell/requirements.md`
- source_formulation: `docs/linear-static-mitc4-shell/formulation.md`
- source_numerical_review:
`docs/linear-static-mitc4-shell/numerical-review.md`
- source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- status: `pass-for-release-agent`
- owner_agent: `physics-evaluation-agent`
- date: `2026-08-13`
This verdict means that the documented physical checks pass and the Release Agent
may audit release readiness. It does not approve release readiness, re-approve the
reference comparison, or change its tolerance decision.
## Input Evidence
The prerequisite reference-verification report has status
`pass-for-physics-evaluation`. The existing S4 reference-test route was rebuilt and
executed to regenerate fresh FESA evidence. Abaqus and other reference solvers were
not executed.
| evidence | exact path or identity | status | notes |
| --- | --- | --- | --- |
| build/test report | `docs/linear-static-mitc4-shell/build-test.md` | `pass-for-reference-verification` | Clean MSVC x64 Debug build, focused `87/87`, lifecycle `10/10`, reference `8/8`, and full `144/144` CTest passed. |
| reference verification | `docs/linear-static-mitc4-shell/reference-comparison.md` | `pass-for-physics-evaluation` | Required prerequisite satisfied; 147/147 blocking U rows passed and no UR warning was emitted. |
| solver HDF5 | `.harness/build/reference/mitc4-shell-s4-comparison/results.h5` | present and readable | Freshly generated, 95,024 bytes; observed raw SHA-256 `E102D80E82BA133EBDF1C5532F3A0A4FE9984AB6CC36D00264399F7308D9230F` (inventory only). |
| comparison ledger | `.harness/build/reference/mitc4-shell-s4-comparison/comparison.json` | present and passing | 94,349 bytes; SHA-256 `8E8DEA51B6F7C663BACC41FDA6103A4596DB26E02F1EAD6069D458F51E0102E6`; `passed=true`. |
| declared S4 input | `reference/shell/shell.inp` | present, unchanged, read-only | SHA-256 `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF`. |
| declared displacement CSV | `reference/shell/shell displacements.csv` | present, unchanged, read-only | SHA-256 `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B`. |
| optional Abaqus reaction/stress CSVs | `reference/shell/shell reactions.csv`, `reference/shell/shell stresses.csv` | not used as equality gates | Their presence did not expand the approved U-only blocking boundary. |
| solver CSV views | N/A | not generated | HDF5 was inspected directly. |
| fresh S4 route | `.harness/build`, MSVC x64 Debug | pass | `Mitc4S4Reference.*` passed `2/2`. |
The HDF5 contains 49 nodes, 36 source-`S4` elements, internal formulation
`FESA-MITC4`, and the required full `2 x 2 x 2` result inventory. All inspected
numeric model and result values were finite. The diagnostics dataset contains four
approved warning rows for ignored `PREPRINT`, `RESTART`, and `OUTPUT` keywords and
no error diagnostic.
Raw HDF5 bytes are not a physics decision identity and may change across valid
regenerations. The projected values and deterministic comparison ledger are the
relevant evidence.
### Documented model expectation
The reference input is a flat `10 x 10`, thickness `0.5`, homogeneous isotropic
square plate with `E=2.1e11` and `nu=0.3`. Its 24 perimeter nodes are fully clamped
in all six global DOFs, and center node 2 at the global origin carries one
`F3=-100000` concentrated force. The geometry, boundary, material, and load are
symmetric about both global `x=0` and `y=0` planes.
The documented physical expectations are therefore:
- total constrained reaction force opposes the applied `-Z` force;
- total force and moment about the global origin balance within the approved
normalized `1e-10` limit;
- perimeter displacements are zero and the interior deflects in `-Z`, with the
largest magnitude at the center;
- the displacement and rotation field obeys the polar/axial-vector reflection
parity about both symmetry planes;
- a linear, flat transverse plate response has no membrane strain/resultant or
middle-surface in-plane stress, while bottom and top in-plane stresses reverse;
- stored physical strain energy is finite, strictly positive, and consistent with
the recovered generalized fields and `0.5 F^T d`;
- free residual, finite results, rank/rigid-mode evidence, and the approved
one-case coverage show no rigid-body or unsupported-mode symptom.
## Physics Checks
| check | documented expectation | observed evidence | verdict | classification |
| --- | --- | --- | --- | --- |
| global equilibrium | Applied plus constrained reaction force/moment about origin; normalized metrics `<=1e-10` | force residual `[0,0,-1.12049747258425e-9]`; moment residual `[6.45741238258779e-10,-2.63753463514149e-10,0]`; normalized force/moment `1.12049747258425e-14` / `2.35981341581908e-15` | pass | N/A |
| reaction consistency | Perimeter-only reactions from full residual oppose `F3=-100000`; constrained motion is zero | summed constrained force `[0,0,99999.9999999989]`; constrained displacement exactly zero | pass | N/A |
| displacement direction | Interior bends in `-Z`; center is maximum; no in-plane or drilling leakage | center `U3=-2.35504417650849e-5`; all 25 free-node U3 values nonpositive; `U1/U2/UR3` exactly zero | pass | N/A |
| symmetry | Correct polar/axial reflection parity about `x=0` and `y=0` | max absolute reflection mismatch `4.27126230127111e-20` / `2.29087480670778e-20` | pass | N/A |
| element force balance | No documented direct element-end-action output exists for shell GP resultants | Global assembled residual/equilibrium passed; direct element-end-action balance is skipped rather than inferred from mismatched locations | skipped | N/A |
| recovered resultant consistency | `N=A*epsilon0`, `M=D*kappa`, `Q=As*gamma0` at each of 144 GP rows | absolute L2 residual `9.9301874551584e-12`; normalized L2 `5.56240926027087e-17` | pass | N/A |
| stress/location/sign sanity | Local `[S11,S22,S12]` at bottom/middle/top; middle zero and faces reverse for this linear flat bending field | absolute L2 constitutive residual `1.29488994752188e-9`; normalized `3.05323934859307e-16`; middle stress exactly zero; face reversal exact | pass | N/A |
| rigid body/nonfinite | Complete constraints, finite solution, acceptable residual, no abnormal uncontrolled mode | zero nonfinite values; `FREE_RESIDUAL_NORMALIZED=1.07747756058988e-14`; rank/rigid-mode tests passed upstream | pass | N/A |
| physical energy | Positive and consistent physical-only energy; no drilling-energy gate | `1.17752208825422`; independently recovered value identical to relative `1.88569375589575e-16`; `0.5F^Td=1.17752208825424` | pass | N/A |
| model coverage | Approved sole S4 case plus declared invariant/patch/common-path portfolio | S4 case covers end-to-end symmetric plate response; focused build/test portfolio passed; expanded models are explicitly nonblocking | pass | N/A |
### 1. Global force and moment equilibrium
The reaction dataset is the assembled full residual `K*d-F`. Applying the
constraint mask gives
```text
sum constrained RF = [0, 0, 99999.9999999989]
sum applied F = [0, 0, -100000]
force residual = [0, 0, -1.12049747258425e-9]
```
The load acts at the global origin and therefore contributes no origin moment.
The constrained force and moment rows give
```text
moment residual = [ 6.45741238258779e-10,
-2.63753463514149e-10,
0 ]
```
These independently reconstructed values match the stored HDF5 equilibrium vector
exactly. The serialized normalized metrics are:
| metric | value | threshold | result |
| --- | ---: | ---: | --- |
| `FREE_RESIDUAL_NORMALIZED` | `1.07747756058988e-14` | `1.0e-10` | pass |
| `FORCE_BALANCE_NORMALIZED` | `1.12049747258425e-14` | `1.0e-10` | pass |
| `MOMENT_BALANCE_NORMALIZED` | `2.35981341581908e-15` | `1.0e-10` | pass |
### 2. Reaction consistency and constrained/free meaning
The 24 perimeter nodes provide 144 constrained DOFs; the remaining 150 DOFs are
free. The HDF5 constraint mask agrees with the input set exactly, all prescribed
values are zero, and the maximum constrained displacement is exactly zero.
The total positive `RF3=99999.9999999989` opposes the center `F3=-100000`. The
nearly zero total `RF1/RF2` and origin `RM1/RM2/RM3` are required by the centered
load and double symmetry. The largest raw free residual component is
`7.62156560085714e-10`; because translational and rotational entries have different
dimensions, the decision uses the documented normalized metric rather than this
raw maximum. The normalized free residual passes by more than three orders of
magnitude.
### 3. Displacement direction and deformation mode
Center node 2 has
```text
[U1,U2,U3,UR1,UR2,UR3]
= [0, 0, -2.35504417650849e-5, 0, 0, 0]
```
Every free-node `U3` is nonpositive, the center is the maximum-magnitude
translation, and every clamped boundary displacement is zero. Across the complete
model, maximum absolute `U1`, `U2`, and `UR3` are exactly zero. Maximum absolute
`UR1` and `UR2` are `7.55060026636931e-6` and
`7.55060026636933e-6`, respectively. This is the expected symmetric plate-bending
mode under a negative transverse center load, with no in-plane or drilling
deformation leakage.
### 4. Reflection symmetry and expected zeros
For reflection through `x=0`, polar displacement components transform as
`[-U1,+U2,+U3]`, while the axial rotation vector transforms as
`[+UR1,-UR2,-UR3]`. Reflection through `y=0` similarly uses
`[+U1,-U2,+U3,-UR1,+UR2,-UR3]`.
All 294 scalar nodal component comparisons per reflection were paired by source
coordinates. The maximum absolute mismatch was `4.27126230127111e-20` for the
`x` reflection and `2.29087480670778e-20` for the `y` reflection. The equality
evidence is numerical roundoff, not a new acceptance tolerance.
### 5. Shell generalized resultants and physical work signs
At every one of 36 elements times four midsurface Gauss locations, an independent
constitutive reconstruction applied the documented centered-section identities:
```text
N = A * epsilon0
M = D * kappa
Q = As * gamma0
```
The complete 1,152-component resultant comparison has absolute L2 residual
`9.9301874551584e-12` and normalized L2 residual
`5.56240926027087e-17`. All membrane strains and `N` resultants are exactly zero,
as required for this linear flat plate bending response.
The generalized work density `generalized_strain dot section_resultant` is strictly
positive at all 144 locations: minimum `4.46321446508071e-4`, maximum
`1.27059464107458e-1`, negative count `0`. This supports the physical sign and
component-order interpretation.
The shell contract does not expose element-end nodal actions and explicitly forbids
averaging mismatched result locations. Consequently a separate GP-to-element-end
force-balance assertion is not documented and is marked `skipped`; the assembled
global residual and equilibrium checks provide the required force-balance evidence.
### 6. Stress component, location, and sign sanity
HDF5 stores local in-plane `[S11,S22,S12]` directly at each GP and ordered section
positions `BOTTOM(-1), MIDDLE(0), TOP(+1)`. Independent reconstruction used
`Cps*(epsilon0+z*kappa)` at all 432 section locations. The absolute L2 residual is
`1.29488994752188e-9`, or normalized `3.05323934859307e-16`, against a maximum
absolute stored stress of `313250.779137971`.
All middle-surface in-plane stresses are exactly zero. For every component and GP,
bottom and top stresses are equal in magnitude and opposite in sign. This is the
documented curvature/stress-location convention for a centered homogeneous section.
No `S33`, `S13`, `S23`, nodal stress, or Abaqus stress equality was inferred.
### 7. Physical energy, residual, and rigid-body symptoms
The stored `PHYSICAL_STRAIN_ENERGY` is finite and positive:
```text
HDF5 physical energy = 1.17752208825422
independent GP generalized energy = 1.17752208825422
0.5 * F^T * d = 1.17752208825424
```
The HDF5-versus-recovered normalized difference is
`1.88569375589575e-16`; the final fresh HDF5-versus-external-work normalized
difference is `9.14561471609432e-15`. The HDF5 value excludes numerical drilling stabilization,
as required. No drilling-energy ratio, calibration, or warning criterion was
introduced.
The solution is finite, the full perimeter support is enforced, the expected
deformation mode is smooth and symmetric, all three normalized verification
metrics pass `1e-10`, and the build/test evidence passes six-rigid-mode,
stabilized-rank, non-rigid positive-energy, and pure-drill separation tests. No
rigid-body, singular, nonfinite, or abnormal-mode symptom is present.
### 8. Approved model coverage
The sole approved reference model provides end-to-end evidence for the
full-integration `S4 -> FESA-MITC4` path, a nonzero transverse bending response,
fully constrained reaction recovery, global force/moment balance, two-axis
symmetry, physical energy, and shell result recovery.
The prerequisite focused `87/87` build/test portfolio supplies the documented
complementary element evidence: membrane, bending, transverse-shear and twist patch
fields; six physical rigid modes; expected physical/stabilized rank; frame and
energy invariance; fixed numerical drilling and physical-recovery separation; and
S4/S4R common-kernel/source-metadata behavior. The reference verification supplies
the approved external displacement comparison.
This is the complete approved coverage for the feature. Pinched-cylinder,
hemisphere, Scordelis-Lo, locking/convergence sequences, drilling calibration,
expanded distorted/curved portfolios, and `NR-O01` through `NR-O04` are explicitly
nonblocking or out of scope and were not invented as new physics gates.
## Execution Evidence
| order | exact command or read-only operation | exit code | result |
| ---: | --- | ---: | --- |
| 1 | `cmake --build .harness/build --config Debug --target fesa_reference_tests` | `0` | Existing S4 reference route rebuilt. |
| 2 | `ctest --test-dir .harness/build -C Debug -R '^Mitc4S4Reference\.' --output-on-failure` | `0` | Fresh S4 tests `2/2` passed; FESA HDF5 and ledger regenerated. |
| 3 | `h5dump.exe -n .harness/build/reference/mitc4-shell-s4-comparison/results.h5` with HDF5/oneAPI runtime on `PATH` | `0` | Required HDF5 inventory inspected read-only. |
| 4 | `h5dump.exe -y -w 0 -m '%.17g' -d <dataset> .harness/build/reference/mitc4-shell-s4-comparison/results.h5` for model nodes/elements/mask/prescribed values, nodal U/R, shell frames/strain/resultant/stress, energy/equilibrium/metrics/diagnostics | `0` | High-precision read-only numerical audit supplied all reported values. |
| 5 | PowerShell independent input/mask, reaction/equilibrium, reflection, constitutive recovery, stress-location, energy, finite, and diagnostics audit over the `h5dump` values | `0` | All documented physics assertions passed. |
| 6 | `cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_reference_tests`, then `ctest --test-dir .harness/build -C Debug -R 'Mitc4Shell(Kernel|Patch|Drilling|PhysicalRecovery)|ResultRecovery\..*Shell|Mitc4S4Reference' --output-on-failure` | `0` | Final focused verification passed `17/17`; the regenerated ledger retained `passed=true`, 294 rows, and zero warnings. |
Three intermediate audit-helper incidents were diagnostic-only and did not alter
the product or verdict: a compound-record regular expression initially omitted the
last node, a PowerShell array-expression initially bound subtraction to an array,
and a final optional `h5ls` operand-order probe exited `1`. The root causes were
confirmed as audit-command/parser usage, while successful high-precision HDF5
inspection established 49/49 nodes and the complete evidence above. They are not
solver, HDF5-schema, reference, or physics failures.
## Failure Classification
- classification: `N/A`
- primary_failure: `N/A`
- evidence: all documented force/moment equilibrium, reaction, displacement,
symmetry, recovery, stress-location, physical-energy, residual, finite-result,
rigid-mode and approved coverage checks passed
- correction_handoff: `N/A`
- non_gating_incident: resolved read-only audit helper parsing/usage errors only
## Evaluation Verdict
- verdict: `pass-for-release-agent`
- reason: the prerequisite reference status is valid and fresh FESA S4 evidence
satisfies every documented physical expectation under its approved threshold;
no implementation, formulation, I/O, model-coverage, nonfinite, rigid-body, or
environment failure remains
- release_approval: `not granted by this report`
- reference_reapproval: `not performed by this report`
## Handoff Recommendation
| target_agent | reason | required_input |
| --- | --- | --- |
| Release Agent | All documented MITC4 physics checks passed. | This report, the build/test and reference-verification reports, the fresh build-local HDF5/comparison evidence, and the nonblocking limitations below. |
## No-Change Assertion
- source_files_modified: `false`
- test_files_modified: `false`
- cmake_files_modified: `false`
- requirements_modified: `false`
- formulation_modified: `false`
- numerical_review_modified: `false`
- io_contract_modified: `false`
- reference_model_contract_modified: `false`
- build_test_report_modified: `false`
- reference_verification_report_modified: `false`
- phase_files_modified: `false`
- tolerance_policies_modified: `false`
- reference_artifacts_modified: `false`
- Abaqus_or_other_reference_solver_executed: `false`
- owned_report_created: `true`
- generated_build_local_evidence: `true`, ignored under `.harness/build/`
- pre_existing_untracked_build_test_report_preserved: `true`
- pre_existing_untracked_reference_verification_report_preserved: `true`
## Open Issues
- Nonblocking coverage limitation: the approved external reference inventory is one
flat, symmetric, fully clamped S4 plate. The approved analytical/unit portfolio
supplies membrane, shear, twist, rigid-mode, rank, drilling-separation and S4R
common-path evidence. No broader Abaqus or benchmark portfolio is claimed.
- Known original-MITC4 limitations remain: transverse-shear locking is mitigated by
the tying field, but distorted-curved membrane locking and broader thin/thick mesh
convergence are not characterized by this release gate.
- Source `S4R` maps to the same full-integration FESA kernel and is not compared to
the optional Abaqus S4R artifacts. This is an approved boundary, not missing
physics evidence.
- The fixed numerical drilling stiffness is not a physical stress/resultant/energy
channel. No drilling calibration, coefficient sweep, energy-ratio gate, or
director-parallel moment support is claimed.
- Geometrically nonlinear execution remains outside the current feature even though
future-only residual/tangent equations are documented. No nonlinear release claim
is made.
- No open issue blocks Release Agent review.