{"id":1292,"date":"2026-08-21T14:31:18","date_gmt":"2026-08-21T14:31:18","guid":{"rendered":"https:\/\/matforge.org\/?p=1292","raw":"https:\/\/matforge.org\/?p=1292"},"modified":"2026-08-21T14:31:18","modified_gmt":"2026-08-21T14:31:18","slug":"advection-dominated-problems-supg-stabilization","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/","title":{"rendered":"Probl\u00e8mes domin\u00e9s par l&rsquo;advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG","raw":"Probl\u00e8mes domin\u00e9s par l'advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG"},"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><article>\n<p>Les \u00e9quations aux d\u00e9riv\u00e9es partielles domin\u00e9es par l&rsquo;advection sont difficiles car les informations se d\u00e9placent principalement le long d&rsquo;une direction d&rsquo;\u00e9coulement tandis que la diffusion physique fournit peu de lissage. Une m\u00e9thode num\u00e9rique qui fonctionne bien pour un probl\u00e8me domin\u00e9 par la diffusion peut produire des oscillations, un maculage excessif ou des valeurs non physiques lorsque l&rsquo;advection devient plus forte.<\/p>\n<p>La bonne r\u00e9ponse n&rsquo;est pas simplement de s\u00e9lectionner le sch\u00e9ma le plus diffusif disponible. Une diffusion num\u00e9rique excessive peut masquer les fronts nets, affaiblir les pics de concentration et modifier les taux de transport. Une discr\u00e9tisation utile doit \u00e9quilibrer la stabilit\u00e9, la d\u00e9limitation, la conservation et la r\u00e9solution.<\/p>\n<p>Le nombre de peclets cellulaires aide \u00e0 d\u00e9crire cet \u00e9quilibre. La diff\u00e9renciation centrale peut fonctionner lorsque le maillage r\u00e9sout la diffusion physique. Le contre-vent du premier ordre fournit de la robustesse mais enduit la solution. Les sch\u00e9mas limit\u00e9s d&rsquo;ordre sup\u00e9rieur r\u00e9duisent les bavures tout en contr\u00f4lant les oscillations. Dans les m\u00e9thodes d&rsquo;\u00e9l\u00e9ments finis, SUPG ajoute une stabilisation coh\u00e9rente principalement le long des lignes de courant.<\/p>\n<h2>L&rsquo;\u00e9quation d&rsquo;advection-diffusion<\/h2>\n<p>Un mod\u00e8le de transport scalaire commun est :<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + \u2207 \u00b7 (v\u03c6) = \u2207 \u00b7 (\u03b1\u2207\u03c6) + S<\/code><\/pre>\n<p>Pour un champ de vitesse incompressible, ceci est souvent \u00e9crit comme suit&nbsp;:<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + v \u00b7 \u2207\u03c6 = \u03b1\u2207\u00b2\u03c6 + S<\/code><\/pre>\n<p>ici&nbsp;:<\/p>\n<ul>\n<li><code>\u03c6<\/code> est le scalaire transport\u00e9, comme la temp\u00e9rature ou la concentration.<\/li>\n<li><code>v<\/code> est le champ de vitesse.<\/li>\n<li><code>\u03b1<\/code> est la diffusivit\u00e9 physique.<\/li>\n<li><code>S<\/code> est une source ou un puits.<\/li>\n<\/ul>\n<p>La diffusion diffuse des informations dans toutes les directions et lisse les gradients. L&rsquo;advection transporte les informations principalement selon les caract\u00e9ristiques d\u00e9termin\u00e9es par le champ de vitesse. Lorsque la diffusion est faible, la m\u00e9thode num\u00e9rique doit respecter ce transport directionnel.<\/p>\n<h2>Le nombre de peclet de cellule<\/h2>\n<p>Le nombre de peclet de cellule compare l&rsquo;advection et la diffusion \u00e0 l&rsquo;\u00e9chelle d&rsquo;une cellule de maille. Une convention largement utilis\u00e9e est :<\/p>\n<pre><code>Pe\u2095 = |v|h \/ \u03b1<\/code><\/pre>\n<p>Pour une \u00e9quation unidimensionnelle de convection-diffusion stable sur une grille uniforme, les coefficients de volume fini central classique restent non n\u00e9gatifs lorsque :<\/p>\n<pre><code>|Pe\u2095| \u2264 2<\/code><\/pre>\n<p>Certaines r\u00e9f\u00e9rences d\u00e9finissent le nombre de peclet cellulaire avec un facteur suppl\u00e9mentaire de deux&nbsp;:<\/p>\n<pre><code>Pe* = |v|h \/ (2\u03b1)<\/code><\/pre>\n<p>Selon cette convention, la condition \u00e9quivalente est :<\/p>\n<pre><code>|Pe*| \u2264 1<\/code><\/pre>\n<p>La convention doit donc \u00eatre \u00e9nonc\u00e9e avant de citer un seuil. \u00c9crire <code>|v|h\/(2\u03b1)<\/code> et le comparer avec 2 m\u00e9langerait deux d\u00e9finitions diff\u00e9rentes.<\/p>\n<p>Pour un maillage de volume fini multidimensionnel, une valeur de face locale plus utile est :<\/p>\n<pre><code>Pe_f =\n    |v_f \u00b7 n_f| d_PA\n    \/ \u03b1_f<\/code><\/pre>\n<p>La valeur d\u00e9pend de la vitesse normale \u00e0 travers une face, de la distance entre les centres cellulaires voisins et de la diffusivit\u00e9 locale. Il peut varier d&rsquo;un domaine \u00e0 l&rsquo;autre lorsque les propri\u00e9t\u00e9s du maillage, de la vitesse ou du mat\u00e9riau ne sont pas uniformes.<\/p>\n<h2>Ce que signifie r\u00e9ellement le crit\u00e8re Peclet<\/h2>\n<p>Le seuil souvent cot\u00e9 proche de deux s&rsquo;applique \u00e0 une discr\u00e9tisation particuli\u00e8re \u00e0 convection-diffusion unidimensionnelle et stable. Il s&rsquo;agit d&rsquo;un crit\u00e8re de d\u00e9limitation pour les coefficients alg\u00e9briques produits par la diff\u00e9renciation centrale.<\/p>\n<p>Cela ne signifie pas que chaque sch\u00e9ma central pour chaque probl\u00e8me transitoire devient imm\u00e9diatement instable au m\u00eame nombre. Les discr\u00e9tisations spatiales et temporelles doivent \u00eatre analys\u00e9es ensemble.<\/p>\n<p>Deux probl\u00e8mes diff\u00e9rents sont souvent confondus :<\/p>\n<ol>\n<li>Dans une \u00e9quation de volume fini par convection-diffusion stable, la diff\u00e9renciation centrale peut perdre la positivit\u00e9 du coefficient lorsque le nombre de peclets cellulaires est trop grand. La solution peut alors d\u00e9velopper des d\u00e9passements et des sous-d\u00e9bits.<\/li>\n<li>Pour une advection transitoire pure, l&rsquo;avant Euler dans le temps combin\u00e9 \u00e0 l&rsquo;espace centr\u00e9, connu sous le nom de FTCS, est instable pour n&rsquo;importe quel nombre de cours non nul.<\/li>\n<\/ol>\n<p>Ces deux probl\u00e8mes peuvent produire des oscillations, mais leurs causes math\u00e9matiques ne sont pas identiques.<\/p>\n<h2>Pourquoi la diff\u00e9renciation centrale peut osciller<\/h2>\n<p>La diff\u00e9renciation centrale estime une valeur nominale de mani\u00e8re sym\u00e9trique&nbsp;:<\/p>\n<pre><code>\u03c6_f \u2248 (\u03c6_P + \u03c6_A) \/ 2<\/code><\/pre>\n<p>Sur une grille uniforme, cela produit une approximation du second ordre pour des solutions lisses. Il introduit \u00e9galement tr\u00e8s peu de dissipation num\u00e9rique.<\/p>\n<p>Cette faible dissipation est utile lorsque la solution physique est lisse et bien r\u00e9solue. Cela devient un probl\u00e8me \u00e0 proximit\u00e9 de couches abruptes ou lorsque la diffusion physique est trop faible pour contr\u00f4ler les modes d&rsquo;\u00e9chelle de la grille.<\/p>\n<p>Dans l&rsquo;\u00e9quation de volume fini unidimensionnel r\u00e9gulier, l&rsquo;augmentation du nombre de peclets cellulaires r\u00e9duit un coefficient voisin. Une fois que ce coefficient change de signe, le principe maximum discret peut \u00eatre perdu. La solution peut d\u00e9passer les valeurs limites ou devenir n\u00e9gative m\u00eame lorsque la solution physique reste limit\u00e9e.<\/p>\n<p>Pour l&rsquo;advection pure transitoire, un d\u00e9riv\u00e9 spatial centr\u00e9 est principalement dispersif. Sa convenance d\u00e9pend de l&rsquo;int\u00e9grateur de temps. L&rsquo;association avec l&rsquo;avant Euler produit une m\u00e9thode instable, tandis que d&rsquo;autres int\u00e9grateurs temporels peuvent contr\u00f4ler la croissance mais introduire toujours des erreurs de phase ou des oscillations \u00e0 proximit\u00e9 de gradients non r\u00e9solus.<\/p>\n<h2>Diff\u00e9rence de premier ordre au vent<\/h2>\n<p>La diff\u00e9renciation au vent utilise des informations de la direction d&rsquo;origine du flux. Pour une vitesse unidimensionnelle positive :<\/p>\n<pre><code>(\u2202\u03c6\/\u2202x)\u1d62\n\u2248 (\u03c6\u1d62 - \u03c6\u1d62\u208b\u2081) \/ h<\/code><\/pre>\n<p>Pour une vitesse n\u00e9gative, il utilise la valeur de droite :<\/p>\n<pre><code>(\u2202\u03c6\/\u2202x)\u1d62\n\u2248 (\u03c6\u1d62\u208a\u2081 - \u03c6\u1d62) \/ h<\/code><\/pre>\n<p>Ce pochoir sensible \u00e0 la direction supprime de nombreuses oscillations produites par une approximation centr\u00e9e. Pour une convection lin\u00e9aire et une diffusion lin\u00e9aires, il produit \u00e9galement des coefficients voisins positifs sur une gamme beaucoup plus large de nombres de peclet cellulaire.<\/p>\n<p>La discr\u00e9tisation spatiale au vent ne doit pas \u00eatre d\u00e9crite comme inconditionnellement stable sans qualification. S&rsquo;il est combin\u00e9 avec un int\u00e9grateur de temps explicite, la m\u00e9thode compl\u00e8te a toujours une restriction de Courant.<\/p>\n<h2>Au vent comme diff\u00e9renciation centrale et diffusion<\/h2>\n<p>Pour une vitesse constante positive, la d\u00e9riv\u00e9e du premier ordre du vent peut \u00eatre \u00e9crite exactement comme suit&nbsp;:<\/p>\n<pre><code>(\u03c6\u1d62 - \u03c6\u1d62\u208b\u2081) \/ h\n=\n(\u03c6\u1d62\u208a\u2081 - \u03c6\u1d62\u208b\u2081) \/ (2h)\n-\n(\u03c6\u1d62\u208a\u2081 - 2\u03c6\u1d62 + \u03c6\u1d62\u208b\u2081) \/ (2h)<\/code><\/pre>\n<p>L&rsquo;expression de la deuxi\u00e8me diff\u00e9rence se rapproche de <code>h\u03c6\u2093\u2093<\/code>. Le remplacement de l&rsquo;op\u00e9rateur au vent dans l&rsquo;\u00e9quation d&rsquo;advection donne l&rsquo;\u00e9quation modifi\u00e9e :<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + v\u2202\u03c6\/\u2202x\n=\n(|v|h \/ 2) \u2202\u00b2\u03c6\/\u2202x\u00b2\n+ higher-order terms<\/code><\/pre>\n<p>Le premier coefficient de diffusion num\u00e9rique de la semi-discr\u00e9tisation spatiale est donc :<\/p>\n<pre><code>\u03b1_num = |v|h \/ 2<\/code><\/pre>\n<p>Cela explique \u00e0 la fois la stabilit\u00e9 et la diffamation associ\u00e9e au premier ordre au vent. Il ajoute un terme de troncature de type diffusion qui supprime les ondes courtes et les gradients pointus.<\/p>\n<p>La formule d\u00e9crit l&rsquo;erreur principale de l&rsquo;op\u00e9rateur spatial. Une fois qu&rsquo;une discr\u00e9tisation temporelle est ajout\u00e9e, l&rsquo;\u00e9quation modifi\u00e9e compl\u00e8te peut contenir des termes suppl\u00e9mentaires qui d\u00e9pendent du nombre de cours et de la taille du pas de temps.<\/p>\n<h2>R\u00e9duire la diffusion num\u00e9rique<\/h2>\n<p>Parce que la diffusion au vent en t\u00eate s&rsquo;adapte \u00e0 l&rsquo;espacement des mailles, l&rsquo;affinage du maillage r\u00e9duit la bavure. R\u00e9duire uniquement le pas de temps ne supprime pas l&rsquo;erreur spatiale principale.<\/p>\n<p>D&rsquo;autres options incluent :<\/p>\n<ul>\n<li>Utilisation d&rsquo;une reconstruction de second ordre<\/li>\n<li>Application d&rsquo;un limiteur de flux<\/li>\n<li>Utilisation rapide sur des maillages structur\u00e9s appropri\u00e9s<\/li>\n<li>Appliquer les m\u00e9thodes TVD ou Weno<\/li>\n<li>Utilisation de SUPG dans une formulation d&rsquo;\u00e9l\u00e9ments finis<\/li>\n<li>Aligner et affiner le maillage \u00e0 proximit\u00e9 de couches importantes<\/li>\n<\/ul>\n<p>L&rsquo;augmentation de la diffusivit\u00e9 physique n&rsquo;est pas une solution num\u00e9rique. Il change de mod\u00e8le et ne doit \u00eatre fait que lorsque le probl\u00e8me physique n\u00e9cessite un coefficient diff\u00e9rent.<\/p>\n<h2>Diffusion et dispersion num\u00e9riques<\/h2>\n<p>La diffusion num\u00e9rique r\u00e9duit l&rsquo;amplitude des ondes r\u00e9solues. Il r\u00e9pand les discontinuit\u00e9s et lisse les pics \u00e9troits.<\/p>\n<p>La dispersion num\u00e9rique modifie la vitesse de propagation de diff\u00e9rentes longueurs d&rsquo;onde. Il peut produire des oscillations d&rsquo;attaque ou de fin, m\u00eame lorsque l&rsquo;amplitude totale n&rsquo;est pas fortement amortie.<\/p>\n<p>Le contrevent du premier ordre est principalement dissipatif. De nombreux sch\u00e9mas centr\u00e9s et d&rsquo;ordre sup\u00e9rieur sont moins dissipatifs mais plus dispersifs. Une bonne m\u00e9thode de transport doit contr\u00f4ler les deux effets.<\/p>\n<p>Le bon \u00e9quilibre d\u00e9pend de l&rsquo;application. Une petite quantit\u00e9 limit\u00e9e de dissipation peut \u00eatre acceptable dans un calcul d&rsquo;ing\u00e9nierie robuste. Dans la propagation des ondes, un amortissement excessif peut d\u00e9truire la quantit\u00e9 mesur\u00e9e. Dans le transport r\u00e9actif, les sous-d\u00e9bits oscillatoires peuvent cr\u00e9er des concentrations n\u00e9gatives et briser le mod\u00e8le de r\u00e9action.<\/p>\n<h2>Sch\u00e9mas lin\u00e9aires d&rsquo;ordre sup\u00e9rieur<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Sch\u00e8me<\/th>\n<th>ordre nominal<\/th>\n<th>force principale<\/th>\n<th>principal risque<\/th>\n<\/tr>\n<tr>\n<td>diff\u00e9rence centrale<\/td>\n<td>Deuxi\u00e8me ordre sur des grilles uniformes et lisses<\/td>\n<td>Faible diffusion num\u00e9rique<\/td>\n<td>Perte de d\u00e9limitation ou oscillations dispersives<\/td>\n<\/tr>\n<tr>\n<td>Premier ordre au vent<\/td>\n<td>premier ordre<\/td>\n<td>Robuste et sens\u00e9<\/td>\n<td>Forte diffusion num\u00e9rique<\/td>\n<\/tr>\n<tr>\n<td>Lin\u00e9aire au vent<\/td>\n<td>Deuxi\u00e8me commande sur des grilles lisses<\/td>\n<td>Moins de diffusion que le premier ordre au vent<\/td>\n<td>pas automatiquement d\u00e9limit\u00e9 pr\u00e8s des gradients nets<\/td>\n<\/tr>\n<tr>\n<td>Rapide<\/td>\n<td>Interpolation du visage du troisi\u00e8me ordre sur une grille uniforme<\/td>\n<td>Bonne pr\u00e9cision pour une convection lisse<\/td>\n<td>Peut d\u00e9passer et perdre de l&rsquo;ordre pr\u00e8s des limites ou des grilles irr\u00e9guli\u00e8res<\/td>\n<\/tr>\n<tr>\n<td>Lax-Wendroff<\/td>\n<td>Deuxi\u00e8me ordre dans l&rsquo;espace et le temps pour l&rsquo;advection lin\u00e9aire<\/td>\n<td>Faible dissipation pour les ondes r\u00e9solues<\/td>\n<td>Oscillations dispersives proches des discontinuit\u00e9s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>L&rsquo;ordre nominal s&rsquo;applique dans les r\u00e9gions lisses selon les hypoth\u00e8ses utilis\u00e9es pour d\u00e9river le sch\u00e9ma. Les limites, les limiteurs, la non-orthogonalit\u00e9 de maillage, les discontinuit\u00e9s et les coefficients variables peuvent r\u00e9duire le taux de convergence observ\u00e9.<\/p>\n<h2>Limiteurs de flux et sch\u00e9mas TVD<\/h2>\n<p>Un limiteur de flux combine un flux d&rsquo;ordre faible robuste avec une correction d&rsquo;ordre \u00e9lev\u00e9 moins diffusive. Dans les r\u00e9gions lisses, le limiteur permet l&rsquo;approximation d&rsquo;ordre sup\u00e9rieur. Pr\u00e8s de gradients pointus, il r\u00e9duit la correction pour \u00e9viter de nouveaux maxima ou minima.<\/p>\n<p>Une valeur faciale m\u00e9lang\u00e9e simplifi\u00e9e peut \u00eatre \u00e9crite comme suit&nbsp;:<\/p>\n<pre><code>\u03c6_f =\n\u03c6_f(upwind)\n+\n\u03c8(r) [\n    \u03c6_f(high-order)\n    - \u03c6_f(upwind)\n]<\/code><\/pre>\n<p>La fonction limiteur <code>\u03c8(r)<\/code> d\u00e9pend des gradients voisins. Les exemples courants incluent Minmod, Van Leer, Superbee et Monotonized Central Limitters.<\/p>\n<p>Les m\u00e9thodes de diminution des variations totales sont con\u00e7ues pour \u00e9viter d&rsquo;augmenter la variation totale d&rsquo;une solution unidimensionnelle. Ils offrent un compromis utile entre la robustesse du premier ordre au vent et la r\u00e9solution d&rsquo;un sch\u00e9ma d&rsquo;ordre sup\u00e9rieur.<\/p>\n<p>Pr\u00e8s d&rsquo;une v\u00e9ritable discontinuit\u00e9, un limiteur non lin\u00e9aire r\u00e9duit normalement l&rsquo;ordre local. Ceci est attendu&nbsp;: le maintien de la monotonie et de l&rsquo;ordre lin\u00e9aire \u00e9lev\u00e9 \u00e0 une discontinuit\u00e9 sont des objectifs contradictoires.<\/p>\n<h2>M\u00e9thodes Weno<\/h2>\n<p>Les m\u00e9thodes pond\u00e9r\u00e9es essentiellement non oscillatoires utilisent plusieurs pochoirs candidats. Les indicateurs de douceur attribuent un poids plus faible aux pochoirs qui traversent une discontinuit\u00e9.<\/p>\n<p>Les m\u00e9thodes Weno peuvent fournir une pr\u00e9cision d&rsquo;ordre \u00e9lev\u00e9 dans des r\u00e9gions lisses tout en \u00e9vitant les oscillations les plus fortes d&rsquo;un sch\u00e9ma lin\u00e9aire d&rsquo;ordre \u00e9lev\u00e9 fixe. Ils sont largement utilis\u00e9s pour le flux compressible, les lois de conservation et les probl\u00e8mes de chocs mobiles.<\/p>\n<p>Leurs inconv\u00e9nients comprennent un co\u00fbt de calcul plus \u00e9lev\u00e9, des d\u00e9pendances de donn\u00e9es plus larges, un traitement plus complexe des limites et plusieurs choix de mise en \u0153uvre qui affectent la dissipation.<\/p>\n<h2>Stabilisation SUPG<\/h2>\n<p>La stabilisation de l&rsquo;amortissement au vent\/Petrov\u2013Galerkin est avant tout une technique d&rsquo;\u00e9l\u00e9ments finis. Il modifie l&rsquo;espace de test de sorte que la forme faible re\u00e7oit une contribution r\u00e9siduelle align\u00e9e avec le flux.<\/p>\n<p>Pour un op\u00e9rateur avec un fort r\u00e9sidu :<\/p>\n<pre><code>R(\u03c6) =\n\u2202\u03c6\/\u2202t\n+ v \u00b7 \u2207\u03c6\n- \u2207 \u00b7 (\u03b1\u2207\u03c6)\n- S<\/code><\/pre>\n<p>Un terme typique de stabilisation est :<\/p>\n<pre><code>\u03a3_K \u222b_K\n    \u03c4_K\n    (v \u00b7 \u2207w)\n    R(\u03c6_h)\nd\u03a9<\/code><\/pre>\n<p>Parce que le fort r\u00e9sidu appara\u00eet dans la formulation, le terme est coh\u00e9rent : la solution exacte satisfait \u00e9galement l&rsquo;\u00e9quation stabilis\u00e9e.<\/p>\n<p>Le facteur <code>v \u00b7 \u2207w<\/code> met l&rsquo;accent sur la direction de la ligne de courant. Cela r\u00e9duit les oscillations sans introduire la m\u00eame quantit\u00e9 de maculage de vent de travers que la simple diffusion artificielle isotrope.<\/p>\n<h2>Choisir le param\u00e8tre SUPG<\/h2>\n<p>Le param\u00e8tre de stabilisation n&rsquo;est pas universellement \u00e9gal \u00e0 <code>h\/(2|v|)<\/code>. Cette expression est la limite \u00e0 peclet \u00e9lev\u00e9 de plusieurs formules d&rsquo;advection r\u00e9guli\u00e8res.<\/p>\n<p>Pour un probl\u00e8me d&rsquo;advection et de diffusion r\u00e9guli\u00e8re unidimensionnelle, une forme courante est&nbsp;:<\/p>\n<pre><code>\u03c4 =\nh \/ (2|v|)\n[\n    coth(Pe*) - 1\/Pe*\n]\n\nPe* = |v|h \/ (2\u03b1)<\/code><\/pre>\n<p>Quand l&rsquo;advection domine fortement :<\/p>\n<pre><code>\u03c4 \u2192 h \/ (2|v|)<\/code><\/pre>\n<p>Lorsque la diffusion domine, l&rsquo;expression se rapproche d&rsquo;une limite \u00e0 l&rsquo;\u00e9chelle de la diffusion au lieu d&rsquo;ajouter une stabilisation excessive.<\/p>\n<p>Les impl\u00e9mentations transitoires et multidimensionnelles peuvent combiner des \u00e9chelles de temps, d&rsquo;advection et de diffusion :<\/p>\n<pre><code>\u03c4 \u2248\n[\n    (c_t \/ \u0394t)\u00b2\n    + (c_v |v| \/ h)\u00b2\n    + (c_d \u03b1 \/ h\u00b2)\u00b2\n]\u207b\u00b9\u141f\u00b2<\/code><\/pre>\n<p>Les constantes et la d\u00e9finition de la longueur des \u00e9l\u00e9ments d\u00e9pendent de la formulation. L&rsquo;expression appropri\u00e9e doit provenir de la m\u00e9thode des \u00e9l\u00e9ments finis et de l&rsquo;impl\u00e9mentation logicielle utilis\u00e9e.<\/p>\n<p>La <a href=\"https:\/\/mooseframework.inl.gov\/source\/kernels\/LevelSetAdvectionSUPG.html\" rel=\"nofollow\" target=\"_blank\">Documentation de l&rsquo;orignal LevelEtAdvectionSupg<\/a> montre comment le SUPG est inclus dans une \u00e9quation de niveau stabilis\u00e9e compl\u00e8te.<\/p>\n<h2>Le SUPG n&rsquo;est pas une diffusion artificielle isotrope<\/h2>\n<p>L&rsquo;ajout d&rsquo;un coefficient scalaire plus grand \u00e0 un terme de diffusion ordinaire n&rsquo;est pas une impl\u00e9mentation SUPG compl\u00e8te. Un coefficient de diffusion scalaire agit dans chaque direction spatiale.<\/p>\n<p>SUPG modifie la forme faible en utilisant la d\u00e9riv\u00e9e directionnelle de la fonction de test et le fort r\u00e9sidu. Il peut donc ajouter une stabilisation de la ligne de courant tout en pr\u00e9servant une plus grande r\u00e9solution de vent de travers.<\/p>\n<p>Des oscillations de vent de travers peuvent encore se produire dans des couches multidimensionnelles difficiles. Des termes suppl\u00e9mentaires de capture de discontinuit\u00e9 ou de capture de chocs sont parfois utilis\u00e9s avec SUPG, mais ceux-ci doivent \u00eatre con\u00e7us et valid\u00e9s s\u00e9par\u00e9ment.<\/p>\n<h2>Advection-diffusion dans FIPY<\/h2>\n<p>FIPY fournit plusieurs termes de convection de volume fini, notamment :<\/p>\n<ul>\n<li><code>CentralDifferenceConvectionTerm<\/code><\/li>\n<li><code>ExponentialConvectionTerm<\/code><\/li>\n<li><code>HybridConvectionTerm<\/code><\/li>\n<li><code>PowerLawConvectionTerm<\/code><\/li>\n<li><code>UpwindConvectionTerm<\/code><\/li>\n<li><code>ExplicitUpwindConvectionTerm<\/code><\/li>\n<li><code>VanLeerConvectionTerm<\/code><\/li>\n<\/ul>\n<p>Le coefficient d&rsquo;un terme de convection doit repr\u00e9senter une vitesse ou un flux vectoriel. En deux dimensions, un vecteur constant peut \u00eatre fourni sous la forme <code>((v_x,), (v_y,))<\/code>.<\/p>\n<h2>Un exemple FIPY au vent<\/h2>\n<p>L&rsquo;exemple suivant transporte une r\u00e9gion scalaire circulaire \u00e0 travers un domaine bidimensionnel tout en ajoutant une petite quantit\u00e9 de diffusion physique :<\/p>\n<pre><code class=\"language-python\">from fipy import (\n    Grid2D,\n    CellVariable,\n    TransientTerm,\n    DiffusionTerm,\n    UpwindConvectionTerm\n)\nfrom fipy.tools import numerix\n\n# Domain\nlength_x = 2.0\nlength_y = 1.0\n\nnx = 200\nny = 100\n\ndx = length_x \/ nx\ndy = length_y \/ ny\n\nmesh = Grid2D(\n    nx=nx,\n    ny=ny,\n    dx=dx,\n    dy=dy\n)\n\n# Transported scalar\nphi = CellVariable(\n    name=\"concentration\",\n    mesh=mesh,\n    value=0.0,\n    hasOld=True\n)\n\nx, y = mesh.cellCenters\n\ninitial_region = (\n    (x - 0.4) ** 2\n    + (y - 0.5) ** 2\n    &lt; 0.1 ** 2\n)\n\nphi.setValue(\n    1.0,\n    where=initial_region\n)\n\n# Constant velocity vector\nvelocity_x = 1.0\nvelocity_y = 0.0\n\nvelocity = (\n    (velocity_x,),\n    (velocity_y,)\n)\n\ndiffusivity = 1e-3\n\nequation = (\n    TransientTerm(var=phi)\n    + UpwindConvectionTerm(\n        coeff=velocity,\n        var=phi\n    )\n    == DiffusionTerm(\n        coeff=diffusivity,\n        var=phi\n    )\n)\n\n# Inflow value on the left boundary\nphi.constrain(\n    0.0,\n    where=mesh.facesLeft\n)\n\n# Moderate time step for temporal accuracy\ndt = 0.25 * dx \/ abs(velocity_x)\nnumber_of_steps = 200\n\nfor step in range(number_of_steps):\n    phi.updateOld()\n    equation.solve(\n        var=phi,\n        dt=dt\n    )<\/code><\/pre>\n<p><code>UpwindConvectionTerm<\/code> utilise une discr\u00e9tisation implicite du premier ordre au vent au vent. Le pas de temps choisi n&rsquo;est donc pas pr\u00e9sent\u00e9 comme une limite de LFC explicite stricte. Il est maintenu mod\u00e9r\u00e9 pour r\u00e9soudre le transport avec pr\u00e9cision.<\/p>\n<p>Pour une convection explicitement int\u00e9gr\u00e9e, le sch\u00e9ma complet doit satisfaire la restriction de stabilit\u00e9 associ\u00e9e aux m\u00e9thodes spatiales et temporelles choisies.<\/p>\n<h2>Utilisation du r\u00e9gime de loi de puissance de Fipy<\/h2>\n<p>Pour une convection constante\u2013diffusion, les exemples officiels de FIPY utilisent <code>PowerLawConvectionTerm<\/code>&nbsp;:<\/p>\n<pre><code class=\"language-python\">from fipy import (\n    CellVariable,\n    Grid1D,\n    DiffusionTerm,\n    PowerLawConvectionTerm\n)\n\nlength = 10.0\ncell_count = 1000\n\nmesh = Grid1D(\n    nx=cell_count,\n    dx=length \/ cell_count\n)\n\nconcentration = CellVariable(\n    name=\"concentration\",\n    mesh=mesh,\n    value=0.0\n)\n\nconcentration.constrain(\n    0.0,\n    where=mesh.facesLeft\n)\n\nconcentration.constrain(\n    1.0,\n    where=mesh.facesRight\n)\n\ndiffusivity = 1.0\nvelocity = (10.0,)\n\nequation = (\n    DiffusionTerm(\n        coeff=diffusivity\n    )\n    + PowerLawConvectionTerm(\n        coeff=velocity\n    )\n)\n\nequation.solve(\n    var=concentration\n)<\/code><\/pre>\n<p>Les documents FIPY <code>PowerLawConvectionTerm<\/code> et <code>ExponentialConvectionTerm<\/code> conviennent \u00e0 une large gamme de cas de convection-diffusion, l&rsquo;approximation de la loi de puissance offrant une option pratique plus efficace.<\/p>\n<h2>V\u00e9rification du num\u00e9ro de peclet<\/h2>\n<p>Pour l&rsquo;exemple uniforme \u00e0 deux dimensions, les nombres de peclets de cellules directionnelles peuvent \u00eatre calcul\u00e9s comme suit&nbsp;:<\/p>\n<pre><code class=\"language-python\">peclet_x = (\n    abs(velocity_x)\n    * dx\n    \/ diffusivity\n)\n\npeclet_y = (\n    abs(velocity_y)\n    * dy\n    \/ diffusivity\n)\n\nprint(\"Pe_x =\", peclet_x)\nprint(\"Pe_y =\", peclet_y)<\/code><\/pre>\n<p>Pour les mailles non uniformes et les vitesses variables, calculez un nombre de peclets de face locale en utilisant la vitesse de face normale et la distance de centre cellule local. Une seule valeur globale peut masquer des r\u00e9gions \u00e0 peclet \u00e9lev\u00e9.<\/p>\n<h2>Les erreurs spatiales et temporelles doivent \u00eatre s\u00e9par\u00e9es<\/h2>\n<p>L&rsquo;\u00e9talement d&rsquo;un calcul d&rsquo;advection peut provenir du flux spatial, de l&rsquo;int\u00e9grateur de temps ou des deux.<\/p>\n<p>Euler \u00e0 l&rsquo;envers, par exemple, est dissipatif pour les modes de d\u00e9composition et oscillatoire. Crank \u2013 Nicolson se comporte diff\u00e9remment et n&rsquo;amortit pas fortement tous les modes rigides. Les m\u00e9thodes explicites de Runge-Kutta ont leurs propres courbes de dissipation et de dispersion.<\/p>\n<p>Il est donc inexact d&rsquo;affirmer que chaque m\u00e9thode implicite introduit toujours la m\u00eame quantit\u00e9 de diffusion. L&rsquo;amortissement num\u00e9rique d\u00e9pend de la m\u00e9thode.<\/p>\n<p>Une analyse utile fait varier le maillage tout en maintenant une erreur temporelle petite, puis fait varier le pas de temps sur un maillage fin fixe. Cela permet de s\u00e9parer la diffusion num\u00e9rique spatiale de l&rsquo;erreur temporelle.<\/p>\n<p>Le guide connexe <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d&rsquo;int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a> discute de cette distinction plus en d\u00e9tail.<\/p>\n<h2>Choisir une strat\u00e9gie de stabilisation<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Situation<\/th>\n<th>Point de d\u00e9part possible<\/th>\n<th>consid\u00e9ration principale<\/th>\n<\/tr>\n<tr>\n<td>Faible nombre de peclets cellulaires et solution lisse<\/td>\n<td>diff\u00e9renciation centrale<\/td>\n<td>Faible diffusion et pr\u00e9cision du second ordre<\/td>\n<\/tr>\n<tr>\n<td>Nombre \u00e9lev\u00e9 de peclets avec priorit\u00e9 de robustesse<\/td>\n<td>Premier ordre au vent<\/td>\n<td>Limit\u00e9 mais potentiellement trop diffusant<\/td>\n<\/tr>\n<tr>\n<td>Solution fluide n\u00e9cessitant une plus grande pr\u00e9cision<\/td>\n<td>Lin\u00e9aire au vent ou rapide<\/td>\n<td>V\u00e9rifier la limite et le traitement des limites<\/td>\n<\/tr>\n<tr>\n<td>Avant pointu n\u00e9cessitant une monotonie<\/td>\n<td>M\u00e9thode de flux TVD \u00e0 intensit\u00e9 limit\u00e9e<\/td>\n<td>Le limiteur non lin\u00e9aire r\u00e9duit les oscillations<\/td>\n<\/tr>\n<tr>\n<td>Loi de conservation domin\u00e9e par les chocs<\/td>\n<td>M\u00e9thode de type Godounov, Weno ou DG<\/td>\n<td>N\u00e9cessite des flux num\u00e9riques appropri\u00e9s \u00e0 l&rsquo;\u00e9quation<\/td>\n<\/tr>\n<tr>\n<td>Advection des \u00e9l\u00e9ments finis\u2013diffusion<\/td>\n<td>soup<\/td>\n<td>Stabilisation r\u00e9siduelle coh\u00e9rente<\/td>\n<\/tr>\n<tr>\n<td>Couches de vent de travers complexes<\/td>\n<td>SUPG avec capture de choc suppl\u00e9mentaire ou raffinement local<\/td>\n<td>Le SUPG seul ne peut pas contr\u00f4ler toutes les oscillations de vent de travers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conditions aux limites dans les probl\u00e8mes d&rsquo;advection<\/h2>\n<p>Advection transporte des informations dans le domaine \u00e0 travers les limites d&rsquo;entr\u00e9e. Les valeurs limites doivent normalement \u00eatre prescrites lorsque :<\/p>\n<pre><code>v \u00b7 n &lt; 0<\/code><\/pre>\n<p>\u00c0 une limite de sortie, la prescription d&rsquo;une valeur scalaire inutile peut surcontr\u00f4ler le probl\u00e8me ou cr\u00e9er une fausse couche limite.<\/p>\n<p>La diffusion modifie les exigences de limites car elle introduit un op\u00e9rateur spatial de second ordre. Un mod\u00e8le complet d&rsquo;advection-diffusion peut donc n\u00e9cessiter une valeur ou une condition de flux d\u00e9riv\u00e9e du probl\u00e8me physique.<\/p>\n<p>Les conditions aux limites doivent \u00eatre v\u00e9rifi\u00e9es avec la direction du flux. Un sch\u00e9ma peut sembler instable lorsque le probl\u00e8me r\u00e9el est un traitement d&rsquo;entr\u00e9e ou d&rsquo;\u00e9coulement incorrect.<\/p>\n<h2>Alignement du maillage et diffusion du vent de travers<\/h2>\n<p>La diffusion num\u00e9rique est influenc\u00e9e par l&rsquo;orientation du maillage. Sur une grille cart\u00e9sienne, le transport align\u00e9 avec un axe de coordonn\u00e9es est g\u00e9n\u00e9ralement repr\u00e9sent\u00e9 plus proprement que le transport diagonal.<\/p>\n<p>Lorsque le flux traverse la grille de mani\u00e8re oblique, les sch\u00e9mas de remontage multidimensionnel du premier ordre peuvent introduire un \u00e9talement de vent de travers substantiel. Le raffinement, les mailles anisotropes, la reconstruction des moindres carr\u00e9s, la limitation multidimensionnelle ou la stabilisation des \u00e9l\u00e9ments finis \u00e0 base r\u00e9siduelle peuvent am\u00e9liorer le r\u00e9sultat.<\/p>\n<p>Une petite taille de cellule \u00e0 elle seule ne garantit pas une bonne pr\u00e9cision si les cellules sont tr\u00e8s biais\u00e9es ou mal align\u00e9es avec des couches importantes.<\/p>\n<h2>Tests de v\u00e9rification<\/h2>\n<p>Une nouvelle impl\u00e9mentation d&rsquo;advection doit \u00eatre test\u00e9e sur les probl\u00e8mes de comportement connu.<\/p>\n<h3>Traduction d&rsquo;un profil fluide<\/h3>\n<p>Utilisez des limites p\u00e9riodiques et transportez une onde gaussienne ou sinuso\u00efdale lisse. Apr\u00e8s une p\u00e9riode, comparez le profil num\u00e9rique avec la condition initiale.<\/p>\n<p>Ce test r\u00e9v\u00e8le une perte d&rsquo;amplitude et une erreur de phase.<\/p>\n<h3>Traduction d&rsquo;un pouls carr\u00e9<\/h3>\n<p>Une impulsion carr\u00e9e expose la diffusion num\u00e9rique et les oscillations. Le contrevent du premier ordre \u00e9tale les bords, tandis que les sch\u00e9mas d&rsquo;ordre \u00e9lev\u00e9 sans restriction peuvent d\u00e9passer.<\/p>\n<h3>Blob rotatif<\/h3>\n<p>Un champ de vitesse de rotation en deux dimensions teste le transport multidimensionnel, la diffusion par vent de travers et les effets d&rsquo;orientation de maillage.<\/p>\n<h3>Couche limite stable<\/h3>\n<p>Un probl\u00e8me de convection-diffusion stable unidimensionnelle avec une solution analytique connue teste le crit\u00e8re de peclet cellulaire et la capacit\u00e9 de r\u00e9soudre une couche mince de sortie.<\/p>\n<h2>Convergence de maillage et de pas de temps<\/h2>\n<p>Ex\u00e9cutez le m\u00eame probl\u00e8me sur plusieurs maillages. Mesurez les erreurs de quantit\u00e9s telles que :<\/p>\n<ul>\n<li>valeur maximale<\/li>\n<li>position avant<\/li>\n<li>\u00c9paisseur de couche<\/li>\n<li>Masse transport\u00e9e totale<\/li>\n<li><code>L1<\/code>, <code>L2<\/code>, ou norme maximale<\/li>\n<li>d\u00e9passement et sous-d\u00e9passement<\/li>\n<\/ul>\n<p>R\u00e9p\u00e9tez le calcul avec des pas de temps plus petits sur un maillage fixe. Cela s\u00e9pare les erreurs spatiales et temporelles.<\/p>\n<p>Une m\u00e9thode d&rsquo;ordre sup\u00e9rieur doit d\u00e9montrer sa convergence attendue pour un test fluide. Quasi discontinuit\u00e9s, la convergence globale peut \u00eatre plus faible car la solution exacte manque de r\u00e9gularit\u00e9 suffisante.<\/p>\n<h2>erreurs courantes<\/h2>\n<ul>\n<li>M\u00e9langer deux d\u00e9finitions de nombre de peclet diff\u00e9rentes<\/li>\n<li>Application du seuil de diff\u00e9rence centrale stable \u00e0 chaque sch\u00e9ma transitoire<\/li>\n<li>Appeler le vent inconditionnellement stable sans sp\u00e9cifier l&rsquo;int\u00e9grateur de temps<\/li>\n<li>En supposant que la diffusion num\u00e9rique ne d\u00e9pend que du pas de temps<\/li>\n<li>Remplacer le SUPG par une diffusion isotrope ordinaire<\/li>\n<li>En supposant que SUPG utilise toujours <code>\u03c4 = h\/(2|v|)<\/code><\/li>\n<li>Utilisation d&rsquo;un sch\u00e9ma lin\u00e9aire d&rsquo;ordre \u00e9lev\u00e9 sans restriction pr\u00e8s d&rsquo;une discontinuit\u00e9<\/li>\n<li>Augmentation de la diffusivit\u00e9 physique pour masquer les bavures num\u00e9riques<\/li>\n<li>Application de valeurs scalaires \u00e0 la fois en entr\u00e9e et en sortie sans v\u00e9rifier la PDE<\/li>\n<li>Comparaison de sch\u00e9mas sur diff\u00e9rents maillages ou \u00e0 diff\u00e9rents niveaux d&rsquo;erreur<\/li>\n<li>Ignorer la conservation de la masse et les limites physiques<\/li>\n<li>Attribuer tout l&rsquo;amortissement \u00e0 la discr\u00e9tisation spatiale<\/li>\n<\/ul>\n<h2>Un flux de travail pratique<\/h2>\n<ol>\n<li>\u00c9crivez l&rsquo;\u00e9quation sous forme conservatrice ou non conservatrice comme l&rsquo;exige la physique.<\/li>\n<li>Identifiez les limites d&rsquo;afflux, de sortie et de diffusion.<\/li>\n<li>Calculez les nombres de peclets de cellules directionnelles locales.<\/li>\n<li>Commencez par un sch\u00e9ma robuste au vent ou born\u00e9.<\/li>\n<li>Mesurer la diffusion num\u00e9rique lors d&rsquo;un test de transport connu.<\/li>\n<li>Affinez le maillage et v\u00e9rifiez la convergence.<\/li>\n<li>Passer \u00e0 un sch\u00e9ma d&rsquo;ordre sup\u00e9rieur limit\u00e9 lorsque la diffamation est inacceptable.<\/li>\n<li>Utilisez SUPG pour les formulations d&rsquo;\u00e9l\u00e9ments finis n\u00e9cessitant une stabilisation simplifi\u00e9e.<\/li>\n<li>V\u00e9rifiez le num\u00e9ro de Courant et la convergence temporelle s\u00e9par\u00e9ment.<\/li>\n<li>Documentez le flux, le limiteur, le param\u00e8tre de stabilisation et le traitement aux limites.<\/li>\n<\/ol>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/finite-volume-method-explained-simply\/\">m\u00e9thode de volume fini expliqu\u00e9e simplement<\/a> &#8211; revoir les flux faciaux, la conservation et la discr\u00e9tisation centr\u00e9e sur les cellules.<\/li>\n<li><a\u00a00>M\u00e9thodes d&rsquo;int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites&nbsp;: comparez les restrictions CFL, l&rsquo;amortissement et les erreurs temporelles.<\/a\u00a00><\/li>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">Quand utiliser FEM, FVM ou FDM<\/a> \u2014 Choisissez une discr\u00e9tisation spatiale pour le probl\u00e8me qui gouverne.<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">\u00c9tudes de qualit\u00e9 et de convergence des mailles&nbsp;: un guide pratique<\/a>&nbsp;: relier la r\u00e9solution locale \u00e0 la convergence num\u00e9rique.<\/li>\n<li><a href=\"https:\/\/matforge.org\/operator-splitting-strang-splitting-and-imex-schemes-for-pde-solvers\/\">S\u00e9paration de l&rsquo;op\u00e9rateur, fractionnement de Strang et sch\u00e9mas IMEX pour les solveurs PDE<\/a>&nbsp;: s\u00e9parer les processus de diffusion et de r\u00e9action.<\/li>\n<li><a href=\"https:\/\/matforge.org\/extending-fipy-with-custom-modules\/\">\u00c9largir FIPY avec des modules personnalis\u00e9s<\/a> &#8211; Explorez le comportement num\u00e9rique personnalis\u00e9 autour des mod\u00e8les FIPY.<\/li>\n<\/ul>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li><a href=\"https:\/\/hplgit.github.io\/fdm-book\/\" rel=\"nofollow\" target=\"_blank\">informatique \u00e0 diff\u00e9rences finies avec PDE<\/a> &#8211; analyse d\u00e9taill\u00e9e des sch\u00e9mas d&rsquo;advection, facteurs d&rsquo;amplification, diffusion et dispersion.<\/li>\n<li><a href=\"https:\/\/archive.nptel.ac.in\/content\/storage2\/courses\/112108091\/module4\/lecture4.pdf\" rel=\"nofollow\" target=\"_blank\">nptel&nbsp;: convection et diffusion<\/a> &#8211; discussion sur le comportement de volume fini central et au vent et le crit\u00e8re Peclet.<\/li>\n<li><a href=\"https:\/\/mooseframework.inl.gov\/source\/kernels\/LevelSetAdvectionSUPG.html\" rel=\"nofollow\" target=\"_blank\">Moose LevelSetAdVectionSupg Documentation<\/a> \u2014 Une impl\u00e9mentation de la stabilisation SUPG pour une \u00e9quation de niveau.<\/li>\n<li><a href=\"https:\/\/www.wias-berlin.de\/people\/john\/STAB_PROB\/stab_cd.html\" rel=\"nofollow\" target=\"_blank\">WiAS Berlin&nbsp;: stabilisation des probl\u00e8mes domin\u00e9s par la convection<\/a> \u2014 Ressources sur les m\u00e9thodes d&rsquo;\u00e9l\u00e9ments finis stabilis\u00e9es.<\/li>\n<li><a href=\"https:\/\/oldqa.fenicsproject.org\/13458\/how-implement-supg-properly-advection-dominated-equation\/\" rel=\"nofollow\" target=\"_blank\">Fenics QA&nbsp;: Impl\u00e9mentation de SUPG<\/a> \u2014 Discussion sur la mise en \u0153uvre historique et mises en garde pratiques.<\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/en\/benchmark_patched_b873c7e3f\/generated\/examples.levelSet.advection.html\" rel=\"nofollow\" target=\"_blank\">Exemples d&rsquo;advection Fipy Level-Set<\/a> \u2014 Exemples d&rsquo;advection de la documentation FIPY.<\/li>\n<li><a href=\"https:\/\/www.cmor-faculty.rice.edu\/~heinken\/papers\/supg_analysis.pdf\" rel=\"nofollow\" target=\"_blank\">Supg Finite Analyse<\/a> \u2014 Analyse math\u00e9matique des formulations d&rsquo;\u00e9l\u00e9ments finis stabilis\u00e9s.<\/li>\n<li><a href=\"https:\/\/scicomp.stackexchange.com\/questions\/31424\/\" rel=\"nofollow\" target=\"_blank\">\u00c9change de piles de calculs&nbsp;: pourquoi l&rsquo;advection est difficile<\/a> \u2014 Discussion sur la communaut\u00e9 des probl\u00e8mes num\u00e9riques dans les \u00e9quations d&rsquo;advection.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Les \u00e9quations domin\u00e9es par l&rsquo;advection d\u00e9fient les m\u00e9thodes num\u00e9riques, car la diffusion physique est trop faible pour supprimer le comportement non r\u00e9solu \u00e0 l&rsquo;\u00e9chelle de la grille. Le nombre de peclets cellulaires permet de d\u00e9terminer si une discr\u00e9tisation du volume fini central stable est susceptible de rester born\u00e9e, mais sa d\u00e9finition et son champ d&rsquo;application doivent \u00eatre indiqu\u00e9s correctement.<\/p>\n<p>Le contrevent du premier ordre fournit une approximation directionnelle robuste. Son erreur de troncature principale se comporte comme une diffusion artificielle avec le coefficient <code>|v|h\/2<\/code>, ce qui explique \u00e0 la fois sa stabilit\u00e9 et sa tendance \u00e0 \u00e9taler les fronts.<\/p>\n<p>Les m\u00e9thodes lin\u00e9aires d&rsquo;ordre sup\u00e9rieur r\u00e9duisent la diffusion num\u00e9rique, mais peuvent introduire des oscillations dispersives. Les limiteurs de flux, les sch\u00e9mas TVD et les m\u00e9thodes Weno utilisent des m\u00e9canismes non lin\u00e9aires pour conserver une r\u00e9solution \u00e9lev\u00e9e dans des r\u00e9gions lisses tout en r\u00e9duisant les oscillations \u00e0 proximit\u00e9 de gradients abrupts.<\/p>\n<p>SUPG sert un objectif connexe dans les m\u00e9thodes d&rsquo;\u00e9l\u00e9ments finis. Il ajoute un terme coh\u00e9rent bas\u00e9 sur les r\u00e9sidus align\u00e9 avec la direction d&rsquo;\u00e9coulement. Son param\u00e8tre de stabilisation d\u00e9pend de l&rsquo;advection locale, de la diffusion, du maillage et parfois de l&rsquo;\u00e9chelle de temps&nbsp;; Il ne doit pas \u00eatre remplac\u00e9 aveugl\u00e9ment par une quantit\u00e9 fixe de diffusion isotrope.<\/p>\n<p>Aucun sch\u00e9ma n&rsquo;est universellement le meilleur. Le choix correct d\u00e9pend du nombre de peclets locaux, de la r\u00e9gularit\u00e9 de la solution, des exigences de conservation, de la qualit\u00e9 du maillage, des conditions aux limites et de la tol\u00e9rance \u00e0 la diffusion ou \u00e0 la dispersion. Un choix cr\u00e9dible doit \u00eatre soutenu par des tests analytiques, un raffinement de maillage, une convergence temporelle et des contr\u00f4les des limites physiques.<\/p>\n<\/article>\n","protected":false,"raw":"<article>\n<p>Les \u00e9quations aux d\u00e9riv\u00e9es partielles domin\u00e9es par l'advection sont difficiles car les informations se d\u00e9placent principalement le long d'une direction d'\u00e9coulement tandis que la diffusion physique fournit peu de lissage. Une m\u00e9thode num\u00e9rique qui fonctionne bien pour un probl\u00e8me domin\u00e9 par la diffusion peut produire des oscillations, un maculage excessif ou des valeurs non physiques lorsque l'advection devient plus forte.<\/p>\n<p>La bonne r\u00e9ponse n'est pas simplement de s\u00e9lectionner le sch\u00e9ma le plus diffusif disponible. Une diffusion num\u00e9rique excessive peut masquer les fronts nets, affaiblir les pics de concentration et modifier les taux de transport. Une discr\u00e9tisation utile doit \u00e9quilibrer la stabilit\u00e9, la d\u00e9limitation, la conservation et la r\u00e9solution.<\/p>\n<p>Le nombre de peclets cellulaires aide \u00e0 d\u00e9crire cet \u00e9quilibre. La diff\u00e9renciation centrale peut fonctionner lorsque le maillage r\u00e9sout la diffusion physique. Le contre-vent du premier ordre fournit de la robustesse mais enduit la solution. Les sch\u00e9mas limit\u00e9s d'ordre sup\u00e9rieur r\u00e9duisent les bavures tout en contr\u00f4lant les oscillations. Dans les m\u00e9thodes d'\u00e9l\u00e9ments finis, SUPG ajoute une stabilisation coh\u00e9rente principalement le long des lignes de courant.<\/p>\n<h2>L'\u00e9quation d'advection-diffusion<\/h2>\n<p>Un mod\u00e8le de transport scalaire commun est :<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + \u2207 \u00b7 (v\u03c6) = \u2207 \u00b7 (\u03b1\u2207\u03c6) + S<\/code><\/pre>\n<p>Pour un champ de vitesse incompressible, ceci est souvent \u00e9crit comme suit&nbsp;:<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + v \u00b7 \u2207\u03c6 = \u03b1\u2207\u00b2\u03c6 + S<\/code><\/pre>\n<p>ici&nbsp;:<\/p>\n<ul>\n<li><code>\u03c6<\/code> est le scalaire transport\u00e9, comme la temp\u00e9rature ou la concentration.<\/li>\n<li><code>v<\/code> est le champ de vitesse.<\/li>\n<li><code>\u03b1<\/code> est la diffusivit\u00e9 physique.<\/li>\n<li><code>S<\/code> est une source ou un puits.<\/li>\n<\/ul>\n<p>La diffusion diffuse des informations dans toutes les directions et lisse les gradients. L'advection transporte les informations principalement selon les caract\u00e9ristiques d\u00e9termin\u00e9es par le champ de vitesse. Lorsque la diffusion est faible, la m\u00e9thode num\u00e9rique doit respecter ce transport directionnel.<\/p>\n<h2>Le nombre de peclet de cellule<\/h2>\n<p>Le nombre de peclet de cellule compare l'advection et la diffusion \u00e0 l'\u00e9chelle d'une cellule de maille. Une convention largement utilis\u00e9e est :<\/p>\n<pre><code>Pe\u2095 = |v|h \/ \u03b1<\/code><\/pre>\n<p>Pour une \u00e9quation unidimensionnelle de convection-diffusion stable sur une grille uniforme, les coefficients de volume fini central classique restent non n\u00e9gatifs lorsque :<\/p>\n<pre><code>|Pe\u2095| \u2264 2<\/code><\/pre>\n<p>Certaines r\u00e9f\u00e9rences d\u00e9finissent le nombre de peclet cellulaire avec un facteur suppl\u00e9mentaire de deux&nbsp;:<\/p>\n<pre><code>Pe* = |v|h \/ (2\u03b1)<\/code><\/pre>\n<p>Selon cette convention, la condition \u00e9quivalente est :<\/p>\n<pre><code>|Pe*| \u2264 1<\/code><\/pre>\n<p>La convention doit donc \u00eatre \u00e9nonc\u00e9e avant de citer un seuil. \u00c9crire <code>|v|h\/(2\u03b1)<\/code> et le comparer avec 2 m\u00e9langerait deux d\u00e9finitions diff\u00e9rentes.<\/p>\n<p>Pour un maillage de volume fini multidimensionnel, une valeur de face locale plus utile est :<\/p>\n<pre><code>Pe_f =\n    |v_f \u00b7 n_f| d_PA\n    \/ \u03b1_f<\/code><\/pre>\n<p>La valeur d\u00e9pend de la vitesse normale \u00e0 travers une face, de la distance entre les centres cellulaires voisins et de la diffusivit\u00e9 locale. Il peut varier d'un domaine \u00e0 l'autre lorsque les propri\u00e9t\u00e9s du maillage, de la vitesse ou du mat\u00e9riau ne sont pas uniformes.<\/p>\n<h2>Ce que signifie r\u00e9ellement le crit\u00e8re Peclet<\/h2>\n<p>Le seuil souvent cot\u00e9 proche de deux s'applique \u00e0 une discr\u00e9tisation particuli\u00e8re \u00e0 convection-diffusion unidimensionnelle et stable. Il s'agit d'un crit\u00e8re de d\u00e9limitation pour les coefficients alg\u00e9briques produits par la diff\u00e9renciation centrale.<\/p>\n<p>Cela ne signifie pas que chaque sch\u00e9ma central pour chaque probl\u00e8me transitoire devient imm\u00e9diatement instable au m\u00eame nombre. Les discr\u00e9tisations spatiales et temporelles doivent \u00eatre analys\u00e9es ensemble.<\/p>\n<p>Deux probl\u00e8mes diff\u00e9rents sont souvent confondus :<\/p>\n<ol>\n<li>Dans une \u00e9quation de volume fini par convection-diffusion stable, la diff\u00e9renciation centrale peut perdre la positivit\u00e9 du coefficient lorsque le nombre de peclets cellulaires est trop grand. La solution peut alors d\u00e9velopper des d\u00e9passements et des sous-d\u00e9bits.<\/li>\n<li>Pour une advection transitoire pure, l'avant Euler dans le temps combin\u00e9 \u00e0 l'espace centr\u00e9, connu sous le nom de FTCS, est instable pour n'importe quel nombre de cours non nul.<\/li>\n<\/ol>\n<p>Ces deux probl\u00e8mes peuvent produire des oscillations, mais leurs causes math\u00e9matiques ne sont pas identiques.<\/p>\n<h2>Pourquoi la diff\u00e9renciation centrale peut osciller<\/h2>\n<p>La diff\u00e9renciation centrale estime une valeur nominale de mani\u00e8re sym\u00e9trique&nbsp;:<\/p>\n<pre><code>\u03c6_f \u2248 (\u03c6_P + \u03c6_A) \/ 2<\/code><\/pre>\n<p>Sur une grille uniforme, cela produit une approximation du second ordre pour des solutions lisses. Il introduit \u00e9galement tr\u00e8s peu de dissipation num\u00e9rique.<\/p>\n<p>Cette faible dissipation est utile lorsque la solution physique est lisse et bien r\u00e9solue. Cela devient un probl\u00e8me \u00e0 proximit\u00e9 de couches abruptes ou lorsque la diffusion physique est trop faible pour contr\u00f4ler les modes d'\u00e9chelle de la grille.<\/p>\n<p>Dans l'\u00e9quation de volume fini unidimensionnel r\u00e9gulier, l'augmentation du nombre de peclets cellulaires r\u00e9duit un coefficient voisin. Une fois que ce coefficient change de signe, le principe maximum discret peut \u00eatre perdu. La solution peut d\u00e9passer les valeurs limites ou devenir n\u00e9gative m\u00eame lorsque la solution physique reste limit\u00e9e.<\/p>\n<p>Pour l'advection pure transitoire, un d\u00e9riv\u00e9 spatial centr\u00e9 est principalement dispersif. Sa convenance d\u00e9pend de l'int\u00e9grateur de temps. L'association avec l'avant Euler produit une m\u00e9thode instable, tandis que d'autres int\u00e9grateurs temporels peuvent contr\u00f4ler la croissance mais introduire toujours des erreurs de phase ou des oscillations \u00e0 proximit\u00e9 de gradients non r\u00e9solus.<\/p>\n<h2>Diff\u00e9rence de premier ordre au vent<\/h2>\n<p>La diff\u00e9renciation au vent utilise des informations de la direction d'origine du flux. Pour une vitesse unidimensionnelle positive :<\/p>\n<pre><code>(\u2202\u03c6\/\u2202x)\u1d62\n\u2248 (\u03c6\u1d62 - \u03c6\u1d62\u208b\u2081) \/ h<\/code><\/pre>\n<p>Pour une vitesse n\u00e9gative, il utilise la valeur de droite :<\/p>\n<pre><code>(\u2202\u03c6\/\u2202x)\u1d62\n\u2248 (\u03c6\u1d62\u208a\u2081 - \u03c6\u1d62) \/ h<\/code><\/pre>\n<p>Ce pochoir sensible \u00e0 la direction supprime de nombreuses oscillations produites par une approximation centr\u00e9e. Pour une convection lin\u00e9aire et une diffusion lin\u00e9aires, il produit \u00e9galement des coefficients voisins positifs sur une gamme beaucoup plus large de nombres de peclet cellulaire.<\/p>\n<p>La discr\u00e9tisation spatiale au vent ne doit pas \u00eatre d\u00e9crite comme inconditionnellement stable sans qualification. S'il est combin\u00e9 avec un int\u00e9grateur de temps explicite, la m\u00e9thode compl\u00e8te a toujours une restriction de Courant.<\/p>\n<h2>Au vent comme diff\u00e9renciation centrale et diffusion<\/h2>\n<p>Pour une vitesse constante positive, la d\u00e9riv\u00e9e du premier ordre du vent peut \u00eatre \u00e9crite exactement comme suit&nbsp;:<\/p>\n<pre><code>(\u03c6\u1d62 - \u03c6\u1d62\u208b\u2081) \/ h\n=\n(\u03c6\u1d62\u208a\u2081 - \u03c6\u1d62\u208b\u2081) \/ (2h)\n-\n(\u03c6\u1d62\u208a\u2081 - 2\u03c6\u1d62 + \u03c6\u1d62\u208b\u2081) \/ (2h)<\/code><\/pre>\n<p>L'expression de la deuxi\u00e8me diff\u00e9rence se rapproche de <code>h\u03c6\u2093\u2093<\/code>. Le remplacement de l'op\u00e9rateur au vent dans l'\u00e9quation d'advection donne l'\u00e9quation modifi\u00e9e :<\/p>\n<pre><code>\u2202\u03c6\/\u2202t + v\u2202\u03c6\/\u2202x\n=\n(|v|h \/ 2) \u2202\u00b2\u03c6\/\u2202x\u00b2\n+ higher-order terms<\/code><\/pre>\n<p>Le premier coefficient de diffusion num\u00e9rique de la semi-discr\u00e9tisation spatiale est donc :<\/p>\n<pre><code>\u03b1_num = |v|h \/ 2<\/code><\/pre>\n<p>Cela explique \u00e0 la fois la stabilit\u00e9 et la diffamation associ\u00e9e au premier ordre au vent. Il ajoute un terme de troncature de type diffusion qui supprime les ondes courtes et les gradients pointus.<\/p>\n<p>La formule d\u00e9crit l'erreur principale de l'op\u00e9rateur spatial. Une fois qu'une discr\u00e9tisation temporelle est ajout\u00e9e, l'\u00e9quation modifi\u00e9e compl\u00e8te peut contenir des termes suppl\u00e9mentaires qui d\u00e9pendent du nombre de cours et de la taille du pas de temps.<\/p>\n<h2>R\u00e9duire la diffusion num\u00e9rique<\/h2>\n<p>Parce que la diffusion au vent en t\u00eate s'adapte \u00e0 l'espacement des mailles, l'affinage du maillage r\u00e9duit la bavure. R\u00e9duire uniquement le pas de temps ne supprime pas l'erreur spatiale principale.<\/p>\n<p>D'autres options incluent :<\/p>\n<ul>\n<li>Utilisation d'une reconstruction de second ordre<\/li>\n<li>Application d'un limiteur de flux<\/li>\n<li>Utilisation rapide sur des maillages structur\u00e9s appropri\u00e9s<\/li>\n<li>Appliquer les m\u00e9thodes TVD ou Weno<\/li>\n<li>Utilisation de SUPG dans une formulation d'\u00e9l\u00e9ments finis<\/li>\n<li>Aligner et affiner le maillage \u00e0 proximit\u00e9 de couches importantes<\/li>\n<\/ul>\n<p>L'augmentation de la diffusivit\u00e9 physique n'est pas une solution num\u00e9rique. Il change de mod\u00e8le et ne doit \u00eatre fait que lorsque le probl\u00e8me physique n\u00e9cessite un coefficient diff\u00e9rent.<\/p>\n<h2>Diffusion et dispersion num\u00e9riques<\/h2>\n<p>La diffusion num\u00e9rique r\u00e9duit l'amplitude des ondes r\u00e9solues. Il r\u00e9pand les discontinuit\u00e9s et lisse les pics \u00e9troits.<\/p>\n<p>La dispersion num\u00e9rique modifie la vitesse de propagation de diff\u00e9rentes longueurs d'onde. Il peut produire des oscillations d'attaque ou de fin, m\u00eame lorsque l'amplitude totale n'est pas fortement amortie.<\/p>\n<p>Le contrevent du premier ordre est principalement dissipatif. De nombreux sch\u00e9mas centr\u00e9s et d'ordre sup\u00e9rieur sont moins dissipatifs mais plus dispersifs. Une bonne m\u00e9thode de transport doit contr\u00f4ler les deux effets.<\/p>\n<p>Le bon \u00e9quilibre d\u00e9pend de l'application. Une petite quantit\u00e9 limit\u00e9e de dissipation peut \u00eatre acceptable dans un calcul d'ing\u00e9nierie robuste. Dans la propagation des ondes, un amortissement excessif peut d\u00e9truire la quantit\u00e9 mesur\u00e9e. Dans le transport r\u00e9actif, les sous-d\u00e9bits oscillatoires peuvent cr\u00e9er des concentrations n\u00e9gatives et briser le mod\u00e8le de r\u00e9action.<\/p>\n<h2>Sch\u00e9mas lin\u00e9aires d'ordre sup\u00e9rieur<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Sch\u00e8me<\/th>\n<th>ordre nominal<\/th>\n<th>force principale<\/th>\n<th>principal risque<\/th>\n<\/tr>\n<tr>\n<td>diff\u00e9rence centrale<\/td>\n<td>Deuxi\u00e8me ordre sur des grilles uniformes et lisses<\/td>\n<td>Faible diffusion num\u00e9rique<\/td>\n<td>Perte de d\u00e9limitation ou oscillations dispersives<\/td>\n<\/tr>\n<tr>\n<td>Premier ordre au vent<\/td>\n<td>premier ordre<\/td>\n<td>Robuste et sens\u00e9<\/td>\n<td>Forte diffusion num\u00e9rique<\/td>\n<\/tr>\n<tr>\n<td>Lin\u00e9aire au vent<\/td>\n<td>Deuxi\u00e8me commande sur des grilles lisses<\/td>\n<td>Moins de diffusion que le premier ordre au vent<\/td>\n<td>pas automatiquement d\u00e9limit\u00e9 pr\u00e8s des gradients nets<\/td>\n<\/tr>\n<tr>\n<td>Rapide<\/td>\n<td>Interpolation du visage du troisi\u00e8me ordre sur une grille uniforme<\/td>\n<td>Bonne pr\u00e9cision pour une convection lisse<\/td>\n<td>Peut d\u00e9passer et perdre de l'ordre pr\u00e8s des limites ou des grilles irr\u00e9guli\u00e8res<\/td>\n<\/tr>\n<tr>\n<td>Lax-Wendroff<\/td>\n<td>Deuxi\u00e8me ordre dans l'espace et le temps pour l'advection lin\u00e9aire<\/td>\n<td>Faible dissipation pour les ondes r\u00e9solues<\/td>\n<td>Oscillations dispersives proches des discontinuit\u00e9s<\/td>\n<\/tr>\n<\/tbody><\/table>\n<p>L'ordre nominal s'applique dans les r\u00e9gions lisses selon les hypoth\u00e8ses utilis\u00e9es pour d\u00e9river le sch\u00e9ma. Les limites, les limiteurs, la non-orthogonalit\u00e9 de maillage, les discontinuit\u00e9s et les coefficients variables peuvent r\u00e9duire le taux de convergence observ\u00e9.<\/p>\n<h2>Limiteurs de flux et sch\u00e9mas TVD<\/h2>\n<p>Un limiteur de flux combine un flux d'ordre faible robuste avec une correction d'ordre \u00e9lev\u00e9 moins diffusive. Dans les r\u00e9gions lisses, le limiteur permet l'approximation d'ordre sup\u00e9rieur. Pr\u00e8s de gradients pointus, il r\u00e9duit la correction pour \u00e9viter de nouveaux maxima ou minima.<\/p>\n<p>Une valeur faciale m\u00e9lang\u00e9e simplifi\u00e9e peut \u00eatre \u00e9crite comme suit&nbsp;:<\/p>\n<pre><code>\u03c6_f =\n\u03c6_f(upwind)\n+\n\u03c8(r) [\n    \u03c6_f(high-order)\n    - \u03c6_f(upwind)\n]<\/code><\/pre>\n<p>La fonction limiteur <code>\u03c8(r)<\/code> d\u00e9pend des gradients voisins. Les exemples courants incluent Minmod, Van Leer, Superbee et Monotonized Central Limitters.<\/p>\n<p>Les m\u00e9thodes de diminution des variations totales sont con\u00e7ues pour \u00e9viter d'augmenter la variation totale d'une solution unidimensionnelle. Ils offrent un compromis utile entre la robustesse du premier ordre au vent et la r\u00e9solution d'un sch\u00e9ma d'ordre sup\u00e9rieur.<\/p>\n<p>Pr\u00e8s d'une v\u00e9ritable discontinuit\u00e9, un limiteur non lin\u00e9aire r\u00e9duit normalement l'ordre local. Ceci est attendu&nbsp;: le maintien de la monotonie et de l'ordre lin\u00e9aire \u00e9lev\u00e9 \u00e0 une discontinuit\u00e9 sont des objectifs contradictoires.<\/p>\n<h2>M\u00e9thodes Weno<\/h2>\n<p>Les m\u00e9thodes pond\u00e9r\u00e9es essentiellement non oscillatoires utilisent plusieurs pochoirs candidats. Les indicateurs de douceur attribuent un poids plus faible aux pochoirs qui traversent une discontinuit\u00e9.<\/p>\n<p>Les m\u00e9thodes Weno peuvent fournir une pr\u00e9cision d'ordre \u00e9lev\u00e9 dans des r\u00e9gions lisses tout en \u00e9vitant les oscillations les plus fortes d'un sch\u00e9ma lin\u00e9aire d'ordre \u00e9lev\u00e9 fixe. Ils sont largement utilis\u00e9s pour le flux compressible, les lois de conservation et les probl\u00e8mes de chocs mobiles.<\/p>\n<p>Leurs inconv\u00e9nients comprennent un co\u00fbt de calcul plus \u00e9lev\u00e9, des d\u00e9pendances de donn\u00e9es plus larges, un traitement plus complexe des limites et plusieurs choix de mise en \u0153uvre qui affectent la dissipation.<\/p>\n<h2>Stabilisation SUPG<\/h2>\n<p>La stabilisation de l'amortissement au vent\/Petrov\u2013Galerkin est avant tout une technique d'\u00e9l\u00e9ments finis. Il modifie l'espace de test de sorte que la forme faible re\u00e7oit une contribution r\u00e9siduelle align\u00e9e avec le flux.<\/p>\n<p>Pour un op\u00e9rateur avec un fort r\u00e9sidu :<\/p>\n<pre><code>R(\u03c6) =\n\u2202\u03c6\/\u2202t\n+ v \u00b7 \u2207\u03c6\n- \u2207 \u00b7 (\u03b1\u2207\u03c6)\n- S<\/code><\/pre>\n<p>Un terme typique de stabilisation est :<\/p>\n<pre><code>\u03a3_K \u222b_K\n    \u03c4_K\n    (v \u00b7 \u2207w)\n    R(\u03c6_h)\nd\u03a9<\/code><\/pre>\n<p>Parce que le fort r\u00e9sidu appara\u00eet dans la formulation, le terme est coh\u00e9rent : la solution exacte satisfait \u00e9galement l'\u00e9quation stabilis\u00e9e.<\/p>\n<p>Le facteur <code>v \u00b7 \u2207w<\/code> met l'accent sur la direction de la ligne de courant. Cela r\u00e9duit les oscillations sans introduire la m\u00eame quantit\u00e9 de maculage de vent de travers que la simple diffusion artificielle isotrope.<\/p>\n<h2>Choisir le param\u00e8tre SUPG<\/h2>\n<p>Le param\u00e8tre de stabilisation n'est pas universellement \u00e9gal \u00e0 <code>h\/(2|v|)<\/code>. Cette expression est la limite \u00e0 peclet \u00e9lev\u00e9 de plusieurs formules d'advection r\u00e9guli\u00e8res.<\/p>\n<p>Pour un probl\u00e8me d'advection et de diffusion r\u00e9guli\u00e8re unidimensionnelle, une forme courante est&nbsp;:<\/p>\n<pre><code>\u03c4 =\nh \/ (2|v|)\n[\n    coth(Pe*) - 1\/Pe*\n]\n\nPe* = |v|h \/ (2\u03b1)<\/code><\/pre>\n<p>Quand l'advection domine fortement :<\/p>\n<pre><code>\u03c4 \u2192 h \/ (2|v|)<\/code><\/pre>\n<p>Lorsque la diffusion domine, l'expression se rapproche d'une limite \u00e0 l'\u00e9chelle de la diffusion au lieu d'ajouter une stabilisation excessive.<\/p>\n<p>Les impl\u00e9mentations transitoires et multidimensionnelles peuvent combiner des \u00e9chelles de temps, d'advection et de diffusion :<\/p>\n<pre><code>\u03c4 \u2248\n[\n    (c_t \/ \u0394t)\u00b2\n    + (c_v |v| \/ h)\u00b2\n    + (c_d \u03b1 \/ h\u00b2)\u00b2\n]\u207b\u00b9\u141f\u00b2<\/code><\/pre>\n<p>Les constantes et la d\u00e9finition de la longueur des \u00e9l\u00e9ments d\u00e9pendent de la formulation. L'expression appropri\u00e9e doit provenir de la m\u00e9thode des \u00e9l\u00e9ments finis et de l'impl\u00e9mentation logicielle utilis\u00e9e.<\/p>\n<p>La <a href=\"https:\/\/mooseframework.inl.gov\/source\/kernels\/LevelSetAdvectionSUPG.html\" rel=\"nofollow\" target=\"_blank\">Documentation de l'orignal LevelEtAdvectionSupg<\/a> montre comment le SUPG est inclus dans une \u00e9quation de niveau stabilis\u00e9e compl\u00e8te.<\/p>\n<h2>Le SUPG n'est pas une diffusion artificielle isotrope<\/h2>\n<p>L'ajout d'un coefficient scalaire plus grand \u00e0 un terme de diffusion ordinaire n'est pas une impl\u00e9mentation SUPG compl\u00e8te. Un coefficient de diffusion scalaire agit dans chaque direction spatiale.<\/p>\n<p>SUPG modifie la forme faible en utilisant la d\u00e9riv\u00e9e directionnelle de la fonction de test et le fort r\u00e9sidu. Il peut donc ajouter une stabilisation de la ligne de courant tout en pr\u00e9servant une plus grande r\u00e9solution de vent de travers.<\/p>\n<p>Des oscillations de vent de travers peuvent encore se produire dans des couches multidimensionnelles difficiles. Des termes suppl\u00e9mentaires de capture de discontinuit\u00e9 ou de capture de chocs sont parfois utilis\u00e9s avec SUPG, mais ceux-ci doivent \u00eatre con\u00e7us et valid\u00e9s s\u00e9par\u00e9ment.<\/p>\n<h2>Advection-diffusion dans FIPY<\/h2>\n<p>FIPY fournit plusieurs termes de convection de volume fini, notamment :<\/p>\n<ul>\n<li><code>CentralDifferenceConvectionTerm<\/code><\/li>\n<li><code>ExponentialConvectionTerm<\/code><\/li>\n<li><code>HybridConvectionTerm<\/code><\/li>\n<li><code>PowerLawConvectionTerm<\/code><\/li>\n<li><code>UpwindConvectionTerm<\/code><\/li>\n<li><code>ExplicitUpwindConvectionTerm<\/code><\/li>\n<li><code>VanLeerConvectionTerm<\/code><\/li>\n<\/ul>\n<p>Le coefficient d'un terme de convection doit repr\u00e9senter une vitesse ou un flux vectoriel. En deux dimensions, un vecteur constant peut \u00eatre fourni sous la forme <code>((v_x,), (v_y,))<\/code>.<\/p>\n<h2>Un exemple FIPY au vent<\/h2>\n<p>L'exemple suivant transporte une r\u00e9gion scalaire circulaire \u00e0 travers un domaine bidimensionnel tout en ajoutant une petite quantit\u00e9 de diffusion physique :<\/p>\n<pre><code class=\"language-python\">from fipy import (\n    Grid2D,\n    CellVariable,\n    TransientTerm,\n    DiffusionTerm,\n    UpwindConvectionTerm\n)\nfrom fipy.tools import numerix\n\n# Domain\nlength_x = 2.0\nlength_y = 1.0\n\nnx = 200\nny = 100\n\ndx = length_x \/ nx\ndy = length_y \/ ny\n\nmesh = Grid2D(\n    nx=nx,\n    ny=ny,\n    dx=dx,\n    dy=dy\n)\n\n# Transported scalar\nphi = CellVariable(\n    name=\"concentration\",\n    mesh=mesh,\n    value=0.0,\n    hasOld=True\n)\n\nx, y = mesh.cellCenters\n\ninitial_region = (\n    (x - 0.4) ** 2\n    + (y - 0.5) ** 2\n    &lt; 0.1 ** 2\n)\n\nphi.setValue(\n    1.0,\n    where=initial_region\n)\n\n# Constant velocity vector\nvelocity_x = 1.0\nvelocity_y = 0.0\n\nvelocity = (\n    (velocity_x,),\n    (velocity_y,)\n)\n\ndiffusivity = 1e-3\n\nequation = (\n    TransientTerm(var=phi)\n    + UpwindConvectionTerm(\n        coeff=velocity,\n        var=phi\n    )\n    == DiffusionTerm(\n        coeff=diffusivity,\n        var=phi\n    )\n)\n\n# Inflow value on the left boundary\nphi.constrain(\n    0.0,\n    where=mesh.facesLeft\n)\n\n# Moderate time step for temporal accuracy\ndt = 0.25 * dx \/ abs(velocity_x)\nnumber_of_steps = 200\n\nfor step in range(number_of_steps):\n    phi.updateOld()\n    equation.solve(\n        var=phi,\n        dt=dt\n    )<\/code><\/pre>\n<p><code>UpwindConvectionTerm<\/code> utilise une discr\u00e9tisation implicite du premier ordre au vent au vent. Le pas de temps choisi n'est donc pas pr\u00e9sent\u00e9 comme une limite de LFC explicite stricte. Il est maintenu mod\u00e9r\u00e9 pour r\u00e9soudre le transport avec pr\u00e9cision.<\/p>\n<p>Pour une convection explicitement int\u00e9gr\u00e9e, le sch\u00e9ma complet doit satisfaire la restriction de stabilit\u00e9 associ\u00e9e aux m\u00e9thodes spatiales et temporelles choisies.<\/p>\n<h2>Utilisation du r\u00e9gime de loi de puissance de Fipy<\/h2>\n<p>Pour une convection constante\u2013diffusion, les exemples officiels de FIPY utilisent <code>PowerLawConvectionTerm<\/code>&nbsp;:<\/p>\n<pre><code class=\"language-python\">from fipy import (\n    CellVariable,\n    Grid1D,\n    DiffusionTerm,\n    PowerLawConvectionTerm\n)\n\nlength = 10.0\ncell_count = 1000\n\nmesh = Grid1D(\n    nx=cell_count,\n    dx=length \/ cell_count\n)\n\nconcentration = CellVariable(\n    name=\"concentration\",\n    mesh=mesh,\n    value=0.0\n)\n\nconcentration.constrain(\n    0.0,\n    where=mesh.facesLeft\n)\n\nconcentration.constrain(\n    1.0,\n    where=mesh.facesRight\n)\n\ndiffusivity = 1.0\nvelocity = (10.0,)\n\nequation = (\n    DiffusionTerm(\n        coeff=diffusivity\n    )\n    + PowerLawConvectionTerm(\n        coeff=velocity\n    )\n)\n\nequation.solve(\n    var=concentration\n)<\/code><\/pre>\n<p>Les documents FIPY <code>PowerLawConvectionTerm<\/code> et <code>ExponentialConvectionTerm<\/code> conviennent \u00e0 une large gamme de cas de convection-diffusion, l'approximation de la loi de puissance offrant une option pratique plus efficace.<\/p>\n<h2>V\u00e9rification du num\u00e9ro de peclet<\/h2>\n<p>Pour l'exemple uniforme \u00e0 deux dimensions, les nombres de peclets de cellules directionnelles peuvent \u00eatre calcul\u00e9s comme suit&nbsp;:<\/p>\n<pre><code class=\"language-python\">peclet_x = (\n    abs(velocity_x)\n    * dx\n    \/ diffusivity\n)\n\npeclet_y = (\n    abs(velocity_y)\n    * dy\n    \/ diffusivity\n)\n\nprint(\"Pe_x =\", peclet_x)\nprint(\"Pe_y =\", peclet_y)<\/code><\/pre>\n<p>Pour les mailles non uniformes et les vitesses variables, calculez un nombre de peclets de face locale en utilisant la vitesse de face normale et la distance de centre cellule local. Une seule valeur globale peut masquer des r\u00e9gions \u00e0 peclet \u00e9lev\u00e9.<\/p>\n<h2>Les erreurs spatiales et temporelles doivent \u00eatre s\u00e9par\u00e9es<\/h2>\n<p>L'\u00e9talement d'un calcul d'advection peut provenir du flux spatial, de l'int\u00e9grateur de temps ou des deux.<\/p>\n<p>Euler \u00e0 l'envers, par exemple, est dissipatif pour les modes de d\u00e9composition et oscillatoire. Crank \u2013 Nicolson se comporte diff\u00e9remment et n'amortit pas fortement tous les modes rigides. Les m\u00e9thodes explicites de Runge-Kutta ont leurs propres courbes de dissipation et de dispersion.<\/p>\n<p>Il est donc inexact d'affirmer que chaque m\u00e9thode implicite introduit toujours la m\u00eame quantit\u00e9 de diffusion. L'amortissement num\u00e9rique d\u00e9pend de la m\u00e9thode.<\/p>\n<p>Une analyse utile fait varier le maillage tout en maintenant une erreur temporelle petite, puis fait varier le pas de temps sur un maillage fin fixe. Cela permet de s\u00e9parer la diffusion num\u00e9rique spatiale de l'erreur temporelle.<\/p>\n<p>Le guide connexe <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\">M\u00e9thodes d'int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a> discute de cette distinction plus en d\u00e9tail.<\/p>\n<h2>Choisir une strat\u00e9gie de stabilisation<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Situation<\/th>\n<th>Point de d\u00e9part possible<\/th>\n<th>consid\u00e9ration principale<\/th>\n<\/tr>\n<tr>\n<td>Faible nombre de peclets cellulaires et solution lisse<\/td>\n<td>diff\u00e9renciation centrale<\/td>\n<td>Faible diffusion et pr\u00e9cision du second ordre<\/td>\n<\/tr>\n<tr>\n<td>Nombre \u00e9lev\u00e9 de peclets avec priorit\u00e9 de robustesse<\/td>\n<td>Premier ordre au vent<\/td>\n<td>Limit\u00e9 mais potentiellement trop diffusant<\/td>\n<\/tr>\n<tr>\n<td>Solution fluide n\u00e9cessitant une plus grande pr\u00e9cision<\/td>\n<td>Lin\u00e9aire au vent ou rapide<\/td>\n<td>V\u00e9rifier la limite et le traitement des limites<\/td>\n<\/tr>\n<tr>\n<td>Avant pointu n\u00e9cessitant une monotonie<\/td>\n<td>M\u00e9thode de flux TVD \u00e0 intensit\u00e9 limit\u00e9e<\/td>\n<td>Le limiteur non lin\u00e9aire r\u00e9duit les oscillations<\/td>\n<\/tr>\n<tr>\n<td>Loi de conservation domin\u00e9e par les chocs<\/td>\n<td>M\u00e9thode de type Godounov, Weno ou DG<\/td>\n<td>N\u00e9cessite des flux num\u00e9riques appropri\u00e9s \u00e0 l'\u00e9quation<\/td>\n<\/tr>\n<tr>\n<td>Advection des \u00e9l\u00e9ments finis\u2013diffusion<\/td>\n<td>soup<\/td>\n<td>Stabilisation r\u00e9siduelle coh\u00e9rente<\/td>\n<\/tr>\n<tr>\n<td>Couches de vent de travers complexes<\/td>\n<td>SUPG avec capture de choc suppl\u00e9mentaire ou raffinement local<\/td>\n<td>Le SUPG seul ne peut pas contr\u00f4ler toutes les oscillations de vent de travers<\/td>\n<\/tr>\n<\/tbody><\/table>\n<h2>Conditions aux limites dans les probl\u00e8mes d'advection<\/h2>\n<p>Advection transporte des informations dans le domaine \u00e0 travers les limites d'entr\u00e9e. Les valeurs limites doivent normalement \u00eatre prescrites lorsque :<\/p>\n<pre><code>v \u00b7 n &lt; 0<\/code><\/pre>\n<p>\u00c0 une limite de sortie, la prescription d'une valeur scalaire inutile peut surcontr\u00f4ler le probl\u00e8me ou cr\u00e9er une fausse couche limite.<\/p>\n<p>La diffusion modifie les exigences de limites car elle introduit un op\u00e9rateur spatial de second ordre. Un mod\u00e8le complet d'advection-diffusion peut donc n\u00e9cessiter une valeur ou une condition de flux d\u00e9riv\u00e9e du probl\u00e8me physique.<\/p>\n<p>Les conditions aux limites doivent \u00eatre v\u00e9rifi\u00e9es avec la direction du flux. Un sch\u00e9ma peut sembler instable lorsque le probl\u00e8me r\u00e9el est un traitement d'entr\u00e9e ou d'\u00e9coulement incorrect.<\/p>\n<h2>Alignement du maillage et diffusion du vent de travers<\/h2>\n<p>La diffusion num\u00e9rique est influenc\u00e9e par l'orientation du maillage. Sur une grille cart\u00e9sienne, le transport align\u00e9 avec un axe de coordonn\u00e9es est g\u00e9n\u00e9ralement repr\u00e9sent\u00e9 plus proprement que le transport diagonal.<\/p>\n<p>Lorsque le flux traverse la grille de mani\u00e8re oblique, les sch\u00e9mas de remontage multidimensionnel du premier ordre peuvent introduire un \u00e9talement de vent de travers substantiel. Le raffinement, les mailles anisotropes, la reconstruction des moindres carr\u00e9s, la limitation multidimensionnelle ou la stabilisation des \u00e9l\u00e9ments finis \u00e0 base r\u00e9siduelle peuvent am\u00e9liorer le r\u00e9sultat.<\/p>\n<p>Une petite taille de cellule \u00e0 elle seule ne garantit pas une bonne pr\u00e9cision si les cellules sont tr\u00e8s biais\u00e9es ou mal align\u00e9es avec des couches importantes.<\/p>\n<h2>Tests de v\u00e9rification<\/h2>\n<p>Une nouvelle impl\u00e9mentation d'advection doit \u00eatre test\u00e9e sur les probl\u00e8mes de comportement connu.<\/p>\n<h3>Traduction d'un profil fluide<\/h3>\n<p>Utilisez des limites p\u00e9riodiques et transportez une onde gaussienne ou sinuso\u00efdale lisse. Apr\u00e8s une p\u00e9riode, comparez le profil num\u00e9rique avec la condition initiale.<\/p>\n<p>Ce test r\u00e9v\u00e8le une perte d'amplitude et une erreur de phase.<\/p>\n<h3>Traduction d'un pouls carr\u00e9<\/h3>\n<p>Une impulsion carr\u00e9e expose la diffusion num\u00e9rique et les oscillations. Le contrevent du premier ordre \u00e9tale les bords, tandis que les sch\u00e9mas d'ordre \u00e9lev\u00e9 sans restriction peuvent d\u00e9passer.<\/p>\n<h3>Blob rotatif<\/h3>\n<p>Un champ de vitesse de rotation en deux dimensions teste le transport multidimensionnel, la diffusion par vent de travers et les effets d'orientation de maillage.<\/p>\n<h3>Couche limite stable<\/h3>\n<p>Un probl\u00e8me de convection-diffusion stable unidimensionnelle avec une solution analytique connue teste le crit\u00e8re de peclet cellulaire et la capacit\u00e9 de r\u00e9soudre une couche mince de sortie.<\/p>\n<h2>Convergence de maillage et de pas de temps<\/h2>\n<p>Ex\u00e9cutez le m\u00eame probl\u00e8me sur plusieurs maillages. Mesurez les erreurs de quantit\u00e9s telles que :<\/p>\n<ul>\n<li>valeur maximale<\/li>\n<li>position avant<\/li>\n<li>\u00c9paisseur de couche<\/li>\n<li>Masse transport\u00e9e totale<\/li>\n<li><code>L1<\/code>, <code>L2<\/code>, ou norme maximale<\/li>\n<li>d\u00e9passement et sous-d\u00e9passement<\/li>\n<\/ul>\n<p>R\u00e9p\u00e9tez le calcul avec des pas de temps plus petits sur un maillage fixe. Cela s\u00e9pare les erreurs spatiales et temporelles.<\/p>\n<p>Une m\u00e9thode d'ordre sup\u00e9rieur doit d\u00e9montrer sa convergence attendue pour un test fluide. Quasi discontinuit\u00e9s, la convergence globale peut \u00eatre plus faible car la solution exacte manque de r\u00e9gularit\u00e9 suffisante.<\/p>\n<h2>erreurs courantes<\/h2>\n<ul>\n<li>M\u00e9langer deux d\u00e9finitions de nombre de peclet diff\u00e9rentes<\/li>\n<li>Application du seuil de diff\u00e9rence centrale stable \u00e0 chaque sch\u00e9ma transitoire<\/li>\n<li>Appeler le vent inconditionnellement stable sans sp\u00e9cifier l'int\u00e9grateur de temps<\/li>\n<li>En supposant que la diffusion num\u00e9rique ne d\u00e9pend que du pas de temps<\/li>\n<li>Remplacer le SUPG par une diffusion isotrope ordinaire<\/li>\n<li>En supposant que SUPG utilise toujours <code>\u03c4 = h\/(2|v|)<\/code><\/li>\n<li>Utilisation d'un sch\u00e9ma lin\u00e9aire d'ordre \u00e9lev\u00e9 sans restriction pr\u00e8s d'une discontinuit\u00e9<\/li>\n<li>Augmentation de la diffusivit\u00e9 physique pour masquer les bavures num\u00e9riques<\/li>\n<li>Application de valeurs scalaires \u00e0 la fois en entr\u00e9e et en sortie sans v\u00e9rifier la PDE<\/li>\n<li>Comparaison de sch\u00e9mas sur diff\u00e9rents maillages ou \u00e0 diff\u00e9rents niveaux d'erreur<\/li>\n<li>Ignorer la conservation de la masse et les limites physiques<\/li>\n<li>Attribuer tout l'amortissement \u00e0 la discr\u00e9tisation spatiale<\/li>\n<\/ul>\n<h2>Un flux de travail pratique<\/h2>\n<ol>\n<li>\u00c9crivez l'\u00e9quation sous forme conservatrice ou non conservatrice comme l'exige la physique.<\/li>\n<li>Identifiez les limites d'afflux, de sortie et de diffusion.<\/li>\n<li>Calculez les nombres de peclets de cellules directionnelles locales.<\/li>\n<li>Commencez par un sch\u00e9ma robuste au vent ou born\u00e9.<\/li>\n<li>Mesurer la diffusion num\u00e9rique lors d'un test de transport connu.<\/li>\n<li>Affinez le maillage et v\u00e9rifiez la convergence.<\/li>\n<li>Passer \u00e0 un sch\u00e9ma d'ordre sup\u00e9rieur limit\u00e9 lorsque la diffamation est inacceptable.<\/li>\n<li>Utilisez SUPG pour les formulations d'\u00e9l\u00e9ments finis n\u00e9cessitant une stabilisation simplifi\u00e9e.<\/li>\n<li>V\u00e9rifiez le num\u00e9ro de Courant et la convergence temporelle s\u00e9par\u00e9ment.<\/li>\n<li>Documentez le flux, le limiteur, le param\u00e8tre de stabilisation et le traitement aux limites.<\/li>\n<\/ol>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/finite-volume-method-explained-simply\/\">m\u00e9thode de volume fini expliqu\u00e9e simplement<\/a> - revoir les flux faciaux, la conservation et la discr\u00e9tisation centr\u00e9e sur les cellules.<\/li>\n<li><a\u00a00>M\u00e9thodes d'int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites&nbsp;: comparez les restrictions CFL, l'amortissement et les erreurs temporelles.<\/a\u00a00><\/li>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">Quand utiliser FEM, FVM ou FDM<\/a> \u2014 Choisissez une discr\u00e9tisation spatiale pour le probl\u00e8me qui gouverne.<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">\u00c9tudes de qualit\u00e9 et de convergence des mailles&nbsp;: un guide pratique<\/a>&nbsp;: relier la r\u00e9solution locale \u00e0 la convergence num\u00e9rique.<\/li>\n<li><a href=\"https:\/\/matforge.org\/operator-splitting-strang-splitting-and-imex-schemes-for-pde-solvers\/\">S\u00e9paration de l'op\u00e9rateur, fractionnement de Strang et sch\u00e9mas IMEX pour les solveurs PDE<\/a>&nbsp;: s\u00e9parer les processus de diffusion et de r\u00e9action.<\/li>\n<li><a href=\"https:\/\/matforge.org\/extending-fipy-with-custom-modules\/\">\u00c9largir FIPY avec des modules personnalis\u00e9s<\/a> - Explorez le comportement num\u00e9rique personnalis\u00e9 autour des mod\u00e8les FIPY.<\/li>\n<\/ul>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li><a href=\"https:\/\/hplgit.github.io\/fdm-book\/\" rel=\"nofollow\" target=\"_blank\">informatique \u00e0 diff\u00e9rences finies avec PDE<\/a> - analyse d\u00e9taill\u00e9e des sch\u00e9mas d'advection, facteurs d'amplification, diffusion et dispersion.<\/li>\n<li><a href=\"https:\/\/archive.nptel.ac.in\/content\/storage2\/courses\/112108091\/module4\/lecture4.pdf\" rel=\"nofollow\" target=\"_blank\">nptel&nbsp;: convection et diffusion<\/a> - discussion sur le comportement de volume fini central et au vent et le crit\u00e8re Peclet.<\/li>\n<li><a href=\"https:\/\/mooseframework.inl.gov\/source\/kernels\/LevelSetAdvectionSUPG.html\" rel=\"nofollow\" target=\"_blank\">Moose LevelSetAdVectionSupg Documentation<\/a> \u2014 Une impl\u00e9mentation de la stabilisation SUPG pour une \u00e9quation de niveau.<\/li>\n<li><a href=\"https:\/\/www.wias-berlin.de\/people\/john\/STAB_PROB\/stab_cd.html\" rel=\"nofollow\" target=\"_blank\">WiAS Berlin&nbsp;: stabilisation des probl\u00e8mes domin\u00e9s par la convection<\/a> \u2014 Ressources sur les m\u00e9thodes d'\u00e9l\u00e9ments finis stabilis\u00e9es.<\/li>\n<li><a href=\"https:\/\/oldqa.fenicsproject.org\/13458\/how-implement-supg-properly-advection-dominated-equation\/\" rel=\"nofollow\" target=\"_blank\">Fenics QA&nbsp;: Impl\u00e9mentation de SUPG<\/a> \u2014 Discussion sur la mise en \u0153uvre historique et mises en garde pratiques.<\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/en\/benchmark_patched_b873c7e3f\/generated\/examples.levelSet.advection.html\" rel=\"nofollow\" target=\"_blank\">Exemples d'advection Fipy Level-Set<\/a> \u2014 Exemples d'advection de la documentation FIPY.<\/li>\n<li><a href=\"https:\/\/www.cmor-faculty.rice.edu\/~heinken\/papers\/supg_analysis.pdf\" rel=\"nofollow\" target=\"_blank\">Supg Finite Analyse<\/a> \u2014 Analyse math\u00e9matique des formulations d'\u00e9l\u00e9ments finis stabilis\u00e9s.<\/li>\n<li><a href=\"https:\/\/scicomp.stackexchange.com\/questions\/31424\/\" rel=\"nofollow\" target=\"_blank\">\u00c9change de piles de calculs&nbsp;: pourquoi l'advection est difficile<\/a> \u2014 Discussion sur la communaut\u00e9 des probl\u00e8mes num\u00e9riques dans les \u00e9quations d'advection.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Les \u00e9quations domin\u00e9es par l'advection d\u00e9fient les m\u00e9thodes num\u00e9riques, car la diffusion physique est trop faible pour supprimer le comportement non r\u00e9solu \u00e0 l'\u00e9chelle de la grille. Le nombre de peclets cellulaires permet de d\u00e9terminer si une discr\u00e9tisation du volume fini central stable est susceptible de rester born\u00e9e, mais sa d\u00e9finition et son champ d'application doivent \u00eatre indiqu\u00e9s correctement.<\/p>\n<p>Le contrevent du premier ordre fournit une approximation directionnelle robuste. Son erreur de troncature principale se comporte comme une diffusion artificielle avec le coefficient <code>|v|h\/2<\/code>, ce qui explique \u00e0 la fois sa stabilit\u00e9 et sa tendance \u00e0 \u00e9taler les fronts.<\/p>\n<p>Les m\u00e9thodes lin\u00e9aires d'ordre sup\u00e9rieur r\u00e9duisent la diffusion num\u00e9rique, mais peuvent introduire des oscillations dispersives. Les limiteurs de flux, les sch\u00e9mas TVD et les m\u00e9thodes Weno utilisent des m\u00e9canismes non lin\u00e9aires pour conserver une r\u00e9solution \u00e9lev\u00e9e dans des r\u00e9gions lisses tout en r\u00e9duisant les oscillations \u00e0 proximit\u00e9 de gradients abrupts.<\/p>\n<p>SUPG sert un objectif connexe dans les m\u00e9thodes d'\u00e9l\u00e9ments finis. Il ajoute un terme coh\u00e9rent bas\u00e9 sur les r\u00e9sidus align\u00e9 avec la direction d'\u00e9coulement. Son param\u00e8tre de stabilisation d\u00e9pend de l'advection locale, de la diffusion, du maillage et parfois de l'\u00e9chelle de temps&nbsp;; Il ne doit pas \u00eatre remplac\u00e9 aveugl\u00e9ment par une quantit\u00e9 fixe de diffusion isotrope.<\/p>\n<p>Aucun sch\u00e9ma n'est universellement le meilleur. Le choix correct d\u00e9pend du nombre de peclets locaux, de la r\u00e9gularit\u00e9 de la solution, des exigences de conservation, de la qualit\u00e9 du maillage, des conditions aux limites et de la tol\u00e9rance \u00e0 la diffusion ou \u00e0 la dispersion. Un choix cr\u00e9dible doit \u00eatre soutenu par des tests analytiques, un raffinement de maillage, une convergence temporelle et des contr\u00f4les des limites physiques.<\/p>\n<\/article>\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>Les \u00e9quations aux d\u00e9riv\u00e9es partielles domin\u00e9es par l&rsquo;advection sont difficiles car les informations se d\u00e9placent principalement le long d&rsquo;une direction d&rsquo;\u00e9coulement tandis que la diffusion physique fournit peu de lissage. Une m\u00e9thode num\u00e9rique qui fonctionne bien pour un probl\u00e8me domin\u00e9 par la diffusion peut produire des oscillations, un maculage excessif ou des valeurs non physiques [&hellip;]<\/p>\n","protected":false,"raw":""},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=478","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[26,29,28,21,23,10,27],"class_list":["post-1292","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","tag-advection","tag-computational-fluid-dynamics","tag-fiipy","tag-finite-volume-method","tag-numerical-methods","tag-pde","tag-supg","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Stabiliser les probl\u00e8mes domin\u00e9s par l&#039;advection<\/title>\n<meta name=\"description\" content=\"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l&#039;advection \u00e0 l&#039;aide de Peclet, de LFC et de convergence.\" \/>\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\/advection-dominated-problems-supg-stabilization\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stabiliser les probl\u00e8mes domin\u00e9s par l&#039;advection\" \/>\n<meta property=\"og:description\" content=\"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l&#039;advection \u00e0 l&#039;aide de Peclet, de LFC et de convergence.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:31:18+00:00\" \/>\n<meta name=\"author\" content=\"Elena Markovska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elena Markovska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/\"},\"author\":{\"name\":\"Elena Markovska\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"headline\":\"Probl\u00e8mes domin\u00e9s par l&rsquo;advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG\",\"datePublished\":\"2026-08-21T14:31:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/\"},\"wordCount\":4347,\"commentCount\":0,\"keywords\":[\"avancement\",\"computational-fluid-dynamics\",\"fiipy\",\"finite volume method\",\"numerical methods\",\"PDE\",\"supg\"],\"articleSection\":[\"Simulation &amp; Projets de mod\u00e9lisation\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/\",\"name\":\"Stabiliser les probl\u00e8mes domin\u00e9s par l'advection\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:31:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"description\":\"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l'advection \u00e0 l'aide de Peclet, de LFC et de convergence.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/advection-dominated-problems-supg-stabilization\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Probl\u00e8mes domin\u00e9s par l&#8217;advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG\"}]},{\"@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\\\/980162bb5de46742daece973661d93da\",\"name\":\"Elena Markovska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"caption\":\"Elena Markovska\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/elena-markovska\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stabiliser les probl\u00e8mes domin\u00e9s par l'advection","description":"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l'advection \u00e0 l'aide de Peclet, de LFC et de convergence.","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\/advection-dominated-problems-supg-stabilization\/","og_locale":"fr_FR","og_type":"article","og_title":"Stabiliser les probl\u00e8mes domin\u00e9s par l'advection","og_description":"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l'advection \u00e0 l'aide de Peclet, de LFC et de convergence.","og_url":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:31:18+00:00","author":"Elena Markovska","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Elena Markovska","Dur\u00e9e de lecture estim\u00e9e":"23 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/"},"author":{"name":"Elena Markovska","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"headline":"Probl\u00e8mes domin\u00e9s par l&rsquo;advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG","datePublished":"2026-08-21T14:31:18+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/"},"wordCount":4347,"commentCount":0,"keywords":["avancement","computational-fluid-dynamics","fiipy","finite volume method","numerical methods","PDE","supg"],"articleSection":["Simulation &amp; Projets de mod\u00e9lisation"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/","url":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/","name":"Stabiliser les probl\u00e8mes domin\u00e9s par l'advection","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:31:18+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"description":"Comparez les sch\u00e9mas centraux, au vent, \u00e0 haute r\u00e9solution et SUPG pour les PDE domin\u00e9es par l'advection \u00e0 l'aide de Peclet, de LFC et de convergence.","breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/advection-dominated-problems-supg-stabilization\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"Probl\u00e8mes domin\u00e9s par l&#8217;advection\u00a0: sch\u00e9mas au vent et stabilisation du SUPG"}]},{"@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\/980162bb5de46742daece973661d93da","name":"Elena Markovska","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","caption":"Elena Markovska"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/elena-markovska\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1292","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\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1292"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1292\/revisions"}],"predecessor-version":[{"id":1398,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1292\/revisions\/1398"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}