6.1 KiB
Linear Static MITC4 Shell Reference Cases
Metadata
- feature_id:
linear-static-mitc4-shell - source_requirement:
docs/requirements/linear-static-mitc4-shell.md - source_io_definition:
docs/io-definitions/linear-static-mitc4-shell-io.md - status:
approved-ready-for-numerical-review - owner_agent:
reference-model-agent - date:
2026-08-12 - artifact_policy:
read-only-existing-files - authoritative_fesa_output:
results.h5
1. Purpose and boundary
This document is the lightweight inventory and comparison contract for the two approved MITC4 reference cases. Abaqus supplies an external displacement reference; it does not define FESA element equations, integration, stabilization, recovery, or implementation structure. FESA and Abaqus are not required to operate identically.
Reference readiness requires only:
- the declared Abaqus
.inpfile and displacement CSV for each case; - the FESA
results.h5generated from that case's.inp; - deterministic source-instance/node/component matching;
- the approved tolerance and decision rule in Section 5.
README, metadata.json, canonical naming, legacy-alias approval, Abaqus version or
generation provenance, duplicated unit/coordinate/model/step/frame/material/section
descriptions, and a CSV schema-version record are not required. If metadata.json
later exists, it is optional read-only context and does not override the declared
input, CSV, row mapping, or tolerance.
2. Read-only case inventory
| case_id | source label | role | exact path | SHA-256 | observed content |
|---|---|---|---|---|---|
shell-s4 |
S4 |
input | reference/shell/shell.inp |
4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF |
TYPE=S4; one linear-static case |
shell-s4 |
S4 |
required reference | reference/shell/shell displacements.csv |
C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B |
49 data rows; U and UR components |
shell-s4r |
S4R |
input | reference/shellR/shellR.inp |
1325940FB42B78961CF25E84379BF2693846FAD22473E7688AC5456B37B18CB4 |
TYPE=S4R; one linear-static case |
shell-s4r |
S4R |
required reference | reference/shellR/shellR displacements.csv |
8887ACC5ED007CB97583A9FDC1150B48B9297E269A5BA8EBA6C1A5F6306E98CB |
49 data rows; U and UR components |
The existing reaction and stress CSVs in both directories are optional inspection evidence only. They are not pass/fail inputs. No agent may rename, rewrite, normalize, repair, regenerate, or restore any reference artifact unless a later phase explicitly authorizes that operation.
3. Required CSV mapping
Trim surrounding whitespace from header names, then apply this exact projection:
| Abaqus CSV column | normalized identity/value | FESA HDF5 source |
|---|---|---|
Part Instance Name |
instance_name |
/model/nodes.instance_name |
Node Label |
source_node_label |
/model/nodes.source_label |
U-U1 |
U1 |
/steps/Step-1/frames/0/nodal/displacement[:,0] (UX) |
U-U2 |
U2 |
/steps/Step-1/frames/0/nodal/displacement[:,1] (UY) |
U-U3 |
U3 |
/steps/Step-1/frames/0/nodal/displacement[:,2] (UZ) |
UR-UR1 |
UR1 |
/steps/Step-1/frames/0/nodal/displacement[:,3] (URX) |
UR-UR2 |
UR2 |
/steps/Step-1/frames/0/nodal/displacement[:,4] (URY) |
UR-UR3 |
UR3 |
/steps/Step-1/frames/0/nodal/displacement[:,5] (URZ) |
The normalized row key is
(case_id,instance_name,source_node_label,component). Stable comparison order is
case order shell-s4, shell-s4r; then FESA instance declaration order; stable
source-node order; and component order [U1,U2,U3,UR1,UR2,UR3].
4. Precheck
Before numerical comparison, each case shall satisfy all of the following:
- The declared input, displacement CSV, and FESA
results.h5exist. - The six required displacement headers map exactly as Section 3 specifies.
- Each required CSV and HDF5 value is finite.
- Each normalized row key is unique.
- CSV and HDF5 normalized row-key sets are exactly equal.
Missing, extra, duplicate, nonfinite, header-mismatched, or source-identity-mismatched required rows fail reference verification before tolerance evaluation. Values are not zero-clamped and mismatched rows are not omitted, averaged, or synthesized.
5. Tolerance and decision rule
For each case and component c independently, using only finite Abaqus rows:
reference_scale_c = max(abs(abaqus_value_i))
tolerance_c = 1e-9 + 1e-6 * reference_scale_c
absolute_error_i = abs(fesa_value_i - abaqus_value_i)
The 1e-9 floor is expressed in the model's user-consistent length unit for
U1/U2/U3 and is dimensionless for UR1/UR2/UR3. A zero reference scale leaves only
the absolute floor; no alternate denominator is introduced.
- Every matched
U1/U2/U3row must satisfyabsolute_error_i <= tolerance_c. Any U exceedance fails that case and the feature reference comparison. UR1/UR2/UR3uses the same formula. Every exceedance produces a deterministic warning containing the case, source row, component, error, and tolerance, but does not change pass/fail.
The comparison report records every U/UR row decision, maximum absolute error, component-scale normalized error, RMS error, vector-norm error, worst source row/component, and every UR warning.
6. Coverage and handoff
The two cases are the complete required reference inventory for this feature:
shell-s4proves the approvedS4 -> FESA-MITC4input path against Abaqus U;shell-s4rproves the approvedS4R -> FESA-MITC4input path against Abaqus U.
They do not prove Abaqus formulation equivalence or general MITC4 accuracy outside
the modeled cases. Additional flat/thin/thick/distorted/curved models, mesh studies,
drilling sweeps, drilling-energy criteria, NR-O03, and NR-O04 are not required
before Implementation Planning or feature completion.
Numerical Review may use this inventory as downstream comparison input, but missing bundle-administration data shall not change a mathematically consistent formulation verdict. Implementation Planning remains unauthorized until the revised Numerical Review explicitly passes the formulation for planning.