202 lines
18 KiB
Markdown
202 lines
18 KiB
Markdown
# 3D Euler-Bernoulli Beam Kernel Requirements
|
|
|
|
## Metadata
|
|
- feature_id: euler-beam-3d
|
|
- title: Kernel-first 3D Euler-Bernoulli beam element
|
|
- status: draft
|
|
- owner_agent: requirement-agent
|
|
- date: 2026-06-12
|
|
|
|
## Purpose
|
|
Define the first implementable requirements baseline for a two-node, straight, prismatic, small-displacement 3D Euler-Bernoulli beam element kernel. This increment is limited to element-level stiffness and end-force recovery so downstream formulation, numerical review, and C++ implementation can proceed without claiming full solver readiness.
|
|
|
|
## Assumptions
|
|
- The element is a two-node straight beam with nonzero length.
|
|
- The element uses small-displacement, small-rotation, linear elastic kinematics.
|
|
- Each node has six mechanical DOFs in this order: `ux, uy, uz, rx, ry, rz`.
|
|
- The element displacement vector order is node 1 DOFs followed by node 2 DOFs, each in `ux, uy, uz, rx, ry, rz` order.
|
|
- Section and material constants are constant over the element: `E`, `G`, `A`, `J`, `Iy`, `Iz`.
|
|
- `Iy` and `Iz` are second moments of area about the element local principal bending axes, and `J` is the torsional constant about the local beam axis.
|
|
- Units are user-consistent; the kernel does not perform unit conversion in this increment.
|
|
- The local element basis is right-handed and orthonormal. The local `x` axis follows node 1 to node 2; the source of local `y` and `z` orientation for parser or solver integration remains open.
|
|
- Boundary conditions, global equation numbering, sparse assembly, linear solve, HDF5 writing, and reference comparison are downstream solver concerns, not kernel responsibilities in this increment.
|
|
|
|
## In Scope
|
|
- Two-node, straight, prismatic 3D Euler-Bernoulli beam element kernel.
|
|
- Six mechanical DOFs per node in `ux, uy, uz, rx, ry, rz` order.
|
|
- Linear elastic section constants: `E`, `G`, `A`, `J`, `Iy`, `Iz`.
|
|
- Local 12x12 stiffness matrix support.
|
|
- Global 12x12 stiffness matrix support when a valid local-to-global transformation is supplied.
|
|
- Local and global element end-force recovery from compatible 12-entry nodal displacement vectors.
|
|
- Kernel-level verification hooks for stiffness symmetry, rigid body modes, and local/global transformation consistency.
|
|
|
|
## Out Of Scope
|
|
- Shear deformation, Timoshenko beam behavior, shear correction factors, and shear locking treatment.
|
|
- Warping DOFs, warping stiffness, restrained warping, or bimoment recovery.
|
|
- End releases, offsets, rigid links, eccentric sections, or joint constraints.
|
|
- Distributed loads, equivalent nodal load vectors, body forces, or pressure loads.
|
|
- Mass matrix, damping matrix, geometric stiffness, buckling, nonlinear kinematics, dynamics, or thermal coupling.
|
|
- Abaqus reference CSV generation or modification.
|
|
- Full Abaqus compatibility claims.
|
|
- Parser integration, end-to-end assembly, solver execution, HDF5 result output, reference comparison, physics sanity, or release readiness.
|
|
|
|
## Analysis Definition
|
|
- analysis_type: linear static kernel only
|
|
- element_type: two-node 3D Euler-Bernoulli beam
|
|
- nodes_per_element: 2
|
|
- dofs_per_node: 6
|
|
- dof_order: `ux, uy, uz, rx, ry, rz`
|
|
- element_vector_size: 12
|
|
- material_model: linear elastic constants `E` and `G`
|
|
- section_model: constant section constants `A`, `J`, `Iy`, `Iz`
|
|
- coordinate_system: local Cartesian beam frame and global Cartesian frame
|
|
- loads: not in this increment
|
|
- boundary_conditions: not in this increment
|
|
- official_solver_output: not in this increment
|
|
|
|
## Input Requirements
|
|
- The kernel must receive or derive two distinct node positions sufficient to determine element length and local `x` direction.
|
|
- The kernel must receive positive finite constants for `E`, `G`, `A`, `J`, `Iy`, and `Iz`.
|
|
- The kernel must receive a valid right-handed orthonormal local basis or equivalent transformation data before producing a global stiffness matrix or global end-force vector.
|
|
- The kernel must receive 12-entry nodal displacement vectors ordered as node 1 then node 2, with each node using `ux, uy, uz, rx, ry, rz`.
|
|
|
|
## Output Requirements
|
|
- The kernel must produce a local 12x12 stiffness matrix in the documented element DOF order.
|
|
- The kernel must produce a global 12x12 stiffness matrix in the documented global DOF order when supplied with a valid local-to-global transformation.
|
|
- The kernel must recover local element end forces from a compatible local nodal displacement vector.
|
|
- The kernel must recover global element end forces from a compatible global nodal displacement vector when supplied with the same transformation used for the global stiffness matrix.
|
|
- This increment must not write `results.h5` and must not create deterministic CSV views or Abaqus reference CSV files.
|
|
|
|
## Verification Quantities
|
|
| quantity | required_for_kernel | verification intent | downstream owner |
|
|
| --- | --- | --- | --- |
|
|
| displacement DOFs | yes | Confirm 12-entry vectors use the required `ux, uy, uz, rx, ry, rz` per-node ordering. | Implementation Planning Agent |
|
|
| reactions / end forces | yes | Confirm local and global end-force recovery is consistent with the corresponding stiffness matrix and displacement vector. | Formulation Agent; Implementation Planning Agent |
|
|
| stiffness symmetry | yes | Confirm local and global 12x12 stiffness matrices are symmetric within the formulation-defined numeric tolerance. | Numerical Review Agent; Implementation Planning Agent |
|
|
| rigid body modes | yes | Confirm an unconstrained isolated element has six zero-energy rigid body modes within the formulation-defined numeric tolerance. | Formulation Agent; Numerical Review Agent |
|
|
| local/global transformation consistency | yes | Confirm transformed stiffness and force recovery are mutually consistent for the same basis and displacement vector. | Formulation Agent; Implementation Planning Agent |
|
|
| stress | no | Stress recovery is not part of this kernel increment. | Future requirements |
|
|
| strain | no | Strain recovery is not part of this kernel increment. | Future requirements |
|
|
| energy or residual | downstream hook | Strain energy consistency may be added as a kernel verification hook after formulation review. | Numerical Review Agent |
|
|
|
|
## Tolerance Policy
|
|
- absolute_tolerance: needs-downstream-decision by Numerical Review Agent and Implementation Planning Agent
|
|
- relative_tolerance: needs-downstream-decision by Numerical Review Agent and Implementation Planning Agent
|
|
- norm_based_tolerance: needs-downstream-decision by Numerical Review Agent and Implementation Planning Agent
|
|
- Units: user-consistent structural units; no unit conversion in this increment.
|
|
- Coordinate system: local and global Cartesian frames with a right-handed orthonormal element basis.
|
|
- Rule: any numerical kernel test added later must state the tolerance source and whether it checks component-wise values, matrix norms, eigenvalue/residual norms, or force vector norms.
|
|
|
|
## Reference Artifact Requirements
|
|
Reference artifacts are not required for kernel completion in this increment.
|
|
|
|
Future end-to-end solver verification may use a bundle under `reference/<model-id>/`, but this requirements baseline does not authorize creating, modifying, or regenerating Abaqus reference CSV files.
|
|
|
|
| artifact | kernel increment status | future solver-release status |
|
|
| --- | --- | --- |
|
|
| `model.inp` | not required | required after parser and assembly scope is approved |
|
|
| `metadata.json` | not required | required with provenance for approved reference artifacts |
|
|
| `<model-id>_displacements.csv` | not required | required for reference comparison |
|
|
| `<model-id>_reactions.csv` | not required | required for reaction/end-force comparison |
|
|
| `<model-id>_internalforces.csv` | not required | required when internal force comparison scope is approved |
|
|
| `<model-id>_stresses.csv` | not required | not required until stress recovery is in scope |
|
|
|
|
## Must Requirements
|
|
| id | requirement |
|
|
| --- | --- |
|
|
| EB3D-REQ-001 | The beam kernel must model only a two-node, straight, prismatic, small-displacement 3D Euler-Bernoulli beam element in this increment. |
|
|
| EB3D-REQ-002 | The beam kernel must use six mechanical DOFs per node ordered as `ux, uy, uz, rx, ry, rz`. |
|
|
| EB3D-REQ-003 | The beam kernel must use a 12-entry element vector ordered as all node 1 DOFs followed by all node 2 DOFs. |
|
|
| EB3D-REQ-004 | The beam kernel must accept linear elastic constants `E` and `G` and section constants `A`, `J`, `Iy`, and `Iz`. |
|
|
| EB3D-REQ-005 | The beam kernel must produce a local 12x12 stiffness matrix in the documented local DOF order. |
|
|
| EB3D-REQ-006 | The beam kernel must produce a global 12x12 stiffness matrix when supplied with a valid right-handed orthonormal local-to-global transformation. |
|
|
| EB3D-REQ-007 | The beam kernel must recover local element end forces from a compatible local nodal displacement vector. |
|
|
| EB3D-REQ-008 | The beam kernel must recover global element end forces from a compatible global nodal displacement vector and the same transformation convention used for global stiffness. |
|
|
| EB3D-REQ-009 | The local and global stiffness matrices must be symmetric within the formulation-defined tolerance. |
|
|
| EB3D-REQ-010 | The unconstrained isolated element stiffness must preserve six rigid body modes within the formulation-defined tolerance. |
|
|
| EB3D-REQ-011 | The local and global stiffness and end-force recovery paths must be mutually consistent under the same transformation. |
|
|
| EB3D-REQ-012 | The kernel increment must not include shear deformation, warping, end releases, offsets, distributed loads, mass matrix, geometric stiffness, nonlinear kinematics, dynamics, or thermal coupling. |
|
|
| EB3D-REQ-013 | The kernel increment must not create, modify, or regenerate Abaqus reference CSV files. |
|
|
| EB3D-REQ-014 | The requirements and downstream implementation must not claim full Abaqus compatibility for this feature. |
|
|
| EB3D-REQ-015 | The kernel completion criteria must be separate from full solver release readiness. |
|
|
|
|
## Requirement Verification Matrix
|
|
| id | source | priority | verification_method | acceptance_criteria | tolerance | downstream_agents | status |
|
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
| EB3D-REQ-001 | user step scope | must | formulation review; C++ unit tests in later implementation steps | Formulation and implementation address only the scoped Euler-Bernoulli beam kernel and do not add excluded behaviors. | not numeric | Formulation Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-002 | user step scope | must | unit test; code review | Tests or implementation checks demonstrate the exact per-node DOF order `ux, uy, uz, rx, ry, rz`. | not numeric | Implementation Planning Agent | draft |
|
|
| EB3D-REQ-003 | user step scope | must | unit test; code review | Tests or implementation checks demonstrate the 12-entry node 1 then node 2 vector order. | not numeric | Implementation Planning Agent | draft |
|
|
| EB3D-REQ-004 | user step scope | must | input validation test in later implementation steps | Nonpositive or nonfinite constants are rejected or diagnosed according to the downstream implementation contract. | not numeric for this baseline | I/O Definition Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-005 | user step scope | must | formulation review; local stiffness unit test | Local stiffness is 12x12, uses the documented local DOF order, and matches formulation-specified benchmark values. | formulation-defined | Formulation Agent; Numerical Review Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-006 | user step scope | must | transformation unit test | Global stiffness is 12x12 and matches the formulation-specified transformation of the local matrix. | formulation-defined | Formulation Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-007 | user step scope | must | local force recovery unit test | Local end-force output is consistent with the local stiffness matrix and local displacement vector. | formulation-defined | Formulation Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-008 | user step scope | must | global force recovery unit test | Global end-force output is consistent with global stiffness, global displacement, and the local/global transformation convention. | formulation-defined | Formulation Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-009 | user verification notes | must | matrix symmetry unit test | Local and global stiffness matrices satisfy symmetry checks within the selected matrix tolerance. | needs-downstream-decision | Numerical Review Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-010 | user verification notes | must | rigid body mode unit test; numerical review | Six rigid body modes produce zero or tolerance-bounded internal force/energy for an unconstrained isolated element. | needs-downstream-decision | Formulation Agent; Numerical Review Agent | draft |
|
|
| EB3D-REQ-011 | user verification notes | must | transformation consistency unit test | Stiffness transformation and end-force transformation use one consistent convention for the same local basis. | formulation-defined | Formulation Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-012 | user exclusions | must | scope review; code review | No excluded behavior appears in requirements, formulation, or kernel implementation for this increment. | not numeric | Coordinator Agent; Implementation Planning Agent | draft |
|
|
| EB3D-REQ-013 | user forbidden list | must | git diff review | No file under `reference/` and no Abaqus reference CSV is created or modified in this increment. | not numeric | Reference Model Agent; Coordinator Agent | draft |
|
|
| EB3D-REQ-014 | ADR-003; user verification notes | must | documentation review; I/O contract review | Documentation states this is a limited feature subset and does not claim full Abaqus compatibility. | not numeric | I/O Definition Agent; Coordinator Agent | draft |
|
|
| EB3D-REQ-015 | project acceptance gates | must | release gate review | Kernel completion can be marked separately, while full solver release remains blocked until parser, assembly, HDF5 output, reference comparison, physics sanity, and release readiness gates pass. | not numeric | Release Agent; Coordinator Agent | draft |
|
|
|
|
## Acceptance Criteria
|
|
### This Documentation Step
|
|
- `docs/requirements/euler-beam-3d.md` exists and contains metadata, assumptions, non-goals, must requirements, verification quantities, acceptance criteria, and open issues.
|
|
- The document does not create source, test, or reference artifact files.
|
|
- The document does not claim full Abaqus compatibility.
|
|
- Every `must` requirement has an acceptance criterion or downstream verification hook in the Requirement Verification Matrix.
|
|
- The following validation commands pass:
|
|
|
|
```powershell
|
|
python -m unittest discover -s scripts -p "test_*.py"
|
|
python scripts/validate_workspace.py
|
|
```
|
|
|
|
### Kernel Completion
|
|
Kernel completion may be claimed only after downstream implementation steps provide C++ tests and implementation evidence for:
|
|
- local 12x12 stiffness matrix generation;
|
|
- global 12x12 stiffness matrix transformation;
|
|
- local and global end-force recovery;
|
|
- DOF ordering;
|
|
- stiffness symmetry;
|
|
- six rigid body modes;
|
|
- local/global transformation consistency.
|
|
|
|
Kernel completion does not require Abaqus reference CSV files, `results.h5`, parser integration, global sparse assembly, or release readiness.
|
|
|
|
### Full Solver Release Readiness
|
|
Full solver release readiness is not in scope for this increment. It requires later evidence for:
|
|
- parser and I/O contract approval for the beam feature;
|
|
- Domain, AnalysisModel, DofManager, assembly, constraints, solve, and ResultsWriter integration;
|
|
- HDF5 result schema coverage;
|
|
- approved reference artifacts under `reference/<model-id>/`;
|
|
- FESA `results.h5` to Abaqus reference CSV comparison;
|
|
- physics sanity review;
|
|
- release readiness review with known limitations.
|
|
|
|
## Open Issues
|
|
- Parser integration: define the approved Abaqus keyword subset, beam section mapping, orientation input, and unsupported keyword diagnostics before parser work starts.
|
|
- Reference artifact availability: no Abaqus reference CSV files are required or generated in this kernel increment; approved reference artifacts are still needed for later solver-level verification.
|
|
- Full end-to-end assembly: global sparse assembly, boundary condition application, reaction recovery, solve flow, and HDF5 output are not covered by this kernel baseline.
|
|
- Local orientation convention: downstream formulation and I/O contract must define how local `y` and `z` axes are supplied, derived, validated, and reported.
|
|
- Tolerance values: downstream numerical review must select tolerances for matrix symmetry, rigid body mode residuals, transformation consistency, and force recovery.
|
|
|
|
## Downstream Handoff
|
|
### Research Agent
|
|
- Confirm authoritative Euler-Bernoulli 3D beam references and benchmark cases for stiffness, transformation, and rigid body checks.
|
|
|
|
### Formulation Agent
|
|
- Define local stiffness, transformation convention, end-force recovery convention, rigid body mode checks, and edge cases for invalid geometry or constants.
|
|
|
|
### Numerical Review Agent
|
|
- Review stiffness symmetry, rank/rigid body modes, sign conventions, transformation convention, conditioning risks, and numerical tolerances.
|
|
|
|
### I/O Definition Agent
|
|
- Define future parser and semantic model mapping for beam geometry, section constants, material constants, and local orientation without claiming full Abaqus compatibility.
|
|
|
|
### Reference Model Agent
|
|
- Define future reference model bundles only after parser and end-to-end solver scope is approved; do not generate reference CSV files in this increment.
|
|
|
|
### Implementation Planning Agent
|
|
- Plan C++ tests before production code for local stiffness, global transformation, end-force recovery, DOF order, symmetry, rigid body modes, and invalid inputs.
|