381 lines
30 KiB
Markdown
381 lines
30 KiB
Markdown
# Linear Static 3D Euler Beam Reference Models
|
|
|
|
## Metadata
|
|
|
|
- feature_id: `linear-static-3d-euler-beam`
|
|
- source_requirement: `docs/linear-static-3d-euler-beam/requirements.md`
|
|
- source_research: `docs/linear-static-3d-euler-beam/research.md`
|
|
- source_formulation: `docs/linear-static-3d-euler-beam/formulation.md`
|
|
- source_numerical_review: `docs/linear-static-3d-euler-beam/numerical-review.md`
|
|
- source_io_definition: `docs/linear-static-3d-euler-beam/io.md`
|
|
- approved_design: `docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
|
- status: `ready-for-implementation-planning`
|
|
- owner_agent: `reference-model-agent`
|
|
- date: `2026-08-09`
|
|
- amended_on: `2026-08-18`
|
|
- approved_reference_model: `cantilever-beam-b33`
|
|
- approved_reference_identity: direct source-node and element-endpoint rows
|
|
- reference_baseline: exact current files under `reference/cantilever beam/`
|
|
|
|
이 문서는 구현 전에 필요한 code verification, analytical solution verification 및
|
|
approved B33 reference comparison의 모델·artifact 계약을 정의한다. 이 status는 모델과
|
|
테스트를 구현 계획으로 넘길 준비가 되었다는 뜻일 뿐, FESA 결과 비교, physics sanity,
|
|
release readiness 또는 Abaqus full compatibility의 pass를 뜻하지 않는다.
|
|
|
|
## Reference Strategy
|
|
|
|
### Code verification
|
|
|
|
요소 수식과 solver infrastructure를 외부 reference 값 없이 직접 검사한다. Hermite
|
|
보간, `theta_y=-dw/dx`, 4x12 `B`, 12x12 closed-form stiffness, 2-point Gauss, six rigid
|
|
modes/rank 6, positive deformation energy, local/global transform, constant local line-load
|
|
kernel, constrained partition, deterministic assembly 및 HDF5 schema가 대상이다. Numerical
|
|
Review의 `NR-T01`부터 `NR-T11`까지를 구현 전 RED test inventory로 사용한다.
|
|
|
|
### Analytical solution verification
|
|
|
|
서로 분리된 axial, torsion, local y bending, local z bending cantilever와 rigidly rotated
|
|
beam을 사용한다. 각 모델은 displacement/rotation, reaction, end action, section
|
|
resultant, residual 및 해당되는 axial `S11`을 upstream closed form과 비교한다. Nonzero
|
|
prescribed displacement는 partition 식을, constant local line load는 formulation-only
|
|
equivalent-vector 식을 검증한다. 이 모델들은 Abaqus CSV를 요구하지 않는 code/solution
|
|
test fixtures이며 reference artifact bundle로 가장하지 않는다.
|
|
|
|
### B33 reference comparison
|
|
|
|
논리 모델 `cantilever-beam-b33`의 exact read-only legacy bundle만 사용하여 FESA
|
|
`results.h5`의 displacement, reaction 및 endpoint section resultant를 Abaqus/CAE report
|
|
CSV row와 비교한다. Artifact precheck와 exact row-set matching이 먼저 통과해야 하며,
|
|
수치 비교는 ADR-022의 common family-scale tolerance를 사용한다. Axial `S11` output은 필수지만
|
|
Abaqus beam stress comparison은 명시적 N/A다.
|
|
|
|
### Excluded validation scope
|
|
|
|
실험 자료에 대한 physical validation, Abaqus/Nastran 실행, 새로운 reference 값 생성,
|
|
deep-beam/Timoshenko validation, warping, `I12!=0`, instance transform, nonlinear/dynamic
|
|
behavior는 이 portfolio에 포함하지 않는다.
|
|
|
|
## Model Inventory
|
|
|
|
| model_id | category | purpose | target quantities or tests | required artifacts | status |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `smoke-b33-cli` | smoke | 단일 B33 deck의 parse-to-HDF5와 mandatory output 확인 | CLI, diagnostics, HDF5 paths/identity/atomicity | implementation test fixture; Abaqus CSV N/A | planned |
|
|
| `cv-b33-shape-stiffness` | code verification | Hermite, `B`, closed-form stiffness, 2-point Gauss와 signed line-load kernel 격리 | `NR-T01`, `NR-T03`, `NR-T06` | in-process test data; reference bundle N/A | planned |
|
|
| `cv-b33-patch-rigid-assembly` | patch test | constant strain/curvature, six rigid modes, rank/energy와 deterministic assembly 확인 | `NR-T02`, `NR-T04`, `NR-T11` | implementation test mesh; Abaqus CSV N/A | planned |
|
|
| `an-b33-axial-cantilever` | analytical | axial response와 centroidal axial stress 확인 | `UX`, `RF1`, `N`, `FX`, `S11`, residual | analytical test fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-torsion-cantilever` | analytical | Saint-Venant torsion response 확인 | `URX`, `RM1`, `T`, `MX`, residual | analytical test fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-local-y-bending` | analytical | local `+y` force와 `Iz=I22` bending 확인 | `UY`, `URZ`, `RF2`, `RM3`, `Mz`, `FY`, residual | analytical test fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-local-z-bending` | analytical | local `+z` force와 `Iy=I11`, `theta_y=-w'` 확인 | `UZ`, `URY`, `RF3`, `RM2`, `My`, `FZ`, `S11`, residual | analytical test fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-rotated-space` | analytical | non-axis-aligned 3D beam의 transform와 energy invariance 확인 | transformed displacement/reaction/resultant, work, energy, `NR-T05` | analytical test fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-prescribed-displacement` | analytical | nonzero `dc` effective RHS, full reconstruction와 reaction 확인 | `df`, `dc`, `K*d-F`, `NR-T09` | analytical algebra fixture; Abaqus CSV N/A | planned |
|
|
| `an-b33-line-load-kernel` | analytical | formulation-only constant local line-load equivalent vector 확인 | signed 12-component vector, mesh convergence negative/positive control | element unit fixture; `*DLOAD` reference N/A | planned |
|
|
| `neg-b33-input-contract` | negative/invalid-input | unsupported/malformed input과 model-validation diagnostic 확인 | B31, second step, transform, nested assembly, `I12`, geometry, property, keyword cases | invalid input fixtures; result CSV N/A | planned |
|
|
| `cantilever-beam-b33` | benchmark and regression | approved Abaqus B33 nodal/section rows와 end-to-end 회귀 비교 | displacement, reaction, section resultant; stress N/A | exact legacy four-file bundle | inventory-ready; comparison not run |
|
|
|
|
`planned` analytical/code rows do not have missing reference artifacts: their acceptance source is
|
|
the reviewed formulation or an exact invariant. Only a model intended for Abaqus reference
|
|
comparison is subject to the CSV bundle requirement.
|
|
|
|
## Model Records
|
|
|
|
### Code and patch verification records
|
|
|
|
| model_id | analysis and element | material/section | boundary/load | expected target and tolerance | source |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `smoke-b33-cli` | single linear static, two-node `B33` minimum deck | finite positive isotropic `E,nu,A,Iy,Iz,J`, `I12=0` | stable cantilever constraint and one `*CLOAD` | mandatory HDF5 inventory, identity and finite rows; exact schema | requirements and I/O definition |
|
|
| `cv-b33-shape-stiffness` | free two-node Euler beam element | unequal positive `EA,GJ,EIy,EIz` to expose component swaps | no global BC/load; direct element states and local line load | matrix/Gauss/line-load normalized error `<=1e-12`; signed components exact by contract | formulation sections 8-13; `NR-T01/T03/T06` |
|
|
| `cv-b33-patch-rigid-assembly` | one/multiple identity-oriented B33 elements | positive, well-scaled properties | rigid translation/rotation and constant strain/curvature fields | rigid residual `<=1e-10`, rank 6, positive deformation energy; identical CSR structure and values normalized `<=1e-12` | numerical review `NR-T02/T04/T11` |
|
|
|
|
### Analytical inventory
|
|
|
|
All analytical beam records use a straight prismatic B33 member, homogeneous isotropic linear
|
|
elasticity with positive `E,G,A,Iy,Iz,J`, `I12=0`, small displacement/rotation and a fixed root.
|
|
Signs follow the approved local `(x,y,z)=(t,n1,t x n1)` convention.
|
|
|
|
| model_id | boundary conditions and load | target quantity/test | analytical target | tolerance/status |
|
|
| --- | --- | --- | --- | --- |
|
|
| `an-b33-axial-cantilever` | root DOFs fixed; free-end local axial force `Px` | tip `UX`, root `RF1`, constant `N`, outward `FX`, centroid `S11`, residual | `u(L)=Px*L/(E*A)` with force equilibrium and `S11=N/A` | relative `1e-9`; residual normalized `1e-10`; planned |
|
|
| `an-b33-torsion-cantilever` | root fixed; free-end local torque `Mx` | tip `URX`, root `RM1`, constant `T`, outward `MX`, residual | `theta_x(L)=Mx*L/(G*J)` with torque equilibrium | relative `1e-9`; residual normalized `1e-10`; planned |
|
|
| `an-b33-local-y-bending` | root fixed; free-end force `Py` along local `+y` | tip `UY`, `URZ`, root `RF2/RM3`, endpoint `Mz/FY`, residual | `v(L)=Py*L^3/(3*E*Iz)`, `theta_z(L)=Py*L^2/(2*E*Iz)` | relative `1e-9`; end-sign normalized `1e-12`; planned |
|
|
| `an-b33-local-z-bending` | root fixed; free-end force `Pz` along local `+z` | tip `UZ`, `URY`, root `RF3/RM2`, endpoint `My/FZ`, section-point `S11`, residual | `w(L)=Pz*L^3/(3*E*Iy)`, `theta_y(L)=-Pz*L^2/(2*E*Iy)` | relative `1e-9`; end-sign normalized `1e-12`; planned |
|
|
| `an-b33-rotated-space` | rigidly rotate the axial/torsion/two-bending fixtures to a non-axis-aligned direction | `R*R^T`, `det(R)`, transformed displacement/reaction/resultant, work and energy | inverse-rotated physical results equal axis-aligned cases; `det(R)=+1` | normalized `1e-12`; planned |
|
|
| `an-b33-prescribed-displacement` | stable free/constrained partition with nonzero `dc`, finite `Ff` and `Fc` | effective RHS, `df`, full `d`, constrained reaction and free residual | `rhs=Ff-Kfc*dc`, `Rc=Kcf*df+Kcc*dc-Fc` | normalized `1e-10`; planned |
|
|
| `an-b33-line-load-kernel` | element-level constant local `[px,py,pz,mx]`; no parser/CLI `*DLOAD` | all 12 equivalent nodal components and signed end moments | formulation section 12.2 closed-form vector | normalized `1e-12`; planned |
|
|
|
|
The rotated record covers transformation rather than Abaqus instance transforms. The line-load
|
|
record covers only the element kernel and must be paired with a negative parser test proving that
|
|
`*DLOAD` remains unsupported.
|
|
|
|
### Invalid-input record
|
|
|
|
`neg-b33-input-contract` is a table-driven portfolio. Each case uses the smallest otherwise-valid
|
|
single-step deck and changes only the named condition.
|
|
|
|
| case | expected result |
|
|
| --- | --- |
|
|
| `TYPE=B31` | `unsupported-element-formulation`; no Euler element |
|
|
| second `*STEP` | `unsupported-multiple-step`; no solve/output |
|
|
| instance translation or rotation data | `unsupported-instance-transform` |
|
|
| nested assembly/dependent mesh semantic | structured unsupported diagnostic |
|
|
| `I12!=0` | `unsupported-coupled-section` model failure |
|
|
| nonpositive `E,G,A,Iy,Iz,J` | `invalid-beam-property` model failure |
|
|
| zero/near-zero length | `invalid-beam-length` at the approved scale-aware boundary |
|
|
| zero/tangent-parallel guide vector | `invalid-beam-guide-vector` at the approved projection boundary |
|
|
| `*DLOAD` or unlisted model-affecting keyword | `unsupported-keyword`; no distributed-load Domain object |
|
|
| malformed row, duplicate entity or dangling reference | input failure with source-backed deterministic diagnostic |
|
|
| missing/extra/duplicate/nonfinite/schema- or identity-mismatched reference row | comparison precheck failure before tolerance evaluation |
|
|
|
|
### Approved reference record: `cantilever-beam-b33`
|
|
|
|
- category: benchmark and regression
|
|
- purpose: end-to-end B33 displacement, reaction and section-resultant comparison
|
|
- analysis_type: single linear static
|
|
- element_type: ten straight two-node `TYPE=B33` elements, source labels 1 through 10
|
|
- geometry: global x-axis cantilever, total length 10 m, eleven source nodes
|
|
- material: `E=2.1e11`, `nu=0.3`, SI
|
|
- section: `A=1`, `I11=0.0833333`, `I12=0`, `I22=0.0833333`, `J=0.140833`; `n1=(0,1,0)`
|
|
- boundary_conditions: source node 1, DOFs 1 through 6 fixed
|
|
- load: source node 11, global DOF 3, magnitude `-1e6` N
|
|
- model_id: `cantilever-beam-b33`
|
|
- historical_schema_record: `abaqus-cae-report-csv-v0` for the 2026-08-09 inventory only
|
|
- historical_source_commit: `2b34d0b` for the 2026-08-09 inventory only
|
|
- generator: `Abaqus/CAE Learning Edition 2024`
|
|
- units: SI
|
|
- nodal_coordinate_system: global Cartesian
|
|
- section_force_coordinate_system: beam local
|
|
- step_name: `Step-1`
|
|
- increment: `1`
|
|
- step_time: `1.0`
|
|
- artifact_status: all four exact paths present; 20-row element-endpoint comparison passed on 2026-08-18
|
|
- stress: N/A for Abaqus reference comparison; mandatory FESA `S11` remains covered by unit/analytical and HDF5 schema tests
|
|
|
|
The input and CSV numeric reference values are not recalculated, repaired, rounded, clamped or
|
|
otherwise re-derived by this contract.
|
|
|
|
## Abaqus Input Requirements
|
|
|
|
The approved input is exactly
|
|
`reference/cantilever beam/cantilever beam.inp`. Read-only inspection confirms that it contains
|
|
`*ELEMENT, TYPE=B33` and remains within the V0 supported subset plus the documented warning
|
|
no-op output-request allowlist. Its single identity instance is `PART-1_1-1`; its canonical result
|
|
identity is `(Step-1, frame 0)` from increment 1, step time 1.0.
|
|
|
|
For later reference models:
|
|
|
|
- `model.inp` shall use only the feature-approved Abaqus keyword subset.
|
|
- Model data shall define nodes, B33 connectivity, sets, material, general section and orientation.
|
|
- History data shall define exactly one `*STEP, *STATIC`, supported boundary conditions and nodal
|
|
loads.
|
|
- `TYPE=B31`, instance transform, nested assembly, `I12!=0` and `*DLOAD` are not admissible ways
|
|
to create a positive V0 reference model.
|
|
- Abaqus output requests may be present for human generation of required CSVs, but they are
|
|
warning no-ops for FESA and never select mandatory HDF5 output.
|
|
|
|
## Artifact Bundle Contract
|
|
|
|
### Approved legacy exception
|
|
|
|
The following exact paths are the entire approved read-only bundle:
|
|
|
|
```text
|
|
reference/cantilever beam/cantilever beam.inp
|
|
reference/cantilever beam/cantilever beam displacements.csv
|
|
reference/cantilever beam/cantilever beam reactions.csv
|
|
reference/cantilever beam/cantilever beam elemental forces.csv
|
|
```
|
|
|
|
These files shall not be generated, modified, renamed, corrected or restored by an agent or
|
|
Harness. Their spaces and existing CAE report headers are legacy aliases, not a naming pattern for
|
|
new models.
|
|
|
|
For this approved legacy bundle:
|
|
|
|
- `metadata.json`: absent-allowed under the project-wide optional metadata policy
|
|
- `README.md`: N/A
|
|
- stress CSV: N/A because beam stress reference comparison is outside the approved V0 scope
|
|
|
|
This contract records the exact required paths, row identities, comparison quantities, tolerance
|
|
policy and the stress N/A reason. Historical schema/provenance fields are retained as dated
|
|
inventory only and are not readiness gates. The optional metadata file's absence and the approved
|
|
legacy README/stress exclusions do not change the record to `needs-reference-artifacts`.
|
|
|
|
### Later reference cases and optional metadata
|
|
|
|
Each later feature requirement names its exact input and comparison CSV paths, required row
|
|
identity/components and N/A quantities. Canonical filenames, `README.md`, `metadata.json`,
|
|
generator/version, provenance, duplicated unit/schema fields and a portfolio-wide directory layout
|
|
are not readiness gates unless that feature explicitly makes one part of its numerical comparison
|
|
contract. No agent may invent unknown provenance. If optional metadata exists, inspect it read-only
|
|
and report disagreement without rewriting the reference artifacts.
|
|
|
|
## Abaqus Reference CSV Requirements
|
|
|
|
Header comparison trims whitespace around each comma-separated field but does not rename fields.
|
|
For every file, `Frame` must normalize exactly from
|
|
`Increment 1: Step Time = 1.000` to `(Step-1, frame 0)`, `Part Instance Name` must resolve to the
|
|
preserved instance identity, every declared source identity must be unique, and all projected
|
|
numeric values must be finite.
|
|
|
|
| exact legacy path | expected trimmed header | unique row key | observed inventory |
|
|
| --- | --- | --- | --- |
|
|
| `reference/cantilever beam/cantilever beam displacements.csv` | `Frame, Part Instance Name, Node Label, U-U1, U-U2, U-U3, UR-UR1, UR-UR2, UR-UR3` | `(Frame, Part Instance Name, Node Label)` | 11 rows; header/key/finite/arity checks observed |
|
|
| `reference/cantilever beam/cantilever beam reactions.csv` | `Frame, Part Instance Name, Node Label, RF-RF1, RF-RF2, RF-RF3, RM-RM1, RM-RM2, RM-RM3` | `(Frame, Part Instance Name, Node Label)` | 11 rows; header/key/finite/arity checks observed |
|
|
| `reference/cantilever beam/cantilever beam elemental forces.csv` | `Frame, Part Instance Name, Element Label, Node Label, SF-SF1, SM-SM1, SM-SM2, SM-SM3` | `(Frame, Part Instance Name, Element Label, Node Label)` | 20 rows; 10 B33 elements x 2 connectivity-matched endpoints; header/key/finite/arity checks observed |
|
|
|
|
The wide-row key becomes unique canonical component rows after adding `quantity` and `component`.
|
|
Missing, extra, duplicate, nonfinite, header/schema or identity mismatch stops comparison as
|
|
`needs-reference-artifacts` or `schema-mismatch`. No bad or near-zero row may be silently dropped.
|
|
|
|
For the elemental-force CSV, `(Part Instance Name, Element Label, Node Label)` is the source
|
|
element-endpoint identity. Each B33 element must have exactly two rows whose node labels match its
|
|
ordered input connectivity. Every row maps directly to the corresponding HDF5
|
|
`[element,endpoint,N/T/My/Mz]` row. Missing, extra, duplicate or connectivity-mismatched endpoint
|
|
identity fails as `schema-mismatch` before tolerance. The comparator does not collapse endpoints to
|
|
a node station, choose a representative or average values.
|
|
|
|
## Coverage Matrix
|
|
|
|
The authoritative comparison source is FESA HDF5, not an extracted FESA CSV. Dataset paths use
|
|
the canonical V0 step identity.
|
|
|
|
| verification quantity | requirement ids | model_id | FESA HDF5 dataset | legacy CSV and components | row identity/location | tolerance | verification method | status |
|
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
| nodal displacement/rotation | 003, 029-031, 036-042 | `cantilever-beam-b33` | `/steps/Step-1/frames/0/nodal/displacement` | `reference/cantilever beam/cantilever beam displacements.csv`: `U-U1/U-U2/U-U3 -> UX/UY/UZ`, `UR-UR1/UR-UR2/UR-UR3 -> URX/URY/URZ` | preserved instance + source node; global nodal | common translation/rotation family policy | HDF5-to-read-only CSV after artifact/row-set precheck | passed 2026-08-18 |
|
|
| nodal reaction force | 007, 027, 029-031, 036-042 | `cantilever-beam-b33` | `/steps/Step-1/frames/0/nodal/reaction` | `reference/cantilever beam/cantilever beam reactions.csv`: `RF-RF1/RF-RF2/RF-RF3 -> RF1/RF2/RF3` | preserved instance + source node; global nodal | common reaction-force family policy | HDF5-to-read-only CSV plus global equilibrium | passed 2026-08-18 |
|
|
| nodal reaction moment | 007, 027, 029-031, 036-042 | `cantilever-beam-b33` | `/steps/Step-1/frames/0/nodal/reaction` | `reference/cantilever beam/cantilever beam reactions.csv`: `RM-RM1/RM-RM2/RM-RM3 -> RM1/RM2/RM3` | preserved instance + source node; global nodal | common reaction-moment family policy | HDF5-to-read-only CSV plus moment equilibrium | passed 2026-08-18 |
|
|
| section axial force | 031, 036-042 | `cantilever-beam-b33` | `/steps/Step-1/frames/0/element/section_resultant` | `reference/cantilever beam/cantilever beam elemental forces.csv`: `SF-SF1 -> N` | direct instance + source element + endpoint node; beam local | common section-force family policy | direct HDF5-to-endpoint CSV comparison | passed 2026-08-18 |
|
|
| section moments/torsion | 031, 036-042 | `cantilever-beam-b33` | `/steps/Step-1/frames/0/element/section_resultant` | `reference/cantilever beam/cantilever beam elemental forces.csv`: `SM-SM1 -> My`, `SM-SM2 -> Mz`, `SM-SM3 -> T` | direct instance + source element + endpoint node; beam local | common section-moment family policy | direct HDF5-to-endpoint CSV comparison | passed 2026-08-18 |
|
|
| equilibrium end action | 031, 035, 043 | analytical models and physics portfolio | `/steps/Step-1/frames/0/element/end_force_local` | Abaqus CSV N/A for direct outward-action comparison | element endpoint `xi=-1,+1`; local outward action `[FX,FY,FZ,MX,MY,MZ]` | analytical normalized `1e-12`; residual `1e-10` | unit/analytical end-sign tests and later physics sanity | planned |
|
|
| generalized strain/resultant | 029, 031, 035 | code and analytical models | `/steps/Step-1/frames/0/element/generalized_strain` and `/steps/Step-1/frames/0/element/generalized_resultant` | Abaqus CSV N/A | two Gauss points; beam local | matrix/formulation normalized `1e-12`, analytical relative `1e-9` | formulation/unit/HDF5 schema tests | planned |
|
|
| axial stress | 029, 032, 035 | axial/local-z analytical models | `/steps/Step-1/frames/0/element/stress_s11` | stress CSV N/A; Abaqus beam stress reference comparison N/A | element, Gauss point, input section point or `fesa-default` centroid | analytical relative `1e-9`; exact unit/row schema | unit/analytical recovery and HDF5 schema tests | planned; reference N/A |
|
|
|
|
For every matched family, `S=max(abs(Abaqus reference rows))` uses only read-only reference values.
|
|
Rows with `abs(reference)<=0.01*S` use `error<=0.01*S`; other rows use relative error `<=0.05`;
|
|
the family also requires `RMS(error)/S<=0.01`. A zero-scale family requires exact-zero FESA values.
|
|
Every row branch/decision and family scale, near-zero band/count, max absolute error,
|
|
scale-relative RMS, worst row/component and zero-scale diagnostic must be reported.
|
|
|
|
### Complete must-requirement coverage
|
|
|
|
Every approved `must` requirement is connected below to a model/test/quantity or an explicit
|
|
non-reference governance check. `N/A` means that an Abaqus CSV is not the applicable evidence;
|
|
it does not waive the requirement.
|
|
|
|
| requirement | model/test/quantity or explicit N/A | planned verification |
|
|
| --- | --- | --- |
|
|
| `FESA-REQ-LS3DEB-001` | `smoke-b33-cli`; `neg-b33-input-contract` second-step case | positive single-step and structured rejection test |
|
|
| `FESA-REQ-LS3DEB-002` | all analytical B33 records | model-validation and formulation scope tests; CSV N/A except approved benchmark |
|
|
| `FESA-REQ-LS3DEB-003` | all code/analytical records; displacement/reaction rows | exact DOF/component-order tests |
|
|
| `FESA-REQ-LS3DEB-004` | axial, torsion and both bending records | four independent analytical solution tests |
|
|
| `FESA-REQ-LS3DEB-005` | `smoke-b33-cli`, `cantilever-beam-b33` | B33 semantic mapping and artifact type precheck |
|
|
| `FESA-REQ-LS3DEB-006` | `neg-b33-input-contract` B31 case | exact `unsupported-element-formulation` test |
|
|
| `FESA-REQ-LS3DEB-007` | four cantilevers and prescribed-displacement record | DOF 1..6 load/BC and nonzero `dc` tests |
|
|
| `FESA-REQ-LS3DEB-008` | `an-b33-line-load-kernel`; negative `*DLOAD` case | closed-form vector and unsupported parser tests; reference CSV N/A |
|
|
| `FESA-REQ-LS3DEB-009` | `smoke-b33-cli`, keyword table tests, approved legacy input | exact positive keyword inventory |
|
|
| `FESA-REQ-LS3DEB-010` | parser code-verification cases | case/comment/source-label preservation tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-011` | analytical load/BC decks and invalid arity/target cases | target expansion and row grammar tests |
|
|
| `FESA-REQ-LS3DEB-012` | both bending and rotated-space records | property/axis mapping and transform checks |
|
|
| `FESA-REQ-LS3DEB-013` | all analytical records; invalid property cases | `G` calculation and positive property tests |
|
|
| `FESA-REQ-LS3DEB-014` | `neg-b33-input-contract` geometry cases; `NR-T05` | exact scale-aware length/projection boundary tests |
|
|
| `FESA-REQ-LS3DEB-015` | multi-instance semantic fixture and all HDF5/reference identities | stable source/internal identity tests |
|
|
| `FESA-REQ-LS3DEB-016` | multi-instance semantic fixture | distinct deterministic identity test; reference CSV N/A |
|
|
| `FESA-REQ-LS3DEB-017` | invalid instance-transform case | exact diagnostic test |
|
|
| `FESA-REQ-LS3DEB-018` | invalid nested/dependent cases | structured unsupported tests |
|
|
| `FESA-REQ-LS3DEB-019` | `cantilever-beam-b33` input and allowlist table cases | warning/no-op and no semantic-effect tests |
|
|
| `FESA-REQ-LS3DEB-020` | unknown-keyword negative case and `smoke-b33-cli` | error plus mandatory-output independence test |
|
|
| `FESA-REQ-LS3DEB-021` | Domain/AnalysisModel code-verification fixture | non-copy/non-mutation ownership tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-022` | DOF/scatter/reconstruction code-verification fixture | DofManager ownership and exact mapping tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-023` | `smoke-b33-cli` and HDF5 state fixture | required/excluded state allocation tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-024` | `cv-b33-patch-rigid-assembly`, `NR-T11` | repeated thread-count CSR determinism test; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-025` | math/adapter dependency fixtures | storage/layout and public dependency review; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-026` | orchestration event-trace fixture | exact factorize-before-load order test; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-027` | `an-b33-prescribed-displacement` | effective RHS, reconstruction and residual reaction test |
|
|
| `FESA-REQ-LS3DEB-028` | `smoke-b33-cli` writer failure/success fixtures | authoritative output and atomicity tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-029` | HDF5 rows in this Coverage Matrix | exact path/shape/component schema test |
|
|
| `FESA-REQ-LS3DEB-030` | `smoke-b33-cli`; `cantilever-beam-b33` provenance | ordinary unit label and external SI metadata tests |
|
|
| `FESA-REQ-LS3DEB-031` | all code/analytical models and three legacy CSV quantities | recovery component/location and mandatory-output tests |
|
|
| `FESA-REQ-LS3DEB-032` | axial/local-z analytical stress; HDF5 `stress_s11` | stress unit/analytical/schema tests; Abaqus stress comparison N/A |
|
|
| `FESA-REQ-LS3DEB-033` | `smoke-b33-cli`, diagnostic negative cases | CLI exit-code/field/order integration tests; CSV N/A |
|
|
| `FESA-REQ-LS3DEB-034` | every implementation model/test | per-step RED/GREEN/VERIFY and full MSVC/CTest evidence; model CSV N/A |
|
|
| `FESA-REQ-LS3DEB-035` | `NR-T01` through `NR-T11` and analytical inventory | exact numerical criteria in model records |
|
|
| `FESA-REQ-LS3DEB-036` | `cantilever-beam-b33` and comparison-policy unit fixtures | exact family membership and Abaqus-only scale tests |
|
|
| `FESA-REQ-LS3DEB-037` | same comparison fixtures, including boundary and zero-scale families | near-zero, relative-row, scale-relative RMS and zero-scale tests |
|
|
| `FESA-REQ-LS3DEB-038` | malformed reference cases in `neg-b33-input-contract` | pre-tolerance fail-fast and no-clamp/no-drop tests |
|
|
| `FESA-REQ-LS3DEB-039` | verification-report schema fixture | every row branch/decision and family aggregate/worst metrics test |
|
|
| `FESA-REQ-LS3DEB-040` | exact legacy Artifact Bundle Contract | inventory plus `git diff --exit-code -- reference/` process check |
|
|
| `FESA-REQ-LS3DEB-041` | approved artifact precheck | four files, B33, exact headers, unique keys, finite values |
|
|
| `FESA-REQ-LS3DEB-042` | three comparison quantities and direct endpoint projection | exact component mapping plus missing/extra/duplicate/connectivity-mismatch endpoint tests |
|
|
| `FESA-REQ-LS3DEB-043` | gate audit; later physics portfolio | reference execution N/A at this step; enforce build/test -> comparison -> physics -> release order |
|
|
| `FESA-REQ-LS3DEB-044` | process/Git diff audit and limitations review | no reference execution/mutation and no out-of-scope support claim |
|
|
|
|
## Artifact Acceptance Checklist
|
|
|
|
The following is historical 2026-08-09 pre-implementation inventory evidence. Its 11-row
|
|
elemental-force observation is superseded by the 2026-08-18 regenerated 20-row endpoint file:
|
|
|
|
- all four exact legacy paths exist;
|
|
- the input declares `TYPE=B33`;
|
|
- each CSV trimmed header matches the documented `abaqus-cae-report-csv-v0` inventory;
|
|
- each CSV has 11 data rows with a unique `(Frame, Part Instance Name, Node Label)` key;
|
|
- every projected numeric field is finite and every row has the header arity;
|
|
- generator, source commit, SI units, coordinates, step/increment/time and tolerance provenance are
|
|
recorded in the approved design and this contract;
|
|
- absent `metadata.json` is allowed by project-wide policy; legacy `README.md` and stress CSV are accepted N/A exceptions;
|
|
- no reference value was recalculated and no comparison was performed.
|
|
|
|
Read-only inspection on `2026-08-18` confirms that the elemental-force CSV has 20 rows,
|
|
exactly two connectivity-matched endpoint rows for each of the 10 B33 elements. Displacement and
|
|
reaction CSVs remain 11-row source-node tables. The fresh comparison passed on 2026-08-18;
|
|
current metrics are recorded in `reference-comparison.md`.
|
|
|
|
Before an actual comparison, tooling must repeat all artifact checks, verify the exact Frame and
|
|
instance identities, compare the complete projected row sets, and stop on any failure. The Step AC
|
|
must also show no working-tree diff under `reference/`. Passing this checklist is not a reference
|
|
comparison pass.
|
|
|
|
## Open Issues and Downstream Handoff
|
|
|
|
### Open issues
|
|
|
|
- No missing artifact or user decision blocks implementation planning for the approved legacy
|
|
model.
|
|
- `NR-O01` (official oneMKL PARDISO contract) and `NR-O02` (deterministic duplicate-reduction
|
|
algorithm) remain implementation-planning inputs, not reference artifact defects.
|
|
- Future reversed, branched, loaded-interior or section-jump reference models use the same
|
|
element-endpoint identity and require their own approved reference coverage.
|
|
|
|
### Implementation Planning Agent
|
|
|
|
Use this order for tests that must fail before their production implementation:
|
|
|
|
1. Hermite/DOF/sign and `B` checks.
|
|
2. Gauss/closed stiffness, rigid modes, rank and energy.
|
|
3. Rotation/local-axis and signed line-load kernel.
|
|
4. Axial, torsion, local-y and local-z analytical cantilevers.
|
|
5. Nonzero prescribed displacement, SPD/residual and deterministic assembly.
|
|
6. Parser invalid-input portfolio and CLI/HDF5 output contract.
|
|
7. Legacy artifact precheck, row projection and tolerance/report policy.
|
|
|
|
Keep reference comparison after the full MSVC build/test gate and do not require new Abaqus
|
|
artifacts for code/analytical fixtures.
|
|
|
|
### Reference Verification Agent
|
|
|
|
Run `ARTIFACT CHECK -> HDF5 ROW PROJECTION -> EXACT ROW-SET CHECK -> DIRECT ENDPOINT MATCH ->
|
|
COMMON FAMILY-SCALE COMPARE -> REPORT`. Use only the exact legacy files and the HDF5 paths/component
|
|
mappings in the Coverage Matrix. Do not synthesize `SF2/SF3` or stress rows, clamp values, omit
|
|
rows, average interior endpoints, or change the approved tolerance.
|
|
|
|
### Physics Evaluation Agent
|
|
|
|
Only after reference comparison passes, check global force/moment equilibrium, reaction sign,
|
|
displacement direction, bending symmetry, outward end action versus positive-face section
|
|
resultant consistency, and normalized residual. The approved reference model is one local-z
|
|
bending cantilever; broader physical coverage comes from the analytical portfolio, not an inflated
|
|
claim about the single CSV bundle.
|
|
|
|
### I/O Definition Agent
|
|
|
|
No upstream contract revision is requested. If a future reference model needs an element-aware row
|
|
identity, define and approve that schema separately without changing the read-only legacy aliases.
|