feat(linear-static-3d-euler-beam): step 16 - euler-beam-element-review-fix
This commit is contained in:
@@ -580,3 +580,53 @@
|
||||
local stiffness, constant local equivalent load, and distinct recovery data
|
||||
to Step 18 sparse assembly and Step 22 result recovery without owning element
|
||||
identity, equation numbering, parser coupling, or result persistence.
|
||||
|
||||
### Root numerical review — Fix Round 1
|
||||
|
||||
- scope: all three `Important` findings addressed in
|
||||
`src/fesa/elements/euler_beam_3d.cpp` and the existing exact T16 tests; the
|
||||
two `Minor` findings were intentionally not changed in this round.
|
||||
- defect_RED: after adding finite-positive derived-overflow,
|
||||
derived-underflow, and length-scaled-underflow fixtures to existing
|
||||
`T16-BEAM-007`,
|
||||
`ctest --test-dir .harness/build -C Debug -R EulerBeam3D.RejectsInvalidGeometryAndProperties --output-on-failure`
|
||||
exited 8. All three invalid fixtures were accepted; the diagnostic path
|
||||
observed respectively a nonfinite stiffness with maximum `inf`, an all-zero
|
||||
stiffness, and a stiffness with a required bending coefficient underflowed
|
||||
to zero.
|
||||
- defect_GREEN: `cmake --build .harness/build --config Debug --target fesa_tests`
|
||||
exited 0 and the same focused CTest exited 0 with 1/1 passed. `create()` now
|
||||
requires derived `EA`, `GJ`, `EIy`, `EIz` and all ten distinct positive
|
||||
length-scaled axial/torsion/bending block magnitudes to be finite and
|
||||
strictly positive. This rejects arithmetic overflow/underflow as
|
||||
`invalid-beam-property` without a conditioning threshold.
|
||||
- invariant_hardening: production `normalizedMatrixError` now returns infinite
|
||||
error for any nonfinite operand, difference, scale, or quotient, so the
|
||||
two-point/closed-form `1e-12` invariant fails closed.
|
||||
- analytical_hardening: every nonzero reference in existing `T16-BEAM-006`
|
||||
now checks `abs(actual-reference)/abs(reference) <= 1e-9`; only the explicitly
|
||||
zero free-end resultants retain an absolute check. This evidence-only change
|
||||
was expected to remain GREEN and its focused test passed without a production
|
||||
correction.
|
||||
- convergence_hardening: existing `T16-BEAM-005` directly assembles aligned
|
||||
1/2/4-element `[v,rz]` cantilever systems from public `localStiffness()` and
|
||||
`localEquivalentLoad()` only. It checks each exact signed constant transverse
|
||||
element load, solves a test-only dense reduced system, and uses independent
|
||||
five-point integration of interior cubic-Hermite displacement error against
|
||||
the quartic uniform-load solution. Both refinements are monotone and each
|
||||
observed order is 4 within `1e-8`. No `DLOAD`, parser, Domain, or production
|
||||
assembly support was introduced. This evidence-only change was expected to
|
||||
remain GREEN and the T16-005/T16-006 focused run passed 2/2.
|
||||
|
||||
| stage | exact command | exit_code | observed_result |
|
||||
| --- | --- | ---: | --- |
|
||||
| FIX1-RED | `ctest --test-dir .harness/build -C Debug -R EulerBeam3D.RejectsInvalidGeometryAndProperties --output-on-failure` | 8 | 0/1 passed; unexpected acceptance exposed nonfinite and zero stiffness outcomes |
|
||||
| FIX1-GREEN-build | `cmake --build .harness/build --config Debug --target fesa_tests` | 0 | corrected source and unchanged ten test names compiled under `/W4 /WX` without a warning |
|
||||
| FIX1-GREEN-defect | `ctest --test-dir .harness/build -C Debug -R EulerBeam3D.RejectsInvalidGeometryAndProperties --output-on-failure` | 0 | 1/1 passed |
|
||||
| FIX1-GREEN-evidence | `ctest --test-dir .harness/build -C Debug -R 'EulerBeam3D.(ConstantLineLoadMatchesAllSignedComponents|AnalyticalAxialTorsionAndTwoPlaneBendingRecover)' --output-on-failure` | 0 | 2/2 analytical/convergence hardening tests passed without another production change |
|
||||
| FIX1-VERIFY-configure | `cmake -S . -B .harness/build -A x64 -DFESA_GTEST_SOURCE_DIR=C:/git/googletest "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"` | 0 | exact MSVC x64 Debug tree configured and generated |
|
||||
| FIX1-VERIFY-build | `cmake --build .harness/build --config Debug` | 0 | full Debug build completed without a new warning |
|
||||
| FIX1-VERIFY-targeted | `ctest --test-dir .harness/build -C Debug -R EulerBeam3D --output-on-failure` | 0 | exact 10/10 passed |
|
||||
| FIX1-VERIFY-discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | 0 | 39 total tests discovered, including the same ten EulerBeam3D names |
|
||||
| FIX1-VERIFY-full | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | 39/39 passed |
|
||||
| FIX1-VERIFY-scans | fail-on-match numerical invariant, dependency, scope, exact-test-count, reference, phase-index, and diff/whitespace scans | 0 | derived rigidity/coefficient and fail-closed checks present; tests 10; leaks 0; reference and phase index unchanged; diff clean |
|
||||
|
||||
Reference in New Issue
Block a user