77 lines
4.2 KiB
Markdown
77 lines
4.2 KiB
Markdown
# 3D Euler-Bernoulli Beam Kernel Numerical Review
|
|
|
|
## Metadata
|
|
- feature_id: euler-beam-3d
|
|
- source_formulation: docs/formulations/euler-beam-3d-formulation.md
|
|
- status: pass-for-implementation-planning
|
|
- owner_agent: numerical-review-agent
|
|
- date: 2026-06-12
|
|
|
|
## Review Verdict
|
|
- verdict: pass-for-implementation-planning
|
|
- reason: the formulation has a bounded kernel scope, explicit DOF order, closed-form local stiffness, unambiguous transform convention, and concrete invalid-input behavior.
|
|
|
|
## Critical Findings
|
|
- No blocking numerical defects were found for kernel implementation planning.
|
|
- The formulation is not a full solver release contract. Parser, assembly, HDF5 output, reference comparison, and physics sanity remain downstream gates.
|
|
|
|
## Numerical Risk Assessment
|
|
- rigid_body_modes: expected six zero-energy modes for the unconstrained element. Implementation tests must include at least rigid global translation and local/global force consistency.
|
|
- patch_test: solver-level patch testing is blocked until assembly and parser integration exist.
|
|
- symmetry: local stiffness is symmetric by construction; global stiffness remains symmetric if `K_global = T^T K_local T` is used consistently.
|
|
- positive_definiteness: isolated element stiffness is positive semidefinite, not positive definite. Positive definiteness requires enough constraints in a solver model.
|
|
- hourglass: not applicable to closed-form Euler-Bernoulli beam stiffness.
|
|
- shear_locking: Timoshenko shear terms are excluded, so shear locking is not introduced by this kernel increment.
|
|
- volumetric_locking: not applicable.
|
|
- distortion: curved geometry and offsets are out of scope; zero or near-zero length must be rejected.
|
|
- singular_jacobian: zero length is the relevant singular mapping case.
|
|
- conditioning: very slender elements or large stiffness ratios can be ill-conditioned; tests should use moderate deterministic values.
|
|
- convergence: not applicable to this linear element kernel.
|
|
|
|
## Consistency Checks
|
|
- units: pass. `EA/L`, `GJ/L`, `EI/L^3`, `EI/L^2`, and `EI/L` have the expected force/displacement or moment/rotation dimensions for the matching DOF pairs.
|
|
- dimensions: pass. The element vector is 12x1 and stiffness is 12x12.
|
|
- signs: pass for the documented DOF order; local `v-rz` and `w-ry` coupling signs are explicitly stated.
|
|
- dof_ordering: pass. The formulation keeps node 1 DOFs followed by node 2 DOFs.
|
|
- coordinate_transforms: pass. `u_local = T*u_global`, `K_global = T^T*K_local*T`, and `f_global = T^T*f_local` are mutually consistent.
|
|
- matrix_vector_dimensions: pass.
|
|
- integration_weights: not applicable because the kernel uses closed-form stiffness.
|
|
- output_locations: pass for element end forces only; stress/strain recovery is explicitly out of scope.
|
|
|
|
## Verification Readiness
|
|
- unit_tests:
|
|
- model topology accepts `ElementTopology::beam2`.
|
|
- local stiffness representative entries match named coefficients.
|
|
- local stiffness is symmetric within `1.0e-10`.
|
|
- local force recovery equals `K*u`.
|
|
- invalid length and nonpositive section constants throw `std::invalid_argument`.
|
|
- axis-aligned transform produces global stiffness equal to local stiffness.
|
|
- rotated global stiffness remains symmetric.
|
|
- rigid global translation produces near-zero global end forces.
|
|
- simple axial extension produces equal and opposite axial end forces.
|
|
- parallel orientation vector throws `std::invalid_argument`.
|
|
- patch_tests: future solver integration gate.
|
|
- mms_or_mes: not required for this closed-form kernel increment.
|
|
- benchmark_reference_comparison: future gate after reference artifacts exist.
|
|
- missing_evidence: no missing evidence blocks kernel implementation.
|
|
|
|
## Required Revisions
|
|
|
|
### Formulation Agent
|
|
- None before implementation planning.
|
|
|
|
### Research Agent
|
|
- None before implementation planning.
|
|
|
|
### Reference Model Agent
|
|
- Future reference model artifacts remain required before release readiness, but they are not required for this kernel implementation.
|
|
|
|
## Downstream Handoff
|
|
|
|
### Implementation Planning Agent
|
|
- Use the verification readiness list as the minimum C++ TDD checklist.
|
|
- Keep tests deterministic and avoid ill-conditioned constants.
|
|
|
|
### Reference Model Agent
|
|
- Define future solution-verification models separately from these kernel-only unit tests.
|