18 KiB
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, rzorder. - Section and material constants are constant over the element:
E,G,A,J,Iy,Iz. IyandIzare second moments of area about the element local principal bending axes, andJis 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
xaxis follows node 1 to node 2; the source of localyandzorientation 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, rzorder. - 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
EandG - 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
xdirection. - The kernel must receive positive finite constants for
E,G,A,J,Iy, andIz. - 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.h5and 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.mdexists 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
mustrequirement has an acceptance criterion or downstream verification hook in the Requirement Verification Matrix. - The following validation commands pass:
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.h5to 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
yandzaxes 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.