Statique lineaire et systemes creux¶
Apres assemblage et application des blocages:
$$ \mathbf K_{ff}\mathbf u_f=\mathbf f_f. $$
La matrice elastique correctement contrainte est normalement symetrique definie positive. Le solveur ne suppose toutefois pas cette propriete pour toutes les methodes disponibles.
Hypotheses matricielles¶
| Propriete | Consequence |
|---|---|
| $K=K^T$ et definie positive | cg est la methode iterative naturelle |
| $K=K^T$ mais indefinie | minres est admissible; examiner la physique |
| matrice generale | gmres ou bicgstab, avec cout/robustesse differents |
| matrice singuliere | aucun resultat n'est accepte; revoir les blocages |
Methodes¶
La derivation des voies directe et iteratives est detaillee dans Methodes lineaires : algorithmes.
| Methode | Domaine conseille | Caracteristique |
|---|---|---|
direct / spsolve |
Petits et moyens cas | LU creuse robuste, memoire potentiellement elevee |
cg |
Symetrique definie positive | Faible memoire, sensible au conditionnement |
minres |
Symetrique, eventuellement indefinie | Residus minimises sans stockage GMRES |
gmres |
Non symetrique general | Robuste mais stockage de la base de Krylov |
bicgstab |
Non symetrique general | Memoire contenue, convergence parfois irreguliere |
Les preconditionneurs proposes sont jacobi et ilu. Jacobi est peu couteux;
ILU peut accelerer fortement mais ajoute du remplissage et une factorisation.
Criteres de fin¶
Les solveurs iteratifs utilisent rtol, atol et maxiter. Une solution est
ensuite controlee par:
$$ \eta=\frac{|\mathbf K_{ff}\mathbf u_f-\mathbf f_f|2} {\max(|\mathbf f_f|_2,|\mathbf K. $$}\mathbf u_f|_2,1)
Une solution non finie, un avertissement de rang ou $\eta$ superieur au seuil
devient une NumericalConvergenceError.
Verification mecanique¶
Le residu libre controle les equations resolues. Les reactions sont le residu sur les ddl bloques. Pour un probleme lineaire:
$$ U=\tfrac12\mathbf u^T\mathbf K\mathbf u, \qquad W=\mathbf u^T\mathbf f, \qquad 2U\simeq W. $$
Ces identites ne detectent pas un mauvais materiau ou une mauvaise charge; elles prouvent la coherence du systeme discret assemble.

--8<-- "docs/generated/linear_solver_results.md"
Passage a l'echelle¶
Le mode standard extrait deux fois la matrice libre et materialise le post-traitement. Pour plusieurs millions de ddl, utiliser la voie PETSc ou matrix-free decrite dans Grands modeles.
Parametres et diagnostics¶
Les parametres publics sont method, rtol, atol, maxiter,
preconditioner, ilu_drop_tol, ilu_fill_factor et le seuil final de
residu. La sortie indique convergence, iterations, residu, preconditionneur et
historique. Un fallback n'est jamais silencieux.
Complexite et memoire¶
Une LU creuse depend du remplissage et peut depasser largement le stockage de $K$. Une iteration de Krylov coute principalement un produit matrice-vecteur $O(nnz)$; GMRES ajoute le stockage d'une base croissante. ILU echange memoire contre reduction du nombre d'iterations.
Modes d'echec et demonstration¶
Sont bloques: rang insuffisant, pivot nul, limite d'iterations, residu anormal et valeur non finie. Le benchmark poutre TET4/TET10 compare les cinq methodes sur un meme systeme assemble.
Tracabilite des algorithmes¶
| Methode/equation | Reference | Code | Test/invariant | Exigence |
|---|---|---|---|---|
| Equilibre, reactions et energie | REF-FEM-BATHE | core/solver.py |
residu libre, $2U=W$ | REQ-SOL-001 |
| Gradient conjugue | REF-CG-1952 | core/linear_methods.py |
comparaison directe | REQ-SOL-001 |
| GMRES | REF-GMRES-1986 | core/linear_methods.py |
residu et non-regression | REQ-SOL-001 |
| MINRES | REF-MINRES-1975 | core/linear_methods.py |
matrice symetrique | REQ-SOL-001 |
| BiCGSTAB | REF-BICGSTAB-1992 | core/linear_methods.py |
residu et non-regression | REQ-SOL-001 |
Contrat documentaire de la methode¶
| Rubrique exigee | Contenu et preuve |
|---|---|
| Geometrie et DDL | Herites du modele; resolution sur les DDL libres. |
| Formulation mathematique | $K_{ff}u_f=F_f-K_{fc}u_c$ et reconstruction des reactions. |
| Integration et algorithme | Quadrature elementaire, assemblage sparse, reduction puis solveur choisi. |
| Exemple executable | python .\qf_solver.py solve --input .\examples\tet4_static.json --output .\results\static.json |
| Maillage, chargement et conditions limites | Cas TET4 officiel, donnees JSON validees avant assemblage. |
| Tableau de resultats et figure | Tableau plus haut et deformee TET4. |
| Invariants | Finitude, symetrie attendue, residu, reactions, equilibre et energie. |
| Convergence | Accord direct/iteratif et convergence en maillage propre a l'element. |
| Limites et references | Petites transformations; REF-FEM-BATHE, REQ-SOL-001. |
Owner review documentaire requise avant tout changement de maturite.