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_COMPARABLEwhere 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
- Getting started
- Elements
- Analyses
- Solvers and backends
- Public roadmap
- 0.2.7 verification summary
- API stability
- Detailed changelog
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7636e8c333f39d776dcafca75549f4631338b5bb841112ebf354fb450e403c6b
|
|
| MD5 |
e74a8d4ba6629ef92e0775d3e2313aa9
|
|
| BLAKE2b-256 |
2c19ec9c5d275278e0d298d6f095fcf869937c55f9603198fb82a125dd714520
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34c1a681964692daa85964c47340cf11d7fda96ab6bf54083db0c645da591569
|
|
| MD5 |
0cf06bc516c9d8942f5eb72520a0ad9f
|
|
| BLAKE2b-256 |
1c30946545207ae15d6d9b6c2cee6f8cac84c7cb07661e3381727464868c0d1b
|