Skip to content

QF Solver 0.2.5a0 qualification pack

Executive summary

QF Solver 0.2.4a0 provides a common small-strain J2 constitutive contract, material-state transactions and a bounded Full Newton path for TET4, TET10, HEX8 and HEX20. The controlled 0.2.5a0 evidence closes a bounded four-family J2 qualification, including internal path, state, energy and rollback checks and a 64-check Code_Aster correlation with matched displacement, reaction, stress and PEEQ histories. These results remain limited to the documented configuration and are not a general physical validation.

The current geometric-nonlinear TET4/HEX8 Total-Lagrangian path, the contact solvers and the small-strain nonlinear driver use separate global iteration and state management paths. A bounded sparse linear-buckling route now exists for TET4/HEX8, but it is not a unified production analysis. The working tree also contains a sparse arc-length correction helper, but branch following remains unqualified.

Version 0.2.5a0 therefore targets a unified nonlinear structural mechanics infrastructure, not an accumulation of new element types. Work proceeds one gate at a time: close 0.2.4 V&V debt, unify geometric nonlinearity, verify buckling and path following, integrate frictionless contact, then prove coupled behavior. Friction is optional and cannot block the core release.

The controlled evidence closes G01, G02, G03, G05, G08 and G09 only within their documented bounded domains. G10 and G12 aggregate that approved release scope. In particular, G02 accepts the elastic Total-Lagrangian TET4/HEX8 pre-limit scope; it does not promote finite-kinematic J2, high-order geometric paths, post-limit response, contact or coupling.

The current robustness campaign also records provisional internal evidence for bounded TET4/HEX8 buckling factors, proportional arc-length continuation to a unit load factor, a reduced shallow-arch branch crossing an analytical limit point, unilateral sparse penalty-contact activation, and an adversarial MIN_INCREMENT_REACHED failure. It also records a bounded TET4 composition smoke for J2, Total-Lagrangian geometry and initial/updated frictionless penalty contact through the same Newton driver. These observations are useful for the next work packages. The bounded G05 contact contract is now closed; G04 and G06 remain unqualified and are excluded from the final release claim, while general surface-to-surface contact, friction and unrestricted large sliding remain outside the qualified claim.

G06 is intentionally deferred: its implementation is CODE_COMPLETE / EXPERIMENTAL, but its qualification remains deferred because finite-kinematic J2 is still research and the required external coupled correlations are not comparable or complete. The final gate status is NOT_IN_RELEASE_SCOPE, not PASS. The original MUST plan is preserved, while the Owner-approved final release scope is explicitly narrowed (OWNER_SCOPE_REVISION = APPROVED, SCOPE_CHANGE = YES).

G04 is likewise EXPERIMENTAL / NOT_QUALIFIED and NOT_IN_RELEASE_SCOPE for this alpha. Its branch evidence and remaining reference/mesh blockers are retained for a future qualification campaign. See 0_2_5_owner_scope_revision.md for the controlled decision and the precise qualified claim boundary.

The post-release roadmap is deliberately narrow. 0.2.6 targets maturity, V&V, robustness, benchmarks and scalability/performance. 0.2.7 targets an approved finite-strain J2 formulation and G06 requalification with coherent measures, state transactions and independent Code_Aster evidence. Neither roadmap entry promotes a claim in 0.2.5.

Audited baseline

