Skip to content

What's New in QF Solver 0.2.10

Overview

QF Solver 0.2.10 is the first public release after 0.2.8. Version 0.2.9 was a source-development snapshot, not a published PyPI package, GitHub Release, or Zenodo version. Version 0.2.10 therefore describes the accumulated work since the published 0.2.8 baseline, including work done during the 0.2.9 development cycle.

The selected wheel and sdist are the audited distribution artifacts. The whole-repository G03 archive scan remains failed, and automatic GitHub source archives are not represented as cleared. See the V&V summary and known limitations.

Unified nonlinear mechanics core

Several nonlinear analysis routes now share a common residual/tangent assembly contract, Newton iteration machinery, convergence diagnostics, and state transaction primitives. The intended flow is:

Analysis request
  -> nonlinear driver
  -> continuation / robustness policy
  -> trial-state transaction
  -> composite assembly
       + material response
       + geometric contribution
       + contact contribution (route-dependent)
  -> residual and tangent
  -> accept / commit, or reject / rollback

This is shared infrastructure, not evidence that every combination of material, element, geometry, contact, and backend has been qualified. Some contact recovery loops and the arc-length correction remain specialized.

Nonlinear state management

The supported transaction model separates accepted state from trial state. An increment can be evaluated tentatively, accepted and committed after the convergence checks, or rejected and rolled back before a retry/cutback. Schema version 2 checkpoints support bounded restart/replay routes; deterministic state digests are available where the route records them. These mechanisms matter for path-dependent material updates because a failed Newton trial must not silently become the next accepted material history.

Checkpoint/restart is not a blanket guarantee for frictional contact, distributed execution, or nonlinear transient dynamics. See the scoped records linked from the V&V summary.

Geometric nonlinearity

The release includes a Total-Lagrangian St. Venant–Kirchhoff route with objectivity, energy/tangent, force/reaction, and equilibrium checks for selected TET4 and HEX8 static serial cases. A final audit recorded GO_WITH_LIMITATIONS for its frozen campaign, but explicitly did not promote the route's maturity. It is therefore not presented here as generally qualified geometric nonlinearity. The audited envelope excludes, among other things, contact, coupled J2/geometric response, dynamics, MPI/PETSc, high-order elements, follower loads, and reduced/hourglass HEX8 formulations.

J2 plasticity

Small-strain J2

Small-strain J2 has bounded qualification for the element/analysis combinations listed in the existing 0.2.8 consolidated registry. Those registry decisions remain scoped and are not expanded by the 0.2.10 documentation.

Corotational J2

The corotational route supports large rigid-body rotations while retaining a small-local-strain constitutive assumption. The accepted formal scope is bounded to the documented HEX8 route. It is not a general multiplicative finite-strain plasticity model. TET10 and HEX20 extension evidence is recorded with limitations, but is not represented as an equivalent formal maturity promotion.

Contact

Frictionless penalty node-to-triangle contact remains experimental and route-bounded. Frictional stick/slip has prior Owner-accepted bounded serial evidence for a narrow direct linear_static route, but a formal requalification of the current source is not established. That evidence does not establish general finite sliding or updated-search capability. The available sensitivity study shows material mesh sensitivity; it is not a mesh-convergence result. Self-contact and impact/contact dynamics are outside the demonstrated scope.

Continuation and nonlinear robustness

The shared and route-specific policies include Full Newton iterations, line-search support, stagnation classification, numerical residual-floor handling, adaptive increments with cutback/retry, and an arc-length route. Evidence is bounded to the recorded cases. Arc-length evidence does not establish general limit-point tracking, bifurcation handling, or structural postbuckling capability.

Multi-family nonlinear evidence

Evidence packages cover selected TET4, TET10, HEX8, and HEX20 cases, but the maturity decision is not the same for every route:

Evidence area Public interpretation
Small-strain J2 Use the bounded decisions in the existing element-analysis registry.
Corotational J2 Formal bounded acceptance is limited to the documented HEX8 scope.
J2 extensions TET10/HEX20 evidence is bounded and accepted with limitations; it does not automatically promote maturity.
Coupled nonlinear routes Owner-accepted bounded evidence exists for selected static cases across the recorded families; friction, dynamics, and distributed routes are excluded.
Total-Lagrangian geometry The audited TET4/HEX8 campaign is GO_WITH_LIMITATIONS; maturity promotion is not recorded.

Implementation, verification, bounded acceptance, and qualification are different claims. The capability index links each public status to its scope.

External V&V

The development cycle added same-mesh numerical correlation against Code_Aster 18.1 for bounded linear-static cases across TET4, HEX8, TET10, and HEX20. This is external solver correlation: it is not physical validation, a general independent FEM implementation, or nonlinear Code_Aster correlation. Some supplementary comparison galleries are recorded as candidate evidence and must not be described as accepted qualification unless the final record says so.

PETSc / MPI

The evidence supports bounded two-rank PETSc/MPI linear-static cases with replicated input and root-side assembly for the recorded one-element families. It does not establish scalability, distributed assembly, nonlinear MPI, contact, or dynamics. Do not interpret it as general HPC support.

Known limitations

General finite-strain plasticity, general postbuckling, finite-sliding and self-contact, contact dynamics, general nonlinear transient dynamics, and general nonlinear MPI/PETSc remain outside the demonstrated scope. Frictional contact is mesh-sensitive; higher-order nonlinear routes have narrower evidence than the corresponding linear routes. QF Solver is not certified and the evidence does not establish universal physical validity. The whole-source G03 archive scan remains failed; a package-scoped scan does not clear a full repository archive.

Upgrade notes

After the tagged PyPI release workflow completes, install QF Solver 0.2.10 with python -m pip install "qf-solver==0.2.10". For existing 0.2.x users, qf_solver is the recommended namespace; the solveur compatibility namespace and legacy solveur-ef launcher remain present. Their planned removal in 0.3.0 is a compatibility plan, not a 0.2.10 release event. See installation and the public API contract.

Release artifacts and reproducibility

The source tag is v0.2.10. The exact source SHA and wheel/sdist SHA-256 values are recorded in the prospective release contract. The version DOI is 10.5281/zenodo.23106744, and the project concept DOI remains 10.5281/zenodo.22697897. Publish only the audited selected wheel and sdist; do not describe automatic whole-repository source archives as cleared while G03 remains failed.