Skip to content

Interfaces CLI et API publiques

Cette page decrit les interfaces disponibles dans la release 0.2.7. La stabilite d'une API ou la compatibilite d'un import ne constitue pas une qualification mecanique : les claims restent gouvernes par le registry v2 et les preuves de verification 0.2.7.

Commandes principales

qf-solver methods
qf-solver check-mesh --input model.json
qf-solver solve --input model.json --output result.json
qf-solver evidence --input model.json --output evidence_dir
qf-solver verify-evidence --input evidence_dir
qf-solver import-mesh --mesh model.msh --setup model.setup.json --output model.json
qf-solver benchmarks
qf-solver benchmark --case BM-SOL-TET4-PATCH-001 --output results/benchmarks
qf-solver vnv-compare --study study.json --output results/vnv
qf-solver verify-contact --output results/contact_v1 --json-report results/contact_v1.json
qf-solver vnv-import-benchmark --case BM-SOL-CANTILEVER-001 --output VNV-TET4-CANTILEVER-ANALYTIC-001
qf-solver vnv-import-benchmark --case BM-SOL-TET4-TORSION-001 --output VNV-TET4-TORSION-ANALYTIC-001
qf-solver verify-all --profile engineering --json-report results/verify_all_engineering.json

verify-all --json-report ecrit un verdict machine-readable contenant le profil, le scope, chaque commande executee et son code de retour. Le rapport est ecrit egalement si une commande echoue, afin de rendre la campagne rejouable et auditable hors du flux console.

La forme module python -m solveur.cli.main est portable apres installation du package, ou depuis ce checkout avec PYTHONPATH=src. Depuis un checkout source sans installation, utiliser python qf_solver.py afin d'identifier explicitement le code local. Aucune de ces formes ne garantit l'isolation d'un autre checkout deja present dans l'environnement Python. Les anciens noms solveur-ef et main_solveur.py ne sont que des alias deprecies jusqu'a 0.3.0 et ecrivent un avertissement sur stderr.

Codes de sortie:

Code Sens
0 Calcul ou verification accepte
2 Entree ou maillage invalide
3 Singularite, non-convergence ou resultat non fini
4 Refus de la politique de qualification
5 Environnement ou dependance indisponible

--debug active explicitement la trace Python. Sans cette option, la CLI retourne un diagnostic court adapte a l'automatisation.

API Python stable

from qf_solver import (
    check_mesh,
    import_gmsh_model,
    list_benchmarks,
    load_model,
    run_benchmark,
    run_contact_verification,
    run_vnv_study,
    import_cantilever_vnv_study,
    import_torsion_vnv_study,
    save_evidence,
    save_result,
    solve_model,
)

model = load_model("model.json")
mesh = check_mesh(model)
result = solve_model(model)
save_result(result, "result.json")
save_evidence(model, result, "evidence", input_path="model.json")

imported = import_gmsh_model("model.msh", "model.setup.json")
cases = list_benchmarks()
benchmark = run_benchmark(cases[0].identifier, "results/benchmarks")
contact_vnv = run_contact_verification("results/contact_v1")
vnv = run_vnv_study("study.json", "results/vnv")
study = import_cantilever_vnv_study("VNV-TET4-CANTILEVER-ANALYTIC-001")
torsion = import_torsion_vnv_study("VNV-TET4-TORSION-ANALYTIC-001")

Le parsing reste dans io, la logique mecanique dans core/elements et l'interface publique dans solveur.api. Le code appelant ne doit pas importer les classes internes pour obtenir un resultat courant.

Grand modele

from qf_solver import load_large_model, solve_large_model

model = load_large_model("model.h5")
result = solve_large_model(model, "result_large", solver_backend="petsc", preconditioner="gamg")

Le backend large refuse explicitement MITC4, TET10, dynamique, modal et non-lineaire dans son perimetre v1.