Item Current state Evidence / implementation 0.2.5 consequence
Published baseline v0.2.4a0, SHA e368c0ce00874c16ff1e8fa9158ea0a8cd2dd745 successful release workflow, wheel/sdist and smoke installation use as immutable numerical baseline
J2 small-strain bounded experimental use materials/solid.py, constitutive and robustness tests close multi-element and path-dependent V&V debt first
Material state common committed/trial session core/material_state.py profile deep copies and reuse for every nonlinear subsystem
Full Newton qualified within 0.2.4 bounded scope core/nonlinear.py sole production Newton strategy initially
Modified Newton implemented, not production-qualified core/nonlinear.py remain locked outside qualified scope
Arc-length sparse correction, existing FEM TET4 path, restart smoke and reduced shallow-arch limit-point path observed core/nonlinear.py, core/nonlinear_checkpoint.py, verification/total_lagrangian_structural.py, robustness campaign unify the FEM branch with the common driver, verify snap-through/post-buckling and external correlation as WP4
Geometric nonlinearity research TET4/HEX8 Total Lagrangian with bounded large-deflection smoke core/geometric_nonlinear.py, elements/solid/*total_lagrangian*, robustness campaign merge contracts, mesh/external evidence and plastic large-rotation qualification after audit
Buckling/post-buckling bounded research TET4/TET10/HEX8/HEX20 linear-buckling route; assembled coarse/medium mesh sensitivity; bounded TET4 Euler reference now recorded core/buckling.py, tet4_total_lagrangian_buckling.py, robustness campaign add external/high-order correlation, true multi-family mesh convergence and post-buckling evidence
Normal contact bounded common penalty path with initial/updated geometry modes, open/close/recontact, multi-face search, opt-in clamped finite-sliding projection, penalty sensitivity and bounded Code_Aster histories contact/solver.py, core/nonlinear_assembly.py, g05_latest evidence general surface-to-surface, friction and unrestricted large sliding remain outside scope
Coupled nonlinear path bounded connected two-element TET4 J2 + geometry + penalty-contact composition, four-family J2/geometric and updated-contact replay through common Newton, independent coupled tangent FD, bounded geometry/contact mesh replay, and a deformable TET4 Green-Lagrange contact comparison results/vnv_0_2_5/g06_latest/, g06_diagnostic/summary.json, g06_geometry_contact_mesh/summary.json, g06_geometry_contact_code_aster/tet4_green_lagrange/comparison.json, tests/unit/test_nonlinear_multielement.py internal research evidence only; Code_Aster J2+geometry MUST remains convention-limited/non-convergent for TET10/HEX20, and the contact comparison remains open because the mapped reaction history differs by up to 76.7% and does not use an identical multiplier observable
Friction experimental separate path friction tests and contact solver optional WP7 after frictionless gate
External J2 correlation PASS_EXTERNAL_CORRELATION_BOUNDED Code_Aster affine and regular two-cell campaigns; TET10 uses explicit code_aster_5 comparison quadrature broader external cells and final-SHA evidence remain required
0.2.4 gate record published release, but local gate JSON retains pre-release SHA placeholders qualification/reviews/qf_solver_0_2_4a0_gate_status.json repair provenance in WP0 without rewriting historical numerical evidence

Current architecture map

AnalysisRouter
|-- nonlinear_static
|   `-- NonlinearStaticSolver
|       |-- small-strain element nonlinear contract
|       |-- ConstitutiveModel / J2
|       |-- MaterialStateSession
|       `-- linear backend
|-- geometric_nonlinear_static
|   `-- GeometricNonlinearStaticSolver
|       `-- TotalLagrangianTet4Assembly / StVK
`-- linear_static with contact
    `-- FrictionlessActiveSetSolver
        `-- independent active-set / friction iteration

The three branches do not yet share one residual assembly, one tangent assembly, one increment transaction or one convergence diagnostic contract.

0.2.4 debt carried into WP1

  1. Multi-element J2 mesh convergence across TET4/TET10/HEX8/HEX20.
  2. Cyclic loading within the exact isotropic-hardening limitations.
  3. External work, recoverable elastic energy and plastic dissipation balance.
  4. A real failed Newton increment followed by rollback, cutback and retry.
  5. Tangent finite-difference robustness near yield and on non-proportional paths.
  6. Broader external correlations beyond the bounded regular two-cell history.
  7. Investigation of PEEQ differences across formulations and HEX20 cost.
  8. Final-SHA provenance cleanup for the published 0.2.4 gate record.

Pack contents

The repeatable local readiness chain is scripts/release_readiness_pipeline_025.py. It is dry-run by default and never tags, pushes or uploads artifacts.

Planning status

G01, G02, G03, G05, G08, G09 and G11 are closed only by their controlled evidence and recorded replay decisions. G04 and G06 are explicitly NOT_IN_RELEASE_SCOPE in the final Owner-approved scope, while their qualification evidence remains experimental/deferred and is not PASS. G10 and G12 are closed only for the remaining bounded qualified scope. Optional friction gate G07 is NOT_IN_RELEASE_SCOPE. The original MUST plan and all limitations remain visible in the matrices; the scope revision does not erase history or authorize publication.