Skip to content

docs: solver audit and gap analysis from deep code review#32

Open
diegokingston wants to merge 2 commits intomainfrom
solver-audit-gap-analysis
Open

docs: solver audit and gap analysis from deep code review#32
diegokingston wants to merge 2 commits intomainfrom
solver-audit-gap-analysis

Conversation

@diegokingston
Copy link
Copy Markdown

Comprehensive audit covering solver engine, test suite, design checks, frontend validation, and numerical behavior. Catalogs gaps not currently in SOLVER_ROADMAP, PRODUCT_ROADMAP, or the safety hardening research note.

Key findings:

  1. Three fully implemented modules (AdaptiveStepper, line_search, section_stress) exist and are tested but not wired into any solver

  2. Five nonlinear solvers lack divergence detection, adaptive stepping, and line search — only arc_length has robust convergence controls

  3. Linear solver returns results silently when material yields, with no overstress warning despite section_stress.rs already computing Von Mises vs fy

  4. No post-solve residual check (||Ku-f||/||f||) in any solver path

  5. Missing user-facing warnings: P-Delta recommendation (N/Ncr), B2 warning zone, rigid connection assumption, thermal restraint, mesh quality summary

  6. Steel design check missing shear (AISC G2), RC missing P-M interaction diagram, 3/6 design checks missing pass/fail boolean

  7. ~20 classical analytical solutions not tested: Maxwell/Betti reciprocity, inelastic buckling, LTB analytical, Cook's membrane, circular plate, Timoshenko beam correction, SDOF harmonic resonance, and others

  8. Self-weight not automatic for frame elements (only shells/plates)

Includes prioritized recommendations from immediate (wire existing dead code) to near-term (add safeguards) to verification depth (analytical tests).

Comprehensive audit covering solver engine, test suite, design checks,
frontend validation, and numerical behavior. Catalogs gaps not currently
in SOLVER_ROADMAP, PRODUCT_ROADMAP, or the safety hardening research note.

Key findings:

1. Three fully implemented modules (AdaptiveStepper, line_search, section_stress)
   exist and are tested but not wired into any solver

2. Five nonlinear solvers lack divergence detection, adaptive stepping, and
   line search — only arc_length has robust convergence controls

3. Linear solver returns results silently when material yields, with no
   overstress warning despite section_stress.rs already computing Von Mises
   vs fy

4. No post-solve residual check (||Ku-f||/||f||) in any solver path

5. Missing user-facing warnings: P-Delta recommendation (N/Ncr), B2 warning
   zone, rigid connection assumption, thermal restraint, mesh quality summary

6. Steel design check missing shear (AISC G2), RC missing P-M interaction
   diagram, 3/6 design checks missing pass/fail boolean

7. ~20 classical analytical solutions not tested: Maxwell/Betti reciprocity,
   inelastic buckling, LTB analytical, Cook's membrane, circular plate,
   Timoshenko beam correction, SDOF harmonic resonance, and others

8. Self-weight not automatic for frame elements (only shells/plates)

Includes prioritized recommendations from immediate (wire existing dead code)
to near-term (add safeguards) to verification depth (analytical tests).
…ysis

Sections 9-10 document that all solvers start from zero displacement with no
warm-start capability, a dead initial_displacements API field, and the complete
absence of iterative solvers and preconditioners. Recommendations updated with
new items for warm-start APIs, iterative solver infrastructure (P2), and
quasi-Newton methods (P3).
@Batuis Batuis changed the title Add solver audit and gap analysis from deep code review docs: solver audit and gap analysis from deep code review Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant