{"id":1211,"date":"2026-08-21T14:28:50","date_gmt":"2026-08-21T14:28:50","guid":{"rendered":"https:\/\/matforge.org\/?p=1211","raw":"https:\/\/matforge.org\/?p=1211"},"modified":"2026-08-21T14:28:50","modified_gmt":"2026-08-21T14:28:50","slug":"debugging-numerical-simulations-diagnosing-divergence-instability","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/","title":{"rendered":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s","raw":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 14<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><h2>tl;dr \u2014 Points cl\u00e9s \u00e0 emporter<\/h2>\n<ul>\n<li><strong>Divergence et instabilit\u00e9 se r\u00e9partissent en quatre cat\u00e9gories&nbsp;:<\/strong> Temporal (LFC\/Mesh), Spatial (Qualit\u00e9 maille), Limites\/Initiales et Param\u00e8tres de solveur.<\/li>\n<li><strong>Les r\u00e9sidus \u00e0 eux seuls ne prouvent pas la convergence.<\/strong> Les points de surveillance (forces, temp\u00e9ratures, vitesses) doivent \u00e9galement \u00eatre v\u00e9rifi\u00e9s. Les r\u00e9sidus peuvent \u00eatre flatt\u00e9s tandis qu&rsquo;une variable localis\u00e9e explose.<\/li>\n<li><strong>Diagnostiquez une variable \u00e0 la fois.<\/strong> Modifiez un seul param\u00e8tre, puis r\u00e9ex\u00e9cutez. Si vous changez deux choses et que la simulation se stabilise, vous ne savez pas quelle solution r\u00e9ellement fonctionn\u00e9.<\/li>\n<li><strong>l&rsquo;astuce de l&rsquo;\u00e9change de limites<\/strong> (d\u00e9finir temporairement toutes les limites \u00e0 fixe ou par d\u00e9faut et \u00e0 r\u00e9ex\u00e9cuter) est le moyen le plus rapide d&rsquo;isoler si la divergence provient des conditions aux limites ou de la stabilit\u00e9 du pas de temps.<\/li>\n<li><strong>Les valeurs propres n\u00e9gatives dans la FEA signalent souvent des erreurs de signalisation, et non une erreur de solveur.<\/strong> Le correctif correct est une m\u00e9thode de longueur d&rsquo;arc (RIK) ou une dynamique implicite, et non une tol\u00e9rance plus stricte.<\/li>\n<\/ul>\n<hr>\n<h2>Pourquoi les simulations divergent &#8211; et pourquoi le diagnostic est important<\/h2>\n<p>Chaque simulation num\u00e9rique a la m\u00eame signature terrifiante&nbsp;: \u00e0 un certain pas de temps ou \u00e0 une it\u00e9ration, les valeurs explosent vers NAN ou Infinity, le solveur cesse de progresser et vous restez \u00e0 regarder une fen\u00eatre de terminal pleine de messages <code>Inf<\/code>.<\/p>\n<p>Si vous red\u00e9marrez imm\u00e9diatement avec un pas de temps plus petit et que la simulation s&rsquo;ex\u00e9cute bien, vous avez eu de la chance. Si vous modifiez quelque chose et que la simulation plante toujours, vous d\u00e9boguez maintenant avec moins d&rsquo;informations qu&rsquo;auparavant.<\/p>\n<p>Le probl\u00e8me n&rsquo;est pas que les simulations ne sont pas fiables. Ils suivent des r\u00e8gles math\u00e9matiques bien comprises. Le probl\u00e8me est que lorsqu&rsquo;une simulation diverge, le message d&rsquo;erreur ne vous dit presque jamais <strong>ce qui <\/strong> s&rsquo;est mal pass\u00e9 &#8211; il vous indique simplement que quelque chose s&rsquo;est mal pass\u00e9.<\/p>\n<p>Comprendre la taxonomie de la d\u00e9faillance num\u00e9rique est la premi\u00e8re \u00e9tape vers le diagnostic syst\u00e9matique. Les d\u00e9faillances num\u00e9riques se divisent en quatre cat\u00e9gories de cause racine&nbsp;:<\/p>\n<ol>\n<li><strong>Instabilit\u00e9 temporelle<\/strong> \u2014 Le pas de temps est trop grand, la condition CFL est viol\u00e9e ou le solveur sort de sa zone de stabilit\u00e9.<\/li>\n<li><strong>Pathologie spatiale (mesh)<\/strong> &#8211; cellules hautement asym\u00e9triques, rapports d&rsquo;aspect extr\u00eames ou volumes n\u00e9gatifs cr\u00e9ent des gradients non physiques.<\/li>\n<li><strong>Erreurs de limites ou de condition initiale<\/strong> \u2014 Des pressions contradictoires, des valeurs de r\u00e9f\u00e9rence manquantes ou des valeurs de d\u00e9part incoh\u00e9rentes cr\u00e9ent des contradictions num\u00e9riques.<\/li>\n<li><strong>Probl\u00e8mes de configuration des solveur<\/strong> \u2014 mauvais sch\u00e9mas de discr\u00e9tisation, facteurs de sous-relaxation agressifs ou tol\u00e9rances inappropri\u00e9es.<\/li>\n<\/ol>\n<p>Lorsque vous savez \u00e0 quelle cat\u00e9gorie appartient votre d\u00e9faillance, le diagnostic devient un processus d&rsquo;\u00e9limination. Lorsque vous ne le faites pas, vous finissez par deviner &#8211; et deviner, c&rsquo;est la fa\u00e7on dont vous perdez des heures de calcul.<\/p>\n<hr>\n<h2>Les quatre cat\u00e9gories de cause racine<\/h2>\n<h3>1. Instabilit\u00e9 temporelle<\/h3>\n<p>L&rsquo;instabilit\u00e9 temporelle est la cause la plus fr\u00e9quente de divergence dans les simulations d\u00e9pendant du temps. Le principal coupable est la condition <strong>CFL (Courant-Friedrichs-Lewy)<\/strong>, qui stipule que pour un sch\u00e9ma explicite, le pas de temps doit satisfaire&nbsp;:<\/p>\n<p>$$<br \/> c = frac{u delta t}{delta x} leq 1<br \/> $$<\/p>\n<p>Quand $c &gt; 1&nbsp;$, les informations se propagent plus rapidement que le sch\u00e9ma num\u00e9rique ne peut le suivre et les erreurs se compliquent de mani\u00e8re exponentielle. Ce n&rsquo;est pas une nuisance num\u00e9rique mineure, c&rsquo;est une contrainte math\u00e9matique fondamentale.<\/p>\n<p><strong>Que rechercher&nbsp;:<\/strong><\/p>\n<ul>\n<li>La simulation diverge imm\u00e9diatement apr\u00e8s les premiers pas de temps<\/li>\n<li>Le message d&rsquo;erreur fait r\u00e9f\u00e9rence \u00e0 \u00ab\u00a0Time pas trop petit\u00a0\u00bb ou \u00e0 \u00ab\u00a0Limitation de stabilit\u00e9\u00a0\u00bb<\/li>\n<li>Les m\u00eames conditions de maillage et de limites convergent lorsque vous r\u00e9duisez le pas de temps<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>R\u00e9duisez le pas de temps jusqu&rsquo;\u00e0 ce que le nombre de LCF descende en dessous de 0,5 comme point de d\u00e9part s\u00fbr<\/li>\n<li>Utilisez une strat\u00e9gie adaptative de pas de temps qui \u00e9volue en fonction des nombres de cours locaux<\/li>\n<li>V\u00e9rifier la coh\u00e9rence de la propri\u00e9t\u00e9 des mat\u00e9riaux &#8211; Un fluide \u00e0 haute vitesse dans un milieu dense peut avoir une limite de LFC beaucoup plus stricte que pr\u00e9vu<\/li>\n<\/ul>\n<h3>2. Pathologie spatiale (maillage)<\/h3>\n<p>La qualit\u00e9 du maillage est la deuxi\u00e8me cause de divergence la plus fr\u00e9quente. Contrairement \u00e0 l&rsquo;instabilit\u00e9 temporelle, qui se manifeste g\u00e9n\u00e9ralement t\u00f4t, la pathologie du maillage peut entra\u00eener des divergences \u00e0 n&rsquo;importe quel stade, en particulier dans les simulations non lin\u00e9aires ou multiphysiques o\u00f9 le maillage interagit avec le solveur de mani\u00e8re it\u00e9rative.<\/p>\n<p><strong>Indicateurs de probl\u00e8mes&nbsp;:<\/strong><\/p>\n<ul>\n<li>asym\u00e9trie des cellules \u00e9lev\u00e9es (&gt; 0,9 sur une \u00e9chelle de 0 \u00e0 1)<\/li>\n<li>Rapports d&rsquo;aspect extr\u00eames (&gt; 100:1)<\/li>\n<li>Volumes de cellules n\u00e9gatives (l&rsquo;erreur la plus grave)<\/li>\n<\/ul>\n<p>La divergence g\u00e9n\u00e9r\u00e9e par les mailles est particuli\u00e8rement insidieuse car le maillage est g\u00e9n\u00e9ralement correct pour votre physique &#8211; c&rsquo;est uniquement la discr\u00e9tisation num\u00e9rique qui est malheureuse. Un maillage qui semble bien dans un pr\u00e9-processeur peut avoir des cellules avec des rapports d&rsquo;aspect extr\u00eames dans les r\u00e9gions de changement de gradient rapide, provoquant des termes de diffusion non physiques.<\/p>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>Inspectez les mesures de qualit\u00e9 du maillage avant la premi\u00e8re ex\u00e9cution, pas apr\u00e8s<\/li>\n<li>Utilisez un tableau de bord de qualit\u00e9 de maillage (la plupart des pr\u00e9-processeurs CFD en incluent un) et v\u00e9rifiez l&rsquo;asym\u00e9trie &lt;&nbsp;; 0,7, rapport d&rsquo;aspect &lt;&nbsp;; 50 pour la plupart des solveurs<\/li>\n<li>Affiner ou restructurer le maillage dans les r\u00e9gions \u00e0 gradient \u00e9lev\u00e9<\/li>\n<li>N&rsquo;ignorez jamais les avertissements de volume de cellules n\u00e9gatives &#8211; ce sont des impossibilit\u00e9s math\u00e9matiques que le solveur ne peut r\u00e9soudre.<\/li>\n<\/ul>\n<h3>3. Erreurs de limites et de conditions initiales<\/h3>\n<p>Les erreurs de condition aux limites sont la cat\u00e9gorie o\u00f9 les chercheurs exp\u00e9riment\u00e9s commettent la m\u00eame erreur que les d\u00e9butants&nbsp;: <strong>La configuration semble correcte, mais la physique se contredit.<\/strong><\/p>\n<p>Envisagez un sc\u00e9nario de CFD courant. Vous r\u00e9glez une entr\u00e9e de pression et une sortie de pression. Les deux ont des valeurs de pression fixes. Le solveur a besoin d&rsquo;une pression de r\u00e9f\u00e9rence pour \u00e9tablir le champ de pression absolue. Sans r\u00e9f\u00e9rence de pression, le solveur essaie d&rsquo;\u00e9quilibrer deux contraintes incompatibles &#8211; il diverge.<\/p>\n<p>De m\u00eame, dans les simulations structurelles, une condition aux limites physiquement impossible &#8211; comme la contrainte d&rsquo;un n\u0153ud qui doit \u00e9galement se d\u00e9placer librement &#8211; cr\u00e9e une contradiction que le solveur ne peut pas r\u00e9soudre.<\/p>\n<p><strong>Erreurs de conditions limites communes&nbsp;:<\/strong><\/p>\n<ul>\n<li>Valeurs de pression contradictoires \u00e0 l&rsquo;entr\u00e9e et \u00e0 la sortie (pression de r\u00e9f\u00e9rence manquante)<\/li>\n<li>Reflux \u00e0 une prise (le solveur attend du type de flux BC)<\/li>\n<li>Valeurs de r\u00e9f\u00e9rence manquantes (temp\u00e9rature, pression, potentiel \u00e9lectrique)<\/li>\n<li>Conditions initiales incoh\u00e9rentes (la vitesse initiale ne correspond pas \u00e0 la vitesse aux limites)<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>V\u00e9rifiez chaque condition limite par rapport \u00e0 la physique &#8211; le type de limite correspond-il \u00e0 la direction d&rsquo;\u00e9coulement attendue&nbsp;?<\/li>\n<li>Ajouter un n\u0153ud de r\u00e9f\u00e9rence de pression lorsque vous travaillez avec des limites de pression<\/li>\n<li>S&rsquo;assurer que les conditions initiales sont conformes aux conditions aux limites et \u00e0 l&rsquo;\u00e9tat physique attendu<\/li>\n<\/ul>\n<h3>4. Probl\u00e8mes de configuration du solveur<\/h3>\n<p>La cat\u00e9gorie des param\u00e8tres du solveur est celle o\u00f9 vous pouvez d\u00e9stabiliser par inadvertance une parfaite simulation en utilisant le mauvais outil pour le travail. Cette cat\u00e9gorie comprend :<\/p>\n<ul>\n<li><strong>Sch\u00e9mas de discr\u00e9tisation incorrects<\/strong>&nbsp;: le contrevent du deuxi\u00e8me ordre sur un maillage grossier produit des oscillations&nbsp;; Les sch\u00e9mas de premier ordre sont plus stables mais moins pr\u00e9cis<\/li>\n<li><strong>Une sous-relaxation agressive<\/strong> \u2014 les facteurs inf\u00e9rieurs \u00e0 0,1 peuvent entra\u00eener une divergence&nbsp;; Les valeurs typiques sont de 0,1 \u00e0 0,7 selon l&rsquo;\u00e9quation<\/li>\n<li><strong>Tol\u00e9rances inappropri\u00e9es<\/strong> \u2014 Les tol\u00e9rances trop serr\u00e9es provoquent des it\u00e9rations excessives&nbsp;; Tol\u00e9rances trop l\u00e2ches Acceptez des r\u00e9sultats non physiques<\/li>\n<li><strong>Type de solveur erron\u00e9<\/strong> \u2014 Utilisation d&rsquo;un solveur bas\u00e9 sur la pression pour un flux incompressible vs un solveur bas\u00e9 sur la densit\u00e9 pour un flux compressible<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>Commencez par la discr\u00e9tisation du premier ordre, puis montez au second ordre une fois que la solution se stabilise<\/li>\n<li>Utilisez initialement les facteurs de sous-relaxation par d\u00e9faut, puis r\u00e9glez si n\u00e9cessaire<\/li>\n<li>V\u00e9rifiez le type de solveur par rapport \u00e0 votre r\u00e9gime physique (compressible vs incompressible, turbulent vs laminaire)<\/li>\n<\/ul>\n<hr>\n<h2>Flux de travail de diagnostic<\/h2>\n<p>Lorsque votre simulation diverge, <strong>ne modifiez pas plusieurs param\u00e8tres \u00e0 la fois.<\/strong> Il s&rsquo;agit du principe de d\u00e9bogage le plus important dans les CFD, FEA et tous les solveurs num\u00e9riques.<\/p>\n<p>Suivez ce flux de travail&nbsp;:<\/p>\n<h3>\u00c9tape&nbsp;1&nbsp;: Acc\u00e9l\u00e9rez la simulation plus rapidement<\/h3>\n<p>Si votre simulation s&rsquo;ex\u00e9cute pour 1&nbsp;000&nbsp;it\u00e9rations avant de diverger, vous perdez du temps. Au lieu de cela, commencez par utiliser un pas de temps plus important ou moins d&rsquo;it\u00e9rations par \u00e9tape pour forcer la d\u00e9faillance rapidement. Cela vous donne une boucle plus serr\u00e9e pour le diagnostic.<\/p>\n<h3>\u00c9tape&nbsp;2&nbsp;: Isolez l&rsquo;\u00e9chec<\/h3>\n<p>Identifiez la variable diverge en premier : vitesse, pression, temp\u00e9rature, force ? Utilisez la surveillance r\u00e9siduelle et les <strong>points de surveillance<\/strong> (quantit\u00e9s sp\u00e9cifiques que vous suivez \u00e0 chaque it\u00e9ration). La variable qui diverge en premier vous indique quelle \u00e9quation et quelle partie du domaine est probl\u00e9matique.<\/p>\n<p><strong>Information critique&nbsp;:<\/strong> Les r\u00e9sidus \u00e0 eux seuls peuvent cacher la divergence. Comme le souligne le guide de d\u00e9pannage CFD de Leap Australia, un solveur peut signaler les r\u00e9sidus converg\u00e9s tandis que les points de surveillance (forces, vitesses, temp\u00e9ratures) continuent de d\u00e9river. <strong>V\u00e9rifiez toujours les points de surveillance aux c\u00f4t\u00e9s des r\u00e9sidus.<\/strong><\/p>\n<h3>\u00c9tape&nbsp;3&nbsp;: Changez une chose, v\u00e9rifiez, puis modifiez-en une autre<\/h3>\n<p>Apr\u00e8s avoir identifi\u00e9 la cat\u00e9gorie d&rsquo;\u00e9chec, ne modifiez qu&rsquo;un seul param\u00e8tre. R\u00e9ex\u00e9cutez la simulation. S&rsquo;il se stabilise, vous avez trouv\u00e9 un correctif, mais vous ne savez pas si c&rsquo;\u00e9tait la bonne solution. Documentez ce que vous avez chang\u00e9 et le r\u00e9sultat.<\/p>\n<p>Ensuite, ne modifiez qu&rsquo;un deuxi\u00e8me r\u00e9glage. R\u00e9p\u00e9tez. Cette approche contr\u00f4l\u00e9e vous permet d&rsquo;isoler ce qui compte r\u00e9ellement.<\/p>\n<h3>\u00c9tape&nbsp;4&nbsp;: V\u00e9rifiez avec les bons diagnostics<\/h3>\n<p>Diff\u00e9rents types de simulation n\u00e9cessitent diff\u00e9rents outils de diagnostic :<\/p>\n<p><strong>pour CFD&nbsp;:<\/strong><\/p>\n<ul>\n<li>Surveiller les r\u00e9sidus, les points de surveillance et les profils de vitesse\/pression<\/li>\n<li>Utilisez la visualisation du contour r\u00e9siduel pour voir o\u00f9 les r\u00e9sidus se regroupent dans l&rsquo;espace (activer le mode expert&nbsp;: <code>solve set expert yes yes yes<\/code>, puis ex\u00e9cuter une it\u00e9ration&nbsp;: <code>solve iterate 1<\/code>)<\/li>\n<li>V\u00e9rifiez la continuit\u00e9 et l&rsquo;\u00e9quilibre de l&rsquo;\u00e9lan aux limites du domaine<\/li>\n<\/ul>\n<p><strong>Pour FEA&nbsp;:<\/strong><\/p>\n<ul>\n<li>Inspecter les parcelles de convergence de Newton-Raphson<\/li>\n<li>Recherchez des avertissements de valeurs propres n\u00e9gatives (qui indiquent souvent une erreur de flambage plut\u00f4t qu&rsquo;une erreur de solveur)<\/li>\n<li>V\u00e9rifiez les courbes de force-d\u00e9flexion pour un comportement non monotone<\/li>\n<li>Utilisez des m\u00e9thodes de longueur d&rsquo;arc (RIK) pour les probl\u00e8mes de d\u00e9rapage ou de flambage<\/li>\n<\/ul>\n<p><strong>Pour le code num\u00e9rique g\u00e9n\u00e9ral&nbsp;:<\/strong><\/p>\n<ul>\n<li>Ex\u00e9cuter un test unitaire avec une solution fabriqu\u00e9e (m\u00e9thode des solutions manufactur\u00e9es, MMS)<\/li>\n<li>Rechercher des erreurs de signe sur les termes de diffusion ou de convection &#8211; la cause la plus simple de divergence catastrophique est souvent un signe moins mal plac\u00e9<\/li>\n<li>Retracer NAN ou INF jusqu&rsquo;au temps exact o\u00f9 ils apparaissent pour la premi\u00e8re fois<\/li>\n<\/ul>\n<hr>\n<h2>\u00e9tudes de cas<\/h2>\n<h3>Cas&nbsp;1&nbsp;: l&rsquo;erreur de signe unique<\/h3>\n<p>Un chercheur a d\u00e9bogu\u00e9 une simulation d&rsquo;advection-diffusion a r\u00e9v\u00e9l\u00e9 que la solution divergeait compl\u00e8tement &#8211; les valeurs de vitesse oscillaient et augmentaient de mani\u00e8re exponentielle. Le maillage \u00e9tait fin, le nombre de CFL \u00e9tait conservateur et les conditions aux limites \u00e9taient standard.<\/p>\n<p>La cause premi\u00e8re \u00e9tait une erreur de signe unique dans le terme de diffusion. La discr\u00e9tisation avait <code>+D<\/code> au lieu de <code>-D<\/code>, inversant effectivement la direction de diffusion. Au lieu d&rsquo;amortir les perturbations, l&rsquo;\u00e9quation les amplifiait.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> V\u00e9rifiez d&rsquo;abord les signes de discr\u00e9tisation. Avant de v\u00e9rifier la qualit\u00e9 du maillage ou les param\u00e8tres du solveur, confirmez que la forme math\u00e9matique de vos \u00e9quations est correcte. Une erreur de signe dans un terme de diffusion est num\u00e9riquement \u00e9quivalente \u00e0 la diffusion n\u00e9gative &#8211; la simulation diverge par conception.<\/p>\n<h3>Cas&nbsp;2&nbsp;: \u00c9change de conditions aux limites (l&rsquo;astuce de diagnostic FDTD)<\/h3>\n<p>Dans une simulation FDTD, un utilisateur a signal\u00e9 que la modification des conditions aux limites a corrig\u00e9 la divergence. Le workflow de diagnostic de la documentation ANSYS FDTD illustre pourquoi :<\/p>\n<p><strong>\u00c9tape&nbsp;1&nbsp;:<\/strong> D\u00e9finissez temporairement toutes les conditions aux limites sur \u00ab\u00a0M\u00e9tal\u00a0\u00bb (fixe) et r\u00e9ex\u00e9cutez la simulation. Si la simulation devient stable, la divergence est li\u00e9e au PML.<\/p>\n<p><strong>\u00c9tape&nbsp;2&nbsp;:<\/strong> Si la simulation diverge encore avec des limites de m\u00e9tal, la divergence est due \u00e0 la stabilit\u00e9 de $dt$ &#8211; le pas de temps est trop important pour que le solveur puisse le g\u00e9rer.<\/p>\n<p>Cette astuce d&rsquo;\u00e9change de limites est un flux de travail de diagnostic pratique qui r\u00e9duit imm\u00e9diatement l&rsquo;espace de recherche. Au lieu de v\u00e9rifier simultan\u00e9ment le maillage, les param\u00e8tres du solveur, les propri\u00e9t\u00e9s des mat\u00e9riaux et les conditions aux limites, vous isolez les conditions aux limites en tant que cat\u00e9gorie et corrigez la cause r\u00e9elle.<\/p>\n<h3>Cas&nbsp;3&nbsp;: Diagnostic des contours r\u00e9siduels<\/h3>\n<p>Le flux de travail expert TUI de Leap Australia d\u00e9montre une technique de visualisation puissante. Au lieu d&rsquo;examiner les valeurs r\u00e9siduelles scalaires, vous g\u00e9n\u00e9rez des <strong>trac\u00e9s de contour r\u00e9siduels<\/strong> et des iso-surfaces qui montrent exactement o\u00f9 dans le cluster des r\u00e9sidus \u00e9lev\u00e9s de domaine.<\/p>\n<p>Dans un cas, les r\u00e9sidus \u00e9taient plats \u00e0 10&nbsp;$^{-3}$ alors que la simulation divergeait r\u00e9ellement dans une r\u00e9gion localis\u00e9e. Les contours r\u00e9siduels pr\u00e9sentaient des valeurs extr\u00eames pr\u00e8s d&rsquo;une limite d&rsquo;entr\u00e9e o\u00f9 la qualit\u00e9 du maillage \u00e9tait m\u00e9diocre (asym\u00e9trie 0,85). Le r\u00e9sidu scalaire masquait le probl\u00e8me localis\u00e9 car il \u00e9tait moyenn\u00e9 sur l&rsquo;ensemble du domaine.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> Visualisez toujours les r\u00e9sidus dans l&rsquo;espace, pas seulement num\u00e9riquement. Les trac\u00e9s de contour r\u00e9v\u00e8lent d&rsquo;o\u00f9 vient la divergence.<\/p>\n<h3>Cas&nbsp;4&nbsp;: Raideur non monotone dans la FEA<\/h3>\n<p>L&rsquo;\u00e9tude de cas non lin\u00e9aire FEA d&rsquo;Enterfea couvre un mode de d\u00e9faillance courant. Une simulation structurelle a diverg\u00e9 au point d&rsquo;\u00e9quilibre o\u00f9 la rigidit\u00e9 a fortement chut\u00e9. Un solveur contr\u00f4l\u00e9 par la force ne peut pas suivre le point d&rsquo;\u00e9quilibre &#8211; il oscille et \u00e9choue.<\/p>\n<p>Le correctif passait du contr\u00f4le de la force au contr\u00f4le de d\u00e9placement ou \u00e0 l&rsquo;aide d&rsquo;une m\u00e9thode de longueur d&rsquo;arc (RIKS). Ce n&rsquo;est pas un probl\u00e8me de r\u00e9glage du solveur &#8211; c&rsquo;est un d\u00e9calage fondamental entre la strat\u00e9gie de solveur et la physique.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> Pour les probl\u00e8mes non lin\u00e9aires avec le snap-through, le flambage ou le contact, utilisez des m\u00e9thodes de contr\u00f4le de la longueur d&rsquo;arc ou du d\u00e9placement. Les solveurs contr\u00f4l\u00e9s par la force \u00e9chouent aux points d&rsquo;\u00e9quilibre o\u00f9 la rigidit\u00e9 est non monotone.<\/p>\n<hr>\n<h2>Pi\u00e8ges courants &#8211; Ce qui conduit \u00e0 la divergence<\/h2>\n<p>Ces erreurs sont bien document\u00e9es dans les CFD, FEA et les solveurs num\u00e9riques g\u00e9n\u00e9raux. Ils partagent tous une caract\u00e9ristique&nbsp;: <strong>La simulation semble correcte jusqu&rsquo;\u00e0 ce qu&rsquo;elle diverge.<\/strong><\/p>\n<h3>1. Modification simultan\u00e9e de plusieurs param\u00e8tres<\/h3>\n<p>Lorsque vous modifiez le pas de temps, le sch\u00e9ma de discr\u00e9tisation et le facteur de sous-relaxation en une seule fois et que la simulation se stabilise, vous n&rsquo;avez aucune id\u00e9e du changement qui a r\u00e9ellement fonctionn\u00e9. <strong>Changez toujours un param\u00e8tre \u00e0 la fois.<\/strong> C&rsquo;est la r\u00e8gle d&rsquo;or du d\u00e9bogage num\u00e9rique.<\/p>\n<h3>2. Faire confiance aux r\u00e9sidus aveugl\u00e9ment<\/h3>\n<p>Les r\u00e9sidus peuvent \u00eatre plats tandis qu&rsquo;une variable localis\u00e9e diverge. Comme le avertit la liste de contr\u00f4le Leap Australia, vous devez \u00e9galement <strong>inspecter les points de surveillance<\/strong> &#8211; des quantit\u00e9s sp\u00e9cifiques telles que les forces, les vitesses et les temp\u00e9ratures. Les r\u00e9sidus mesurent l&rsquo;erreur d&rsquo;\u00e9quation, et non l&rsquo;exactitude physique de votre solution.<\/p>\n<h3>3. Utilisation de sch\u00e9mas de second ordre sur des maillages grossiers<\/h3>\n<p>La discr\u00e9tisation du second ordre produit des oscillations sur des mailles grossi\u00e8res. Commencez par la discr\u00e9tisation du premier ordre, stabilisez la solution, puis passez au second ordre. Ce n&rsquo;est pas th\u00e9orique &#8211; c&rsquo;est un flux de travail pratique utilis\u00e9 par des praticiens exp\u00e9riment\u00e9s de la CFD.<\/p>\n<h3>4. Ignorer les volumes cellulaires n\u00e9gatifs<\/h3>\n<p>Les volumes cellulaires n\u00e9gatifs sont des impossibilit\u00e9s math\u00e9matiques. Ils se produisent lorsqu&rsquo;une cellule maill\u00e9e est invers\u00e9e ou effondr\u00e9e. Si votre pr\u00e9-processeur ou votre g\u00e9n\u00e9rateur de maillage signale des volumes n\u00e9gatifs, corrigez le maillage avant de tenter une simulation. Aucun solveur ne peut r\u00e9soudre des volumes n\u00e9gatifs.<\/p>\n<h3>5. En supposant que les valeurs propres n\u00e9gatives sont des erreurs de solveurs<\/h3>\n<p>Dans ABAQUS et d&rsquo;autres solveurs FEA, les messages persistants \u00e0 valeur proprement \u00e9lev\u00e9e indiquent souvent un comportement de flambage, et non une instabilit\u00e9 num\u00e9rique. Le correctif correct est une m\u00e9thode de longueur d&rsquo;arc (RIKS) ou un solveur de dynamique implicite &#8211; pas une tol\u00e9rance plus \u00e9troite ou un algorithme de solveur diff\u00e9rent.<\/p>\n<hr>\n<h2>Outils et techniques de diagnostic<\/h2>\n<h3>Surveillance r\u00e9siduelle<\/h3>\n<p>La plupart des solveurs rapportent des valeurs r\u00e9siduelles pour chaque \u00e9quation (continuit\u00e9, momentum, \u00e9nergie, turbulence). Surveiller les r\u00e9sidus sur les it\u00e9rations. Un r\u00e9sidu bien converg\u00e9 diminue g\u00e9n\u00e9ralement de 3 \u00e0 4 ordres de grandeur, de 10&nbsp;$^{-1}$ \u00e0 10&nbsp;$^{-4}$ ou moins.<\/p>\n<p><strong>Important&nbsp;:<\/strong> Si les r\u00e9sidus chutent initialement mais puis le plateau sans atteindre la cible, la simulation peut avoir converg\u00e9 num\u00e9riquement sans atteindre la pr\u00e9cision physique. V\u00e9rifiez les points de surveillance pour ce cas.<\/p>\n<h3>Surveiller les points<\/h3>\n<p>Les points de surveillance sont des quantit\u00e9s sp\u00e9cifiques que vous suivez \u00e0 chaque it\u00e9ration. Dans le CFD, ce sont g\u00e9n\u00e9ralement des forces (soul\u00e8vement, tra\u00een\u00e9e), des temp\u00e9ratures, des vitesses ou des pressions \u00e0 des endroits sp\u00e9cifiques. Dans FEA, ce sont des forces de r\u00e9action, des d\u00e9placements ou des pressions de contact.<\/p>\n<p><strong>Les points de surveillance r\u00e9v\u00e8lent une divergence que les r\u00e9sidus masquent.<\/strong> Comme le souligne le guide Leap&nbsp;Australia, une simulation avec des r\u00e9sidus plats peut toujours avoir des points de surveillance divergents. Ex\u00e9cutez toujours les r\u00e9sidus et surveillez les points ensemble.<\/p>\n<h3>Diagnostic des solveurs<\/h3>\n<p>Diff\u00e9rents solveurs fournissent diff\u00e9rents outils de diagnostic :<\/p>\n<ul>\n<li><strong>Plots de convergence de Newton-Raphson<\/strong> (FEA) \u2014 Montrer si le solveur progresse vers l&rsquo;\u00e9quilibre ou l&rsquo;oscillation<\/li>\n<li><strong>Suivi des valeurs propres<\/strong> (FEA) \u2014 Les valeurs propres n\u00e9gatives indiquent un contact de flambage ou un contact instable<\/li>\n<li><strong>Diagnostics de TreeDepth et R-Hat<\/strong> (MMCMC\/Bayesian Solvers) \u2014 Identifier les transitions divergentes dans le Monte Carlo hamiltonien<\/li>\n<li><strong>Surveillance de la BFMI (Information basale)<\/strong> (Stan\/MCMC) \u2014 D\u00e9tecte les r\u00e9gions de courbure pathologique<\/li>\n<\/ul>\n<h3>Visualisation du contour r\u00e9siduel<\/h3>\n<p>Activez le mode expert dans votre solveur et ex\u00e9cutez une seule it\u00e9ration. La plupart des solveurs g\u00e9n\u00e9reront des trac\u00e9s de contour r\u00e9siduels montrant o\u00f9 les r\u00e9sidus se regroupent dans l&rsquo;espace. Cela r\u00e9v\u00e8le la r\u00e9gion du domaine d&rsquo;origine de la divergence &#8211; une limite d&rsquo;entr\u00e9e, une zone de transition de maillage ou une r\u00e9gion \u00e0 gradient \u00e9lev\u00e9 localis\u00e9.<\/p>\n<h3>Nan et Inf Tra\u00e7age<\/h3>\n<p>Identifiez le pas de temps ou l&rsquo;it\u00e9ration exact o\u00f9 les valeurs NAN ou INF apparaissent pour la premi\u00e8re fois. Remontez ensuite \u00e0 l&rsquo;\u00e9tape pr\u00e9c\u00e9dente et examinez les valeurs qui ont conduit \u00e0 la NAN. Ceci est particuli\u00e8rement utile pour d\u00e9terminer si la divergence est spatiale (une r\u00e9gion du domaine) ou temporelle (le solveur sortant de sa r\u00e9gion de stabilit\u00e9).<\/p>\n<hr>\n<h2>Quand escalader<\/h2>\n<p>Parfois, une simulation diverge malgr\u00e9 le maillage, les conditions aux limites et les param\u00e8tres du solveur. Dans ces cas, le probl\u00e8me peut \u00eatre :<\/p>\n<ul>\n<li><strong>Impossibilit\u00e9 physique<\/strong> \u2014 Les conditions aux limites ou les conditions initiales d\u00e9crivent un sc\u00e9nario qui est physiquement impossible pour les hypoth\u00e8ses du solveur (par exemple, flux incompressible avec des mat\u00e9riaux compressibles)<\/li>\n<li><strong>Limitation du solveur<\/strong> \u2014 Le solveur ne peut pas g\u00e9rer le r\u00e9gime physique sp\u00e9cifique (p. ex., flux multiphas\u00e9 avec des rapports de densit\u00e9 extr\u00eames)<\/li>\n<li><strong>Bug au niveau du code<\/strong>&nbsp;: une erreur de discr\u00e9tisation, une erreur de signature ou un terme manquant dans votre impl\u00e9mentation<\/li>\n<\/ul>\n<p><strong>Quand escalader&nbsp;:<\/strong><\/p>\n<ul>\n<li>Vous avez v\u00e9rifi\u00e9 la qualit\u00e9 du maillage, les conditions aux limites, le pas de temps et les param\u00e8tres du solveur<\/li>\n<li>La simulation diverge m\u00eame avec un pas de temps conservateur et une discr\u00e9tisation du premier ordre<\/li>\n<li>Les points de surveillance divergent tandis que les r\u00e9sidus convergent (ou vice versa)<\/li>\n<li>Vous soup\u00e7onnez une erreur de signe de discr\u00e9tisation mais vous ne le trouvez pas<\/li>\n<\/ul>\n<p>Dans ces cas, envisagez de contacter le support de solveur, de consulter la litt\u00e9rature pour des cas similaires ou d&rsquo;utiliser la m\u00e9thode des solutions fabriqu\u00e9es pour v\u00e9rifier votre code de discr\u00e9tisation ligne par ligne.<\/p>\n<hr>\n<h2>R\u00e9sum\u00e9 et \u00e9tapes suivantes<\/h2>\n<p>Le d\u00e9bogage des simulations num\u00e9riques ne consiste pas \u00e0 trouver le bon param\u00e8tre, il s&rsquo;agit de suivre un flux de travail de diagnostic syst\u00e9matique. Les quatre cat\u00e9gories de causes racines (conditions temporelles, spatiales, limites\/initiales, param\u00e8tres de solveur) vous donnent une taxonomie pour r\u00e9duire l&rsquo;espace de recherche. L&rsquo;astuce d&rsquo;\u00e9change de limites, la visualisation de contour r\u00e9siduelle et l&rsquo;inspection des points de surveillance vous donnent des outils pratiques que les praticiens exp\u00e9riment\u00e9s utilisent pour isoler la cause r\u00e9elle.<\/p>\n<p><strong>Vos prochaines \u00e9tapes&nbsp;:<\/strong><\/p>\n<ol>\n<li>Lorsque votre simulation diverge, commencez par forcer plus rapidement une d\u00e9faillance (pas de temps plus important, moins d&rsquo;it\u00e9rations)<\/li>\n<li>Isoler quelle variable diverge en premier \u00e0 l&rsquo;aide de points de surveillance<\/li>\n<li>Modifier un param\u00e8tre \u00e0 la fois, v\u00e9rifier et documenter<\/li>\n<li>Utilisez la visualisation du contour r\u00e9siduel pour trouver les origines de la divergence dans l&rsquo;espace<\/li>\n<li>Pour la FEA non lin\u00e9aire, passez aux m\u00e9thodes de longueur d&rsquo;arc lorsque le contr\u00f4le de la force \u00e9choue aux points d&rsquo;\u00e9quilibre<\/li>\n<\/ol>\n<p>Si vous travaillez sp\u00e9cifiquement avec des probl\u00e8mes difficiles, le guide sur <a href=\"https:\/\/matforge.org\/stiff-problems-and-stiff-solvers\/\">probl\u00e8mes raides et solveurs rigides<\/a> couvre quand et pourquoi les m\u00e9thodes explicites \u00e9chouent. Pour les flux de travail de d\u00e9bogage de codes g\u00e9n\u00e9raux au-del\u00e0 du diagnostic num\u00e9rique, consultez le <a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">python de d\u00e9bogage pour le code scientifique<\/a>.<\/p>\n<hr>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">D\u00e9bogage de Python pour le code scientifique<\/a> &#8211; ouvrages d&rsquo;impression, PDB, profilage et test des flux de travail<\/li>\n<li><a href=\"https:\/\/matforge.org\/stiff-problems-and-stiff-solvers\/\">Probl\u00e8mes raides et solveurs rigides<\/a> &#8211; Lorsque les m\u00e9thodes explicites \u00e9chouent et pourquoi des probl\u00e8mes raides cassent les solveurs<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducibility-and-its-role-in-debugging\/\">Reproductibilit\u00e9 et son r\u00f4le dans le d\u00e9bogage<\/a> \u2014 Workflows versionn\u00e9s pour le d\u00e9bogage de simulation reproductible<\/li>\n<li><a href=\"https:\/\/matforge.org\/in-situ-visualization-integration-computation\/\">Visualisation in situ<\/a> \u2014 Utilisation de la visualisation in situ comme syst\u00e8me d&rsquo;alerte pr\u00e9coce pour la divergence num\u00e9rique<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">\u00c9tudes de qualit\u00e9 et de convergence des maillages<\/a> \u2014 Diagnostic de maillage qui affecte la stabilit\u00e9 et la convergence<\/li>\n<\/ul>\n<hr>\n<h2>Liste de contr\u00f4le pratique&nbsp;: ce qu&rsquo;il faut essayer en premier<\/h2>\n<p>Utilisez cette liste de contr\u00f4le lorsque votre simulation diverge. Travaillez \u00e0 chaque \u00e9tape avant de passer \u00e0 la suivante.<\/p>\n<ul>\n<li>[ ] V\u00e9rifier la qualit\u00e9 du maillage \u2014 asym\u00e9trique &lt; 0,7, rapport d&rsquo;aspect &lt;&nbsp;; 50, pas de volumes n\u00e9gatifs<\/li>\n<li>[ ] V\u00e9rifier le num\u00e9ro CFL \u2014 R\u00e9duisez le pas de temps jusqu&rsquo;\u00e0 $c &lt; 0,5&nbsp;$<\/li>\n<li>[ ] V\u00e9rifier les conditions aux limites \u2014 coh\u00e9rence d&rsquo;entr\u00e9e\/sortie, pression de r\u00e9f\u00e9rence, direction d&rsquo;\u00e9coulement<\/li>\n<li>[ ] D\u00e9finir les conditions initiales \u2014 Assurez-vous qu&rsquo;elles correspondent aux conditions aux limites et \u00e0 l&rsquo;\u00e9tat physique attendu<\/li>\n<li>[ ] Utiliser la discr\u00e9tisation du premier ordre &#8211; monter au second ordre apr\u00e8s la stabilisation<\/li>\n<li>[ ] V\u00e9rifiez les facteurs de sous-relaxation \u2014 utilisez les valeurs par d\u00e9faut, puis r\u00e9glez si n\u00e9cessaire<\/li>\n<li>[ ] Surveiller les r\u00e9sidus et les points de surveillance &#8211; les r\u00e9sidus plats ne garantissent pas la convergence<\/li>\n<li>[ ] G\u00e9n\u00e9rer des trac\u00e9s de contour r\u00e9siduels \u2014 Visualisez o\u00f9 les r\u00e9sidus cluster dans l&rsquo;espace<\/li>\n<li>[ ] Pour FEA : cochez les valeurs propres \u2014 les valeurs propres n\u00e9gatives indiquent souvent une erreur de flambage, et non une erreur de solveur.<\/li>\n<li>[ ] Pour FEA : passer \u00e0 la m\u00e9thode de longueur d&rsquo;arc (RIKS) si le solveur contr\u00f4l\u00e9 par la force \u00e9choue \u00e0 l&rsquo;\u00e9quilibre<\/li>\n<li>[ ] V\u00e9rifier les signes de discr\u00e9tisation &#8211; Une erreur de signe unique peut entra\u00eener une divergence catastrophique<\/li>\n<li>[ ] ne modifiez qu&rsquo;un seul r\u00e9glage \u00e0 la fois \u2014 toujours, jamais deux simultan\u00e9ment<\/li>\n<\/ul>\n<hr>\n<p><strong>Tr\u00e8s bas&nbsp;:<\/strong> La divergence est diagnostiqu\u00e9e. Les quatre cat\u00e9gories (conditions temporelles, spatiales, limites\/initiales, param\u00e8tres du solveur) fournissent un cadre. Les techniques (swap de fronti\u00e8re, contours r\u00e9siduels, points de surveillance, un changement \u00e0 la fois) fournissent les outils. Utilisez-les syst\u00e9matiquement et vous trouverez la cause profonde, et non seulement masquer le sympt\u00f4me.<\/p>\n<hr>\n<h2>Sources externes<\/h2>\n<p>Les sources externes suivantes ont \u00e9t\u00e9 consult\u00e9es lors de la recherche et sont recommand\u00e9es pour une lecture plus approfondie :<\/p>\n<ul>\n<li><a href=\"https:\/\/www.leapaust.com.au\/blog\/cfd\/cfd-troubleshooting-checklist\/\" target=\"_blank\" rel=\"nofollow noopener\">Leap Australia \u2014 CFD Liste de contr\u00f4le de d\u00e9pannage<\/a> \u2014 Flux de travail de diagnostic CFD syst\u00e9matique et configuration des points de surveillance<\/li>\n<li><a href=\"https:\/\/optics.ansys.com\/hc\/en-us\/articles\/11277217507603-Troubleshooting-diverging-simulations-in-FDTD\" target=\"_blank\" rel=\"nofollow noopener\">Ansys FDTD \u2014 D\u00e9pannage des simulations divergentes<\/a> \u2014 Guide de diagnostic et de stabilit\u00e9 DT<\/li>\n<li><a href=\"https:\/\/www.mr-cfd.com\/errors-occurring-in-simulations-with-ansys-fluent\/\" target=\"_blank\" rel=\"nofollow noopener\">ansys Fluent \u2014 Erreurs dans les simulations<\/a> \u2014 Param\u00e8tres complets de cat\u00e9gorisation des erreurs et de solveurs<\/li>\n<li><a href=\"https:\/\/enterfea.com\/problems-with-nonlinear-analysis-convergence-read-this\/\" target=\"_blank\" rel=\"nofollow noopener\">EnterFEA \u2014 Convergence d&rsquo;analyse non lin\u00e9aire<\/a> \u2014 M\u00e9thodes de longueur d&rsquo;arc et direction de force contre d\u00e9placement<\/li>\n<li><a href=\"https:\/\/blog.3ds.com\/brands\/simulia\/debugging-abaqus-models\/\" target=\"_blank\" rel=\"nofollow noopener\">abaqus mod\u00e8le de d\u00e9bogage<\/a> \u2014 D\u00e9bogage de Newton-Raphson et analyse des valeurs propres<\/li>\n<li><a href=\"https:\/\/scicomp.stackexchange.com\/questions\/7736\" target=\"_blank\" rel=\"nofollow noopener\">Scicomp StackExchange \u2014 d\u00e9bogage de code num\u00e9rique<\/a> \u2014 Signe de discr\u00e9tisation Erreurs et m\u00e9thode des solutions fabriqu\u00e9es<\/li>\n<li><a href=\"https:\/\/www.grc.nasa.gov\/www\/wind\/valid\/tutorial\/errors.html\" target=\"_blank\" rel=\"nofollow noopener\">NASA Wind \u2014 Classification des erreurs CFD<\/a> \u2014 CFD Incertitude et taxonomie des erreurs<\/li>\n<\/ul>\n","protected":false,"raw":"<h2>tl;dr \u2014 Points cl\u00e9s \u00e0 emporter<\/h2>\n<ul>\n<li><strong>Divergence et instabilit\u00e9 se r\u00e9partissent en quatre cat\u00e9gories&nbsp;:<\/strong> Temporal (LFC\/Mesh), Spatial (Qualit\u00e9 maille), Limites\/Initiales et Param\u00e8tres de solveur.<\/li>\n<li><strong>Les r\u00e9sidus \u00e0 eux seuls ne prouvent pas la convergence.<\/strong> Les points de surveillance (forces, temp\u00e9ratures, vitesses) doivent \u00e9galement \u00eatre v\u00e9rifi\u00e9s. Les r\u00e9sidus peuvent \u00eatre flatt\u00e9s tandis qu'une variable localis\u00e9e explose.<\/li>\n<li><strong>Diagnostiquez une variable \u00e0 la fois.<\/strong> Modifiez un seul param\u00e8tre, puis r\u00e9ex\u00e9cutez. Si vous changez deux choses et que la simulation se stabilise, vous ne savez pas quelle solution r\u00e9ellement fonctionn\u00e9.<\/li>\n<li><strong>l'astuce de l'\u00e9change de limites<\/strong> (d\u00e9finir temporairement toutes les limites \u00e0 fixe ou par d\u00e9faut et \u00e0 r\u00e9ex\u00e9cuter) est le moyen le plus rapide d'isoler si la divergence provient des conditions aux limites ou de la stabilit\u00e9 du pas de temps.<\/li>\n<li><strong>Les valeurs propres n\u00e9gatives dans la FEA signalent souvent des erreurs de signalisation, et non une erreur de solveur.<\/strong> Le correctif correct est une m\u00e9thode de longueur d'arc (RIK) ou une dynamique implicite, et non une tol\u00e9rance plus stricte.<\/li>\n<\/ul>\n<hr>\n<h2>Pourquoi les simulations divergent - et pourquoi le diagnostic est important<\/h2>\n<p>Chaque simulation num\u00e9rique a la m\u00eame signature terrifiante&nbsp;: \u00e0 un certain pas de temps ou \u00e0 une it\u00e9ration, les valeurs explosent vers NAN ou Infinity, le solveur cesse de progresser et vous restez \u00e0 regarder une fen\u00eatre de terminal pleine de messages <code>Inf<\/code>.<\/p>\n<p>Si vous red\u00e9marrez imm\u00e9diatement avec un pas de temps plus petit et que la simulation s'ex\u00e9cute bien, vous avez eu de la chance. Si vous modifiez quelque chose et que la simulation plante toujours, vous d\u00e9boguez maintenant avec moins d'informations qu'auparavant.<\/p>\n<p>Le probl\u00e8me n'est pas que les simulations ne sont pas fiables. Ils suivent des r\u00e8gles math\u00e9matiques bien comprises. Le probl\u00e8me est que lorsqu'une simulation diverge, le message d'erreur ne vous dit presque jamais <strong>ce qui <\/strong> s'est mal pass\u00e9 - il vous indique simplement que quelque chose s'est mal pass\u00e9.<\/p>\n<p>Comprendre la taxonomie de la d\u00e9faillance num\u00e9rique est la premi\u00e8re \u00e9tape vers le diagnostic syst\u00e9matique. Les d\u00e9faillances num\u00e9riques se divisent en quatre cat\u00e9gories de cause racine&nbsp;:<\/p>\n<ol>\n<li><strong>Instabilit\u00e9 temporelle<\/strong> \u2014 Le pas de temps est trop grand, la condition CFL est viol\u00e9e ou le solveur sort de sa zone de stabilit\u00e9.<\/li>\n<li><strong>Pathologie spatiale (mesh)<\/strong> - cellules hautement asym\u00e9triques, rapports d'aspect extr\u00eames ou volumes n\u00e9gatifs cr\u00e9ent des gradients non physiques.<\/li>\n<li><strong>Erreurs de limites ou de condition initiale<\/strong> \u2014 Des pressions contradictoires, des valeurs de r\u00e9f\u00e9rence manquantes ou des valeurs de d\u00e9part incoh\u00e9rentes cr\u00e9ent des contradictions num\u00e9riques.<\/li>\n<li><strong>Probl\u00e8mes de configuration des solveur<\/strong> \u2014 mauvais sch\u00e9mas de discr\u00e9tisation, facteurs de sous-relaxation agressifs ou tol\u00e9rances inappropri\u00e9es.<\/li>\n<\/ol>\n<p>Lorsque vous savez \u00e0 quelle cat\u00e9gorie appartient votre d\u00e9faillance, le diagnostic devient un processus d'\u00e9limination. Lorsque vous ne le faites pas, vous finissez par deviner - et deviner, c'est la fa\u00e7on dont vous perdez des heures de calcul.<\/p>\n<hr>\n<h2>Les quatre cat\u00e9gories de cause racine<\/h2>\n<h3>1. Instabilit\u00e9 temporelle<\/h3>\n<p>L'instabilit\u00e9 temporelle est la cause la plus fr\u00e9quente de divergence dans les simulations d\u00e9pendant du temps. Le principal coupable est la condition <strong>CFL (Courant-Friedrichs-Lewy)<\/strong>, qui stipule que pour un sch\u00e9ma explicite, le pas de temps doit satisfaire&nbsp;:<\/p>\n<p>$$<br> c = frac{u delta t}{delta x} leq 1<br> $$<\/p>\n<p>Quand $c &gt; 1&nbsp;$, les informations se propagent plus rapidement que le sch\u00e9ma num\u00e9rique ne peut le suivre et les erreurs se compliquent de mani\u00e8re exponentielle. Ce n'est pas une nuisance num\u00e9rique mineure, c'est une contrainte math\u00e9matique fondamentale.<\/p>\n<p><strong>Que rechercher&nbsp;:<\/strong><\/p>\n<ul>\n<li>La simulation diverge imm\u00e9diatement apr\u00e8s les premiers pas de temps<\/li>\n<li>Le message d'erreur fait r\u00e9f\u00e9rence \u00e0 \"Time pas trop petit\" ou \u00e0 \"Limitation de stabilit\u00e9\"<\/li>\n<li>Les m\u00eames conditions de maillage et de limites convergent lorsque vous r\u00e9duisez le pas de temps<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>R\u00e9duisez le pas de temps jusqu'\u00e0 ce que le nombre de LCF descende en dessous de 0,5 comme point de d\u00e9part s\u00fbr<\/li>\n<li>Utilisez une strat\u00e9gie adaptative de pas de temps qui \u00e9volue en fonction des nombres de cours locaux<\/li>\n<li>V\u00e9rifier la coh\u00e9rence de la propri\u00e9t\u00e9 des mat\u00e9riaux - Un fluide \u00e0 haute vitesse dans un milieu dense peut avoir une limite de LFC beaucoup plus stricte que pr\u00e9vu<\/li>\n<\/ul>\n<h3>2. Pathologie spatiale (maillage)<\/h3>\n<p>La qualit\u00e9 du maillage est la deuxi\u00e8me cause de divergence la plus fr\u00e9quente. Contrairement \u00e0 l'instabilit\u00e9 temporelle, qui se manifeste g\u00e9n\u00e9ralement t\u00f4t, la pathologie du maillage peut entra\u00eener des divergences \u00e0 n'importe quel stade, en particulier dans les simulations non lin\u00e9aires ou multiphysiques o\u00f9 le maillage interagit avec le solveur de mani\u00e8re it\u00e9rative.<\/p>\n<p><strong>Indicateurs de probl\u00e8mes&nbsp;:<\/strong><\/p>\n<ul>\n<li>asym\u00e9trie des cellules \u00e9lev\u00e9es (&gt; 0,9 sur une \u00e9chelle de 0 \u00e0 1)<\/li>\n<li>Rapports d'aspect extr\u00eames (&gt; 100:1)<\/li>\n<li>Volumes de cellules n\u00e9gatives (l'erreur la plus grave)<\/li>\n<\/ul>\n<p>La divergence g\u00e9n\u00e9r\u00e9e par les mailles est particuli\u00e8rement insidieuse car le maillage est g\u00e9n\u00e9ralement correct pour votre physique - c'est uniquement la discr\u00e9tisation num\u00e9rique qui est malheureuse. Un maillage qui semble bien dans un pr\u00e9-processeur peut avoir des cellules avec des rapports d'aspect extr\u00eames dans les r\u00e9gions de changement de gradient rapide, provoquant des termes de diffusion non physiques.<\/p>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>Inspectez les mesures de qualit\u00e9 du maillage avant la premi\u00e8re ex\u00e9cution, pas apr\u00e8s<\/li>\n<li>Utilisez un tableau de bord de qualit\u00e9 de maillage (la plupart des pr\u00e9-processeurs CFD en incluent un) et v\u00e9rifiez l'asym\u00e9trie &lt;&nbsp;; 0,7, rapport d'aspect &lt;&nbsp;; 50 pour la plupart des solveurs<\/li>\n<li>Affiner ou restructurer le maillage dans les r\u00e9gions \u00e0 gradient \u00e9lev\u00e9<\/li>\n<li>N'ignorez jamais les avertissements de volume de cellules n\u00e9gatives - ce sont des impossibilit\u00e9s math\u00e9matiques que le solveur ne peut r\u00e9soudre.<\/li>\n<\/ul>\n<h3>3. Erreurs de limites et de conditions initiales<\/h3>\n<p>Les erreurs de condition aux limites sont la cat\u00e9gorie o\u00f9 les chercheurs exp\u00e9riment\u00e9s commettent la m\u00eame erreur que les d\u00e9butants&nbsp;: <strong>La configuration semble correcte, mais la physique se contredit.<\/strong><\/p>\n<p>Envisagez un sc\u00e9nario de CFD courant. Vous r\u00e9glez une entr\u00e9e de pression et une sortie de pression. Les deux ont des valeurs de pression fixes. Le solveur a besoin d'une pression de r\u00e9f\u00e9rence pour \u00e9tablir le champ de pression absolue. Sans r\u00e9f\u00e9rence de pression, le solveur essaie d'\u00e9quilibrer deux contraintes incompatibles - il diverge.<\/p>\n<p>De m\u00eame, dans les simulations structurelles, une condition aux limites physiquement impossible - comme la contrainte d'un n\u0153ud qui doit \u00e9galement se d\u00e9placer librement - cr\u00e9e une contradiction que le solveur ne peut pas r\u00e9soudre.<\/p>\n<p><strong>Erreurs de conditions limites communes&nbsp;:<\/strong><\/p>\n<ul>\n<li>Valeurs de pression contradictoires \u00e0 l'entr\u00e9e et \u00e0 la sortie (pression de r\u00e9f\u00e9rence manquante)<\/li>\n<li>Reflux \u00e0 une prise (le solveur attend du type de flux BC)<\/li>\n<li>Valeurs de r\u00e9f\u00e9rence manquantes (temp\u00e9rature, pression, potentiel \u00e9lectrique)<\/li>\n<li>Conditions initiales incoh\u00e9rentes (la vitesse initiale ne correspond pas \u00e0 la vitesse aux limites)<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>V\u00e9rifiez chaque condition limite par rapport \u00e0 la physique - le type de limite correspond-il \u00e0 la direction d'\u00e9coulement attendue&nbsp;?<\/li>\n<li>Ajouter un n\u0153ud de r\u00e9f\u00e9rence de pression lorsque vous travaillez avec des limites de pression<\/li>\n<li>S'assurer que les conditions initiales sont conformes aux conditions aux limites et \u00e0 l'\u00e9tat physique attendu<\/li>\n<\/ul>\n<h3>4. Probl\u00e8mes de configuration du solveur<\/h3>\n<p>La cat\u00e9gorie des param\u00e8tres du solveur est celle o\u00f9 vous pouvez d\u00e9stabiliser par inadvertance une parfaite simulation en utilisant le mauvais outil pour le travail. Cette cat\u00e9gorie comprend :<\/p>\n<ul>\n<li><strong>Sch\u00e9mas de discr\u00e9tisation incorrects<\/strong>&nbsp;: le contrevent du deuxi\u00e8me ordre sur un maillage grossier produit des oscillations&nbsp;; Les sch\u00e9mas de premier ordre sont plus stables mais moins pr\u00e9cis<\/li>\n<li><strong>Une sous-relaxation agressive<\/strong> \u2014 les facteurs inf\u00e9rieurs \u00e0 0,1 peuvent entra\u00eener une divergence&nbsp;; Les valeurs typiques sont de 0,1 \u00e0 0,7 selon l'\u00e9quation<\/li>\n<li><strong>Tol\u00e9rances inappropri\u00e9es<\/strong> \u2014 Les tol\u00e9rances trop serr\u00e9es provoquent des it\u00e9rations excessives&nbsp;; Tol\u00e9rances trop l\u00e2ches Acceptez des r\u00e9sultats non physiques<\/li>\n<li><strong>Type de solveur erron\u00e9<\/strong> \u2014 Utilisation d'un solveur bas\u00e9 sur la pression pour un flux incompressible vs un solveur bas\u00e9 sur la densit\u00e9 pour un flux compressible<\/li>\n<\/ul>\n<p><strong>Quoi r\u00e9parer&nbsp;:<\/strong><\/p>\n<ul>\n<li>Commencez par la discr\u00e9tisation du premier ordre, puis montez au second ordre une fois que la solution se stabilise<\/li>\n<li>Utilisez initialement les facteurs de sous-relaxation par d\u00e9faut, puis r\u00e9glez si n\u00e9cessaire<\/li>\n<li>V\u00e9rifiez le type de solveur par rapport \u00e0 votre r\u00e9gime physique (compressible vs incompressible, turbulent vs laminaire)<\/li>\n<\/ul>\n<hr>\n<h2>Flux de travail de diagnostic<\/h2>\n<p>Lorsque votre simulation diverge, <strong>ne modifiez pas plusieurs param\u00e8tres \u00e0 la fois.<\/strong> Il s'agit du principe de d\u00e9bogage le plus important dans les CFD, FEA et tous les solveurs num\u00e9riques.<\/p>\n<p>Suivez ce flux de travail&nbsp;:<\/p>\n<h3>\u00c9tape&nbsp;1&nbsp;: Acc\u00e9l\u00e9rez la simulation plus rapidement<\/h3>\n<p>Si votre simulation s'ex\u00e9cute pour 1&nbsp;000&nbsp;it\u00e9rations avant de diverger, vous perdez du temps. Au lieu de cela, commencez par utiliser un pas de temps plus important ou moins d'it\u00e9rations par \u00e9tape pour forcer la d\u00e9faillance rapidement. Cela vous donne une boucle plus serr\u00e9e pour le diagnostic.<\/p>\n<h3>\u00c9tape&nbsp;2&nbsp;: Isolez l'\u00e9chec<\/h3>\n<p>Identifiez la variable diverge en premier : vitesse, pression, temp\u00e9rature, force ? Utilisez la surveillance r\u00e9siduelle et les <strong>points de surveillance<\/strong> (quantit\u00e9s sp\u00e9cifiques que vous suivez \u00e0 chaque it\u00e9ration). La variable qui diverge en premier vous indique quelle \u00e9quation et quelle partie du domaine est probl\u00e9matique.<\/p>\n<p><strong>Information critique&nbsp;:<\/strong> Les r\u00e9sidus \u00e0 eux seuls peuvent cacher la divergence. Comme le souligne le guide de d\u00e9pannage CFD de Leap Australia, un solveur peut signaler les r\u00e9sidus converg\u00e9s tandis que les points de surveillance (forces, vitesses, temp\u00e9ratures) continuent de d\u00e9river. <strong>V\u00e9rifiez toujours les points de surveillance aux c\u00f4t\u00e9s des r\u00e9sidus.<\/strong><\/p>\n<h3>\u00c9tape&nbsp;3&nbsp;: Changez une chose, v\u00e9rifiez, puis modifiez-en une autre<\/h3>\n<p>Apr\u00e8s avoir identifi\u00e9 la cat\u00e9gorie d'\u00e9chec, ne modifiez qu'un seul param\u00e8tre. R\u00e9ex\u00e9cutez la simulation. S'il se stabilise, vous avez trouv\u00e9 un correctif, mais vous ne savez pas si c'\u00e9tait la bonne solution. Documentez ce que vous avez chang\u00e9 et le r\u00e9sultat.<\/p>\n<p>Ensuite, ne modifiez qu'un deuxi\u00e8me r\u00e9glage. R\u00e9p\u00e9tez. Cette approche contr\u00f4l\u00e9e vous permet d'isoler ce qui compte r\u00e9ellement.<\/p>\n<h3>\u00c9tape&nbsp;4&nbsp;: V\u00e9rifiez avec les bons diagnostics<\/h3>\n<p>Diff\u00e9rents types de simulation n\u00e9cessitent diff\u00e9rents outils de diagnostic :<\/p>\n<p><strong>pour CFD&nbsp;:<\/strong><\/p>\n<ul>\n<li>Surveiller les r\u00e9sidus, les points de surveillance et les profils de vitesse\/pression<\/li>\n<li>Utilisez la visualisation du contour r\u00e9siduel pour voir o\u00f9 les r\u00e9sidus se regroupent dans l'espace (activer le mode expert&nbsp;: <code>solve set expert yes yes yes<\/code>, puis ex\u00e9cuter une it\u00e9ration&nbsp;: <code>solve iterate 1<\/code>)<\/li>\n<li>V\u00e9rifiez la continuit\u00e9 et l'\u00e9quilibre de l'\u00e9lan aux limites du domaine<\/li>\n<\/ul>\n<p><strong>Pour FEA&nbsp;:<\/strong><\/p>\n<ul>\n<li>Inspecter les parcelles de convergence de Newton-Raphson<\/li>\n<li>Recherchez des avertissements de valeurs propres n\u00e9gatives (qui indiquent souvent une erreur de flambage plut\u00f4t qu'une erreur de solveur)<\/li>\n<li>V\u00e9rifiez les courbes de force-d\u00e9flexion pour un comportement non monotone<\/li>\n<li>Utilisez des m\u00e9thodes de longueur d'arc (RIK) pour les probl\u00e8mes de d\u00e9rapage ou de flambage<\/li>\n<\/ul>\n<p><strong>Pour le code num\u00e9rique g\u00e9n\u00e9ral&nbsp;:<\/strong><\/p>\n<ul>\n<li>Ex\u00e9cuter un test unitaire avec une solution fabriqu\u00e9e (m\u00e9thode des solutions manufactur\u00e9es, MMS)<\/li>\n<li>Rechercher des erreurs de signe sur les termes de diffusion ou de convection - la cause la plus simple de divergence catastrophique est souvent un signe moins mal plac\u00e9<\/li>\n<li>Retracer NAN ou INF jusqu'au temps exact o\u00f9 ils apparaissent pour la premi\u00e8re fois<\/li>\n<\/ul>\n<hr>\n<h2>\u00e9tudes de cas<\/h2>\n<h3>Cas&nbsp;1&nbsp;: l'erreur de signe unique<\/h3>\n<p>Un chercheur a d\u00e9bogu\u00e9 une simulation d'advection-diffusion a r\u00e9v\u00e9l\u00e9 que la solution divergeait compl\u00e8tement - les valeurs de vitesse oscillaient et augmentaient de mani\u00e8re exponentielle. Le maillage \u00e9tait fin, le nombre de CFL \u00e9tait conservateur et les conditions aux limites \u00e9taient standard.<\/p>\n<p>La cause premi\u00e8re \u00e9tait une erreur de signe unique dans le terme de diffusion. La discr\u00e9tisation avait <code>+D<\/code> au lieu de <code>-D<\/code>, inversant effectivement la direction de diffusion. Au lieu d'amortir les perturbations, l'\u00e9quation les amplifiait.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> V\u00e9rifiez d'abord les signes de discr\u00e9tisation. Avant de v\u00e9rifier la qualit\u00e9 du maillage ou les param\u00e8tres du solveur, confirmez que la forme math\u00e9matique de vos \u00e9quations est correcte. Une erreur de signe dans un terme de diffusion est num\u00e9riquement \u00e9quivalente \u00e0 la diffusion n\u00e9gative - la simulation diverge par conception.<\/p>\n<h3>Cas&nbsp;2&nbsp;: \u00c9change de conditions aux limites (l'astuce de diagnostic FDTD)<\/h3>\n<p>Dans une simulation FDTD, un utilisateur a signal\u00e9 que la modification des conditions aux limites a corrig\u00e9 la divergence. Le workflow de diagnostic de la documentation ANSYS FDTD illustre pourquoi :<\/p>\n<p><strong>\u00c9tape&nbsp;1&nbsp;:<\/strong> D\u00e9finissez temporairement toutes les conditions aux limites sur \"M\u00e9tal\" (fixe) et r\u00e9ex\u00e9cutez la simulation. Si la simulation devient stable, la divergence est li\u00e9e au PML.<\/p>\n<p><strong>\u00c9tape&nbsp;2&nbsp;:<\/strong> Si la simulation diverge encore avec des limites de m\u00e9tal, la divergence est due \u00e0 la stabilit\u00e9 de $dt$ - le pas de temps est trop important pour que le solveur puisse le g\u00e9rer.<\/p>\n<p>Cette astuce d'\u00e9change de limites est un flux de travail de diagnostic pratique qui r\u00e9duit imm\u00e9diatement l'espace de recherche. Au lieu de v\u00e9rifier simultan\u00e9ment le maillage, les param\u00e8tres du solveur, les propri\u00e9t\u00e9s des mat\u00e9riaux et les conditions aux limites, vous isolez les conditions aux limites en tant que cat\u00e9gorie et corrigez la cause r\u00e9elle.<\/p>\n<h3>Cas&nbsp;3&nbsp;: Diagnostic des contours r\u00e9siduels<\/h3>\n<p>Le flux de travail expert TUI de Leap Australia d\u00e9montre une technique de visualisation puissante. Au lieu d'examiner les valeurs r\u00e9siduelles scalaires, vous g\u00e9n\u00e9rez des <strong>trac\u00e9s de contour r\u00e9siduels<\/strong> et des iso-surfaces qui montrent exactement o\u00f9 dans le cluster des r\u00e9sidus \u00e9lev\u00e9s de domaine.<\/p>\n<p>Dans un cas, les r\u00e9sidus \u00e9taient plats \u00e0 10&nbsp;$^{-3}$ alors que la simulation divergeait r\u00e9ellement dans une r\u00e9gion localis\u00e9e. Les contours r\u00e9siduels pr\u00e9sentaient des valeurs extr\u00eames pr\u00e8s d'une limite d'entr\u00e9e o\u00f9 la qualit\u00e9 du maillage \u00e9tait m\u00e9diocre (asym\u00e9trie 0,85). Le r\u00e9sidu scalaire masquait le probl\u00e8me localis\u00e9 car il \u00e9tait moyenn\u00e9 sur l'ensemble du domaine.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> Visualisez toujours les r\u00e9sidus dans l'espace, pas seulement num\u00e9riquement. Les trac\u00e9s de contour r\u00e9v\u00e8lent d'o\u00f9 vient la divergence.<\/p>\n<h3>Cas&nbsp;4&nbsp;: Raideur non monotone dans la FEA<\/h3>\n<p>L'\u00e9tude de cas non lin\u00e9aire FEA d'Enterfea couvre un mode de d\u00e9faillance courant. Une simulation structurelle a diverg\u00e9 au point d'\u00e9quilibre o\u00f9 la rigidit\u00e9 a fortement chut\u00e9. Un solveur contr\u00f4l\u00e9 par la force ne peut pas suivre le point d'\u00e9quilibre - il oscille et \u00e9choue.<\/p>\n<p>Le correctif passait du contr\u00f4le de la force au contr\u00f4le de d\u00e9placement ou \u00e0 l'aide d'une m\u00e9thode de longueur d'arc (RIKS). Ce n'est pas un probl\u00e8me de r\u00e9glage du solveur - c'est un d\u00e9calage fondamental entre la strat\u00e9gie de solveur et la physique.<\/p>\n<p><strong>Le\u00e7on&nbsp;:<\/strong> Pour les probl\u00e8mes non lin\u00e9aires avec le snap-through, le flambage ou le contact, utilisez des m\u00e9thodes de contr\u00f4le de la longueur d'arc ou du d\u00e9placement. Les solveurs contr\u00f4l\u00e9s par la force \u00e9chouent aux points d'\u00e9quilibre o\u00f9 la rigidit\u00e9 est non monotone.<\/p>\n<hr>\n<h2>Pi\u00e8ges courants - Ce qui conduit \u00e0 la divergence<\/h2>\n<p>Ces erreurs sont bien document\u00e9es dans les CFD, FEA et les solveurs num\u00e9riques g\u00e9n\u00e9raux. Ils partagent tous une caract\u00e9ristique&nbsp;: <strong>La simulation semble correcte jusqu'\u00e0 ce qu'elle diverge.<\/strong><\/p>\n<h3>1. Modification simultan\u00e9e de plusieurs param\u00e8tres<\/h3>\n<p>Lorsque vous modifiez le pas de temps, le sch\u00e9ma de discr\u00e9tisation et le facteur de sous-relaxation en une seule fois et que la simulation se stabilise, vous n'avez aucune id\u00e9e du changement qui a r\u00e9ellement fonctionn\u00e9. <strong>Changez toujours un param\u00e8tre \u00e0 la fois.<\/strong> C'est la r\u00e8gle d'or du d\u00e9bogage num\u00e9rique.<\/p>\n<h3>2. Faire confiance aux r\u00e9sidus aveugl\u00e9ment<\/h3>\n<p>Les r\u00e9sidus peuvent \u00eatre plats tandis qu'une variable localis\u00e9e diverge. Comme le avertit la liste de contr\u00f4le Leap Australia, vous devez \u00e9galement <strong>inspecter les points de surveillance<\/strong> - des quantit\u00e9s sp\u00e9cifiques telles que les forces, les vitesses et les temp\u00e9ratures. Les r\u00e9sidus mesurent l'erreur d'\u00e9quation, et non l'exactitude physique de votre solution.<\/p>\n<h3>3. Utilisation de sch\u00e9mas de second ordre sur des maillages grossiers<\/h3>\n<p>La discr\u00e9tisation du second ordre produit des oscillations sur des mailles grossi\u00e8res. Commencez par la discr\u00e9tisation du premier ordre, stabilisez la solution, puis passez au second ordre. Ce n'est pas th\u00e9orique - c'est un flux de travail pratique utilis\u00e9 par des praticiens exp\u00e9riment\u00e9s de la CFD.<\/p>\n<h3>4. Ignorer les volumes cellulaires n\u00e9gatifs<\/h3>\n<p>Les volumes cellulaires n\u00e9gatifs sont des impossibilit\u00e9s math\u00e9matiques. Ils se produisent lorsqu'une cellule maill\u00e9e est invers\u00e9e ou effondr\u00e9e. Si votre pr\u00e9-processeur ou votre g\u00e9n\u00e9rateur de maillage signale des volumes n\u00e9gatifs, corrigez le maillage avant de tenter une simulation. Aucun solveur ne peut r\u00e9soudre des volumes n\u00e9gatifs.<\/p>\n<h3>5. En supposant que les valeurs propres n\u00e9gatives sont des erreurs de solveurs<\/h3>\n<p>Dans ABAQUS et d'autres solveurs FEA, les messages persistants \u00e0 valeur proprement \u00e9lev\u00e9e indiquent souvent un comportement de flambage, et non une instabilit\u00e9 num\u00e9rique. Le correctif correct est une m\u00e9thode de longueur d'arc (RIKS) ou un solveur de dynamique implicite - pas une tol\u00e9rance plus \u00e9troite ou un algorithme de solveur diff\u00e9rent.<\/p>\n<hr>\n<h2>Outils et techniques de diagnostic<\/h2>\n<h3>Surveillance r\u00e9siduelle<\/h3>\n<p>La plupart des solveurs rapportent des valeurs r\u00e9siduelles pour chaque \u00e9quation (continuit\u00e9, momentum, \u00e9nergie, turbulence). Surveiller les r\u00e9sidus sur les it\u00e9rations. Un r\u00e9sidu bien converg\u00e9 diminue g\u00e9n\u00e9ralement de 3 \u00e0 4 ordres de grandeur, de 10&nbsp;$^{-1}$ \u00e0 10&nbsp;$^{-4}$ ou moins.<\/p>\n<p><strong>Important&nbsp;:<\/strong> Si les r\u00e9sidus chutent initialement mais puis le plateau sans atteindre la cible, la simulation peut avoir converg\u00e9 num\u00e9riquement sans atteindre la pr\u00e9cision physique. V\u00e9rifiez les points de surveillance pour ce cas.<\/p>\n<h3>Surveiller les points<\/h3>\n<p>Les points de surveillance sont des quantit\u00e9s sp\u00e9cifiques que vous suivez \u00e0 chaque it\u00e9ration. Dans le CFD, ce sont g\u00e9n\u00e9ralement des forces (soul\u00e8vement, tra\u00een\u00e9e), des temp\u00e9ratures, des vitesses ou des pressions \u00e0 des endroits sp\u00e9cifiques. Dans FEA, ce sont des forces de r\u00e9action, des d\u00e9placements ou des pressions de contact.<\/p>\n<p><strong>Les points de surveillance r\u00e9v\u00e8lent une divergence que les r\u00e9sidus masquent.<\/strong> Comme le souligne le guide Leap&nbsp;Australia, une simulation avec des r\u00e9sidus plats peut toujours avoir des points de surveillance divergents. Ex\u00e9cutez toujours les r\u00e9sidus et surveillez les points ensemble.<\/p>\n<h3>Diagnostic des solveurs<\/h3>\n<p>Diff\u00e9rents solveurs fournissent diff\u00e9rents outils de diagnostic :<\/p>\n<ul>\n<li><strong>Plots de convergence de Newton-Raphson<\/strong> (FEA) \u2014 Montrer si le solveur progresse vers l'\u00e9quilibre ou l'oscillation<\/li>\n<li><strong>Suivi des valeurs propres<\/strong> (FEA) \u2014 Les valeurs propres n\u00e9gatives indiquent un contact de flambage ou un contact instable<\/li>\n<li><strong>Diagnostics de TreeDepth et R-Hat<\/strong> (MMCMC\/Bayesian Solvers) \u2014 Identifier les transitions divergentes dans le Monte Carlo hamiltonien<\/li>\n<li><strong>Surveillance de la BFMI (Information basale)<\/strong> (Stan\/MCMC) \u2014 D\u00e9tecte les r\u00e9gions de courbure pathologique<\/li>\n<\/ul>\n<h3>Visualisation du contour r\u00e9siduel<\/h3>\n<p>Activez le mode expert dans votre solveur et ex\u00e9cutez une seule it\u00e9ration. La plupart des solveurs g\u00e9n\u00e9reront des trac\u00e9s de contour r\u00e9siduels montrant o\u00f9 les r\u00e9sidus se regroupent dans l'espace. Cela r\u00e9v\u00e8le la r\u00e9gion du domaine d'origine de la divergence - une limite d'entr\u00e9e, une zone de transition de maillage ou une r\u00e9gion \u00e0 gradient \u00e9lev\u00e9 localis\u00e9.<\/p>\n<h3>Nan et Inf Tra\u00e7age<\/h3>\n<p>Identifiez le pas de temps ou l'it\u00e9ration exact o\u00f9 les valeurs NAN ou INF apparaissent pour la premi\u00e8re fois. Remontez ensuite \u00e0 l'\u00e9tape pr\u00e9c\u00e9dente et examinez les valeurs qui ont conduit \u00e0 la NAN. Ceci est particuli\u00e8rement utile pour d\u00e9terminer si la divergence est spatiale (une r\u00e9gion du domaine) ou temporelle (le solveur sortant de sa r\u00e9gion de stabilit\u00e9).<\/p>\n<hr>\n<h2>Quand escalader<\/h2>\n<p>Parfois, une simulation diverge malgr\u00e9 le maillage, les conditions aux limites et les param\u00e8tres du solveur. Dans ces cas, le probl\u00e8me peut \u00eatre :<\/p>\n<ul>\n<li><strong>Impossibilit\u00e9 physique<\/strong> \u2014 Les conditions aux limites ou les conditions initiales d\u00e9crivent un sc\u00e9nario qui est physiquement impossible pour les hypoth\u00e8ses du solveur (par exemple, flux incompressible avec des mat\u00e9riaux compressibles)<\/li>\n<li><strong>Limitation du solveur<\/strong> \u2014 Le solveur ne peut pas g\u00e9rer le r\u00e9gime physique sp\u00e9cifique (p. ex., flux multiphas\u00e9 avec des rapports de densit\u00e9 extr\u00eames)<\/li>\n<li><strong>Bug au niveau du code<\/strong>&nbsp;: une erreur de discr\u00e9tisation, une erreur de signature ou un terme manquant dans votre impl\u00e9mentation<\/li>\n<\/ul>\n<p><strong>Quand escalader&nbsp;:<\/strong><\/p>\n<ul>\n<li>Vous avez v\u00e9rifi\u00e9 la qualit\u00e9 du maillage, les conditions aux limites, le pas de temps et les param\u00e8tres du solveur<\/li>\n<li>La simulation diverge m\u00eame avec un pas de temps conservateur et une discr\u00e9tisation du premier ordre<\/li>\n<li>Les points de surveillance divergent tandis que les r\u00e9sidus convergent (ou vice versa)<\/li>\n<li>Vous soup\u00e7onnez une erreur de signe de discr\u00e9tisation mais vous ne le trouvez pas<\/li>\n<\/ul>\n<p>Dans ces cas, envisagez de contacter le support de solveur, de consulter la litt\u00e9rature pour des cas similaires ou d'utiliser la m\u00e9thode des solutions fabriqu\u00e9es pour v\u00e9rifier votre code de discr\u00e9tisation ligne par ligne.<\/p>\n<hr>\n<h2>R\u00e9sum\u00e9 et \u00e9tapes suivantes<\/h2>\n<p>Le d\u00e9bogage des simulations num\u00e9riques ne consiste pas \u00e0 trouver le bon param\u00e8tre, il s'agit de suivre un flux de travail de diagnostic syst\u00e9matique. Les quatre cat\u00e9gories de causes racines (conditions temporelles, spatiales, limites\/initiales, param\u00e8tres de solveur) vous donnent une taxonomie pour r\u00e9duire l'espace de recherche. L'astuce d'\u00e9change de limites, la visualisation de contour r\u00e9siduelle et l'inspection des points de surveillance vous donnent des outils pratiques que les praticiens exp\u00e9riment\u00e9s utilisent pour isoler la cause r\u00e9elle.<\/p>\n<p><strong>Vos prochaines \u00e9tapes&nbsp;:<\/strong><\/p>\n<ol>\n<li>Lorsque votre simulation diverge, commencez par forcer plus rapidement une d\u00e9faillance (pas de temps plus important, moins d'it\u00e9rations)<\/li>\n<li>Isoler quelle variable diverge en premier \u00e0 l'aide de points de surveillance<\/li>\n<li>Modifier un param\u00e8tre \u00e0 la fois, v\u00e9rifier et documenter<\/li>\n<li>Utilisez la visualisation du contour r\u00e9siduel pour trouver les origines de la divergence dans l'espace<\/li>\n<li>Pour la FEA non lin\u00e9aire, passez aux m\u00e9thodes de longueur d'arc lorsque le contr\u00f4le de la force \u00e9choue aux points d'\u00e9quilibre<\/li>\n<\/ol>\n<p>Si vous travaillez sp\u00e9cifiquement avec des probl\u00e8mes difficiles, le guide sur <a href=\"https:\/\/matforge.org\/stiff-problems-and-stiff-solvers\/\">probl\u00e8mes raides et solveurs rigides<\/a> couvre quand et pourquoi les m\u00e9thodes explicites \u00e9chouent. Pour les flux de travail de d\u00e9bogage de codes g\u00e9n\u00e9raux au-del\u00e0 du diagnostic num\u00e9rique, consultez le <a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">python de d\u00e9bogage pour le code scientifique<\/a>.<\/p>\n<hr>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">D\u00e9bogage de Python pour le code scientifique<\/a> - ouvrages d'impression, PDB, profilage et test des flux de travail<\/li>\n<li><a href=\"https:\/\/matforge.org\/stiff-problems-and-stiff-solvers\/\">Probl\u00e8mes raides et solveurs rigides<\/a> - Lorsque les m\u00e9thodes explicites \u00e9chouent et pourquoi des probl\u00e8mes raides cassent les solveurs<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducibility-and-its-role-in-debugging\/\">Reproductibilit\u00e9 et son r\u00f4le dans le d\u00e9bogage<\/a> \u2014 Workflows versionn\u00e9s pour le d\u00e9bogage de simulation reproductible<\/li>\n<li><a href=\"https:\/\/matforge.org\/in-situ-visualization-integration-computation\/\">Visualisation in situ<\/a> \u2014 Utilisation de la visualisation in situ comme syst\u00e8me d'alerte pr\u00e9coce pour la divergence num\u00e9rique<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">\u00c9tudes de qualit\u00e9 et de convergence des maillages<\/a> \u2014 Diagnostic de maillage qui affecte la stabilit\u00e9 et la convergence<\/li>\n<\/ul>\n<hr>\n<h2>Liste de contr\u00f4le pratique&nbsp;: ce qu'il faut essayer en premier<\/h2>\n<p>Utilisez cette liste de contr\u00f4le lorsque votre simulation diverge. Travaillez \u00e0 chaque \u00e9tape avant de passer \u00e0 la suivante.<\/p>\n<ul>\n<li>[ ] V\u00e9rifier la qualit\u00e9 du maillage \u2014 asym\u00e9trique &lt; 0,7, rapport d'aspect &lt;&nbsp;; 50, pas de volumes n\u00e9gatifs<\/li>\n<li>[ ] V\u00e9rifier le num\u00e9ro CFL \u2014 R\u00e9duisez le pas de temps jusqu'\u00e0 $c &lt; 0,5&nbsp;$<\/li>\n<li>[ ] V\u00e9rifier les conditions aux limites \u2014 coh\u00e9rence d'entr\u00e9e\/sortie, pression de r\u00e9f\u00e9rence, direction d'\u00e9coulement<\/li>\n<li>[ ] D\u00e9finir les conditions initiales \u2014 Assurez-vous qu'elles correspondent aux conditions aux limites et \u00e0 l'\u00e9tat physique attendu<\/li>\n<li>[ ] Utiliser la discr\u00e9tisation du premier ordre - monter au second ordre apr\u00e8s la stabilisation<\/li>\n<li>[ ] V\u00e9rifiez les facteurs de sous-relaxation \u2014 utilisez les valeurs par d\u00e9faut, puis r\u00e9glez si n\u00e9cessaire<\/li>\n<li>[ ] Surveiller les r\u00e9sidus et les points de surveillance - les r\u00e9sidus plats ne garantissent pas la convergence<\/li>\n<li>[ ] G\u00e9n\u00e9rer des trac\u00e9s de contour r\u00e9siduels \u2014 Visualisez o\u00f9 les r\u00e9sidus cluster dans l'espace<\/li>\n<li>[ ] Pour FEA : cochez les valeurs propres \u2014 les valeurs propres n\u00e9gatives indiquent souvent une erreur de flambage, et non une erreur de solveur.<\/li>\n<li>[ ] Pour FEA : passer \u00e0 la m\u00e9thode de longueur d'arc (RIKS) si le solveur contr\u00f4l\u00e9 par la force \u00e9choue \u00e0 l'\u00e9quilibre<\/li>\n<li>[ ] V\u00e9rifier les signes de discr\u00e9tisation - Une erreur de signe unique peut entra\u00eener une divergence catastrophique<\/li>\n<li>[ ] ne modifiez qu'un seul r\u00e9glage \u00e0 la fois \u2014 toujours, jamais deux simultan\u00e9ment<\/li>\n<\/ul>\n<hr>\n<p><strong>Tr\u00e8s bas&nbsp;:<\/strong> La divergence est diagnostiqu\u00e9e. Les quatre cat\u00e9gories (conditions temporelles, spatiales, limites\/initiales, param\u00e8tres du solveur) fournissent un cadre. Les techniques (swap de fronti\u00e8re, contours r\u00e9siduels, points de surveillance, un changement \u00e0 la fois) fournissent les outils. Utilisez-les syst\u00e9matiquement et vous trouverez la cause profonde, et non seulement masquer le sympt\u00f4me.<\/p>\n<hr>\n<h2>Sources externes<\/h2>\n<p>Les sources externes suivantes ont \u00e9t\u00e9 consult\u00e9es lors de la recherche et sont recommand\u00e9es pour une lecture plus approfondie :<\/p>\n<ul>\n<li><a href=\"https:\/\/www.leapaust.com.au\/blog\/cfd\/cfd-troubleshooting-checklist\/\" target=\"_blank\" rel=\"nofollow noopener\">Leap Australia \u2014 CFD Liste de contr\u00f4le de d\u00e9pannage<\/a> \u2014 Flux de travail de diagnostic CFD syst\u00e9matique et configuration des points de surveillance<\/li>\n<li><a href=\"https:\/\/optics.ansys.com\/hc\/en-us\/articles\/11277217507603-Troubleshooting-diverging-simulations-in-FDTD\" target=\"_blank\" rel=\"nofollow noopener\">Ansys FDTD \u2014 D\u00e9pannage des simulations divergentes<\/a> \u2014 Guide de diagnostic et de stabilit\u00e9 DT<\/li>\n<li><a href=\"https:\/\/www.mr-cfd.com\/errors-occurring-in-simulations-with-ansys-fluent\/\" target=\"_blank\" rel=\"nofollow noopener\">ansys Fluent \u2014 Erreurs dans les simulations<\/a> \u2014 Param\u00e8tres complets de cat\u00e9gorisation des erreurs et de solveurs<\/li>\n<li><a href=\"https:\/\/enterfea.com\/problems-with-nonlinear-analysis-convergence-read-this\/\" target=\"_blank\" rel=\"nofollow noopener\">EnterFEA \u2014 Convergence d'analyse non lin\u00e9aire<\/a> \u2014 M\u00e9thodes de longueur d'arc et direction de force contre d\u00e9placement<\/li>\n<li><a href=\"https:\/\/blog.3ds.com\/brands\/simulia\/debugging-abaqus-models\/\" target=\"_blank\" rel=\"nofollow noopener\">abaqus mod\u00e8le de d\u00e9bogage<\/a> \u2014 D\u00e9bogage de Newton-Raphson et analyse des valeurs propres<\/li>\n<li><a href=\"https:\/\/scicomp.stackexchange.com\/questions\/7736\" target=\"_blank\" rel=\"nofollow noopener\">Scicomp StackExchange \u2014 d\u00e9bogage de code num\u00e9rique<\/a> \u2014 Signe de discr\u00e9tisation Erreurs et m\u00e9thode des solutions fabriqu\u00e9es<\/li>\n<li><a href=\"https:\/\/www.grc.nasa.gov\/www\/wind\/valid\/tutorial\/errors.html\" target=\"_blank\" rel=\"nofollow noopener\">NASA Wind \u2014 Classification des erreurs CFD<\/a> \u2014 CFD Incertitude et taxonomie des erreurs<\/li>\n<\/ul>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 14<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>D\u00e9couvrez comment diagnostiquer la raison pour laquelle votre simulation diverge ou devient instable. Flux de travail syst\u00e9matique pour identifier les causes profondes\u00a0: violations de la LCF, pathologie du maillage, conditions aux limites et param\u00e8tres du solveur.<\/p>\n","protected":false,"raw":"D\u00e9couvrez comment diagnostiquer la raison pour laquelle votre simulation diverge ou devient instable. Flux de travail syst\u00e9matique pour identifier les causes profondes\u00a0: violations de la LCF, pathologie du maillage, conditions aux limites et param\u00e8tres du solveur."},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=1054","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1211","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org\" \/>\n<meta property=\"og:description\" content=\"Reading Time:  14 minutesD\u00e9couvrez comment diagnostiquer la raison pour laquelle votre simulation diverge ou devient instable. Flux de travail syst\u00e9matique pour identifier les causes profondes\u00a0: violations de la LCF, pathologie du maillage, conditions aux limites et param\u00e8tres du solveur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:28:50+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s\",\"datePublished\":\"2026-08-21T14:28:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/\"},\"wordCount\":4534,\"commentCount\":0,\"articleSection\":[\"Simulation &amp; Projets de mod\u00e9lisation\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/\",\"name\":\"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:28:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/debugging-numerical-simulations-diagnosing-divergence-instability\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/","og_locale":"fr_FR","og_type":"article","og_title":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org","og_description":"Reading Time:  14 minutesD\u00e9couvrez comment diagnostiquer la raison pour laquelle votre simulation diverge ou devient instable. Flux de travail syst\u00e9matique pour identifier les causes profondes\u00a0: violations de la LCF, pathologie du maillage, conditions aux limites et param\u00e8tres du solveur.","og_url":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:28:50+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"steven","Dur\u00e9e de lecture estim\u00e9e":"22 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s","datePublished":"2026-08-21T14:28:50+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/"},"wordCount":4534,"commentCount":0,"articleSection":["Simulation &amp; Projets de mod\u00e9lisation"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/","url":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/","name":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s - matforge.org","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:28:50+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/debugging-numerical-simulations-diagnosing-divergence-instability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"D\u00e9bogage des simulations num\u00e9riques : diagnostic des divergences et instabilit\u00e9s"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1211"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1211\/revisions"}],"predecessor-version":[{"id":1379,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1211\/revisions\/1379"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}