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¶
- Multi-element J2 mesh convergence across TET4/TET10/HEX8/HEX20.
- Cyclic loading within the exact isotropic-hardening limitations.
- External work, recoverable elastic energy and plastic dissipation balance.
- A real failed Newton increment followed by rollback, cutback and retry.
- Tangent finite-difference robustness near yield and on non-proportional paths.
- Broader external correlations beyond the bounded regular two-cell history.
- Investigation of PEEQ differences across formulations and HEX20 cost.
- Final-SHA provenance cleanup for the published 0.2.4 gate record.
Pack contents¶
- Scope
- Target architecture
- Work packages and dependencies
- Requirements matrix
- Formula inventory
- V&V plan
- V&V matrix
- Benchmark plan
- External correlation matrix
- Performance plan
- Failure-mode plan
- Risk register
- Gate matrix
- Known limitations
- Release-readiness template
- Owner Review template
- Owner scope revision
- G02 Owner decision
- Objective-mode execution plan
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.