Skip to main content

QF Solver

An inspectable Python finite-element solver for structural mechanics.

QF Solver provides white-box finite-element formulations, numerical diagnostics and reproducible verification evidence. Support is always scoped by element, analysis, material, mesh, loading and solver route. A passing example is not a universal qualification.

Capabilities

Capability Public status Scope
Linear static QUALIFIED_BOUNDED Recorded elastic element and load combinations.
Small-strain J2 QUALIFIED_BOUNDED TET4, TET10, HEX8 and HEX20 within the documented small-strain scope.
Modal, Newmark and harmonic SUPPORTED_WITH_LIMITATIONS Controlled linear cases with route-specific evidence.
Linear buckling SUPPORTED_WITH_LIMITATIONS Bounded family-specific sparse cases; no post-buckling claim.
Frictionless contact SUPPORTED_WITH_LIMITATIONS Bounded node-to-triangle cases; friction is outside this claim.
WEDGE6 static EXPERIMENTAL Controlled small-strain elastic vertical-slice workflow only.
WEDGE6 modal QUALIFIED_BOUNDED Homogeneous isotropic consistent-mass route, first three modes, declared scope only.
Large-model PETSc/MPI SUPPORTED_WITH_LIMITATIONS Recorded structured TET4 workloads and pinned environments only.

The active combination matrix is in docs/verification/0_2_7/0_2_7_capability_matrix.md. It is the authoritative guide to what a particular combination means.

Installation

For the stable source release:

git clone https://github.com/emptiesvoid-cloud/QF_solver.git
Set-Location QF_solver
git checkout v0.2.7
python -m pip install .
qf-solver --version

When the package is available from the package index, the equivalent user installation is:

python -m pip install qf-solver
qf-solver --version

Optional development and integration extras are documented in docs/getting-started/installation.md. PETSc, MPI and SLEPc are optional integrations and are not required for the core import or the standard small examples.

Quick start: CLI

From the repository root, run the maintained TET4 example:

qf-solver check-mesh --input .\examples\tet4_static.json
qf-solver solve --input .\examples\tet4_static.json --output .\results\tet4.json

The full first-calculation guide is docs/getting-started/quickstart.md.

Quick start: Python

Use the public qf_solver namespace:

from qf_solver import check_mesh, load_model, save_result, solve_model

model = load_model("examples/tet4_static.json")
check_mesh(model)
result = solve_model(model)
save_result(result, "results/tet4.json")

The historical solveur namespace remains available for compatibility. New applications should use qf_solver; see docs/reference/api_stability.md.

Elements and analyses

The public element summary is in docs/elements/index.md, and the analysis summary is in docs/analyses/index.md.

The current release includes bounded routes for TET4, TET10, HEX8 and HEX20, along with case-bounded shell, beam and discrete paths. The status is explicit: WEDGE6 static remains experimental. WEDGE6 modal qualification does not transfer to static, nonlinear or other dynamic analyses.

Measured performance

The published performance evidence is bounded, not a universal scaling law:

Workload Recorded result Boundary
1,029,000 DOF Two stable PETSc replays Structured TET4, recorded host and MPI container.
3,000,000 DOF Two Silver replays plus bounded Gold Compute evidence Same frozen PETSc/CG/GAMG route.
5,012,640 DOF Bronze and two complete 5M Silver replays 9,773,946 TET4 elements, recorded 8-rank environment.
10,125,000 DOF C3 PASS_WITH_LIMITATIONS evidence Complete solve evidence exists; deeper scaling analysis remains bounded.

No claim of GPU, general HPC, hardware-independent scaling, mixed-mesh support or a general nonlinear performance claim is made.

Main limitations

  • WEDGE6 static is experimental; WEDGE15 and PYRAMID5 are not supported.
  • Mixed TET/WEDGE/HEX workflows and next-generation HEX8R/SRI/B-bar paths are deferred or research-only.
  • Finite-kinematic J2, generalized nonlinear, contact and finite-sliding routes remain experimental or outside the qualified scope.
  • 5M Gold and deeper 10M scaling analysis are deferred.
  • Code_Aster correlation is bounded to comparable recorded cases. CalculiX is NOT_COMPARABLE where conventions or observables do not match strictly.
  • Linux and Windows evidence is available in the recorded test matrix; macOS and some Python versions remain unverified and are not claimed as tested.

Documentation and verification

QF Solver distinguishes IMPLEMENTED, TESTED, VERIFIED, EXTERNALLY_VALIDATED, QUALIFIED and EXPERIMENTAL. The detailed evidence pack preserves the exact inputs, outputs, manifests and source references used for each recorded result.

No claim of certification or universal physical validation is made.

Contributing, license and citation

Development setup and quality checks are described in CONTRIBUTING.md. The software is distributed under the Apache License 2.0; documentation and original examples are under CC BY 4.0. Third-party terms are listed in THIRD_PARTY_LICENSES.md. See CITATION.cff for citation metadata.

Documentation contributors can build the controlled evidence locally with:

python .\scripts\build_docs.py --profile engineering
python .\scripts\build_technical_latex.py

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qf_solver-0.2.7.tar.gz (985.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qf_solver-0.2.7-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file qf_solver-0.2.7.tar.gz.

File metadata

  • Download URL: qf_solver-0.2.7.tar.gz
  • Upload date:
  • Size: 985.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for qf_solver-0.2.7.tar.gz
Algorithm Hash digest
SHA256 7636e8c333f39d776dcafca75549f4631338b5bb841112ebf354fb450e403c6b
MD5 e74a8d4ba6629ef92e0775d3e2313aa9
BLAKE2b-256 2c19ec9c5d275278e0d298d6f095fcf869937c55f9603198fb82a125dd714520

See more details on using hashes here.

File details

Details for the file qf_solver-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: qf_solver-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for qf_solver-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 34c1a681964692daa85964c47340cf11d7fda96ab6bf54083db0c645da591569
MD5 0cf06bc516c9d8942f5eb72520a0ad9f
BLAKE2b-256 1c30946545207ae15d6d9b6c2cee6f8cac84c7cb07661e3381727464868c0d1b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.7 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page