{"id":1287,"date":"2026-08-21T14:31:23","date_gmt":"2026-08-21T14:31:23","guid":{"rendered":"https:\/\/matforge.org\/?p=1287","raw":"https:\/\/matforge.org\/?p=1287"},"modified":"2026-08-21T14:31:23","modified_gmt":"2026-08-21T14:31:23","slug":"conservation-properties-in-discretization-ensuring-mass-and-energy-balance","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/","title":{"rendered":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&rsquo;\u00e9quilibre massique et \u00e9nerg\u00e9tique","raw":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l'\u00e9quilibre massique et \u00e9nerg\u00e9tique"},"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\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><p><strong>tl;dr<\/strong><\/p>\n<ul>\n<li><strong>La conservation locale<\/strong> est garantie par la coh\u00e9rence du flux FVM&nbsp;; FEM et DG doivent concevoir des flux avec soin.<\/li>\n<li>Le contre-vent du premier ordre ajoute une viscosit\u00e9 artificielle \u2014 <strong>\u00e0 la LFC = 1, il dispara\u00eet<\/strong>, un r\u00e9sultat surprenant que la plupart des praticiens manquent.<\/li>\n<li>Le RDG de Moose (P0P1) avec limitation du flux r\u00e9duit la diffusion num\u00e9rique de <strong>plus de 80&nbsp;%<\/strong> par rapport \u00e0 la remont\u00e9e compl\u00e8te.<\/li>\n<li>Les formulations sym\u00e9triques de biais conservent l&rsquo;\u00e9nergie cin\u00e9tique en emp\u00eachant les erreurs de cr\u00e9er de l&rsquo;\u00e9nergie.<\/li>\n<li>Les nouvelles m\u00e9thodes de relaxation 2026 peuvent imposer une conservation de masse et d&rsquo;\u00e9nergie \u00e0 la pr\u00e9cision de la machine (10\u207b\u00b9\u2074).<\/li>\n<\/ul>\n<h2>Pourquoi la discr\u00e9tisation change ce que votre simulation conserve<\/h2>\n<p>Lorsque vous discr\u00e9ditez une \u00e9quation aux d\u00e9riv\u00e9es partielles, vous ne choisissez pas seulement un ordre de pr\u00e9cision, vous choisissez les quantit\u00e9s physiques que votre solveur conserve. Masse, \u00e9nergie, quantit\u00e9 de mouvement : ces propri\u00e9t\u00e9s qui sont analytiquement garanties par les \u00e9quations continues peuvent dispara\u00eetre tranquillement (ou appara\u00eetre myst\u00e9rieusement) au niveau discret en fonction de votre conception de flux num\u00e9rique.<\/p>\n<p>Il s&rsquo;agit de l&rsquo;un des compromis les plus importants de la simulation scientifique, mais cela est souvent n\u00e9glig\u00e9 lors de la s\u00e9lection de la m\u00e9thode. Vous pourriez passer des heures \u00e0 ajuster les param\u00e8tres pour d\u00e9couvrir que le sch\u00e9ma de discr\u00e9tisation lui-m\u00eame introduit une perte de masse artificielle ou une production d&rsquo;\u00e9nergie parasite.<\/p>\n<p>Le principe de base est simple&nbsp;: <strong>Le flux laissant une cellule doit \u00e9galer le flux entrant dans son voisin<\/strong>. Lorsque cela est vrai par la construction, vous avez une conservation locale. Lorsqu&rsquo;il n\u00e9cessite une conception soign\u00e9e, vous devez le v\u00e9rifier. Comprendre cette distinction &#8211; et les outils pour la v\u00e9rifier &#8211; est la diff\u00e9rence entre la confiance de votre simulation et l&rsquo;audit de chaque r\u00e9sultat.<\/p>\n<h2>Le principe de coh\u00e9rence des flux : conservation locale vs mondiale<\/h2>\n<p>La propri\u00e9t\u00e9 de conservation d&rsquo;un sch\u00e9ma num\u00e9rique est d\u00e9termin\u00e9e par la coh\u00e9rence des flux num\u00e9riques entre les interfaces cellulaires. Ceci est connu dans la litt\u00e9rature sous le nom de <strong>principe de coh\u00e9rence des flux<\/strong>, et cela explique pourquoi certaines m\u00e9thodes conservent naturellement la masse alors que d&rsquo;autres ne le font pas.<\/p>\n<h3>M\u00e9thode de volume fini : Conservation par construction<\/h3>\n<p>La m\u00e9thode de volume fini (FVM) garantit la conservation locale car elle \u00e9quilibre les flux entre les cellules par d\u00e9finition. Lorsque la masse s&rsquo;\u00e9coule d&rsquo;un seul volume de contr\u00f4le, la m\u00eame quantit\u00e9 s&rsquo;\u00e9coule dans son voisin. Aucun flux num\u00e9rique ne peut \u00eatre cr\u00e9\u00e9 ou d\u00e9truit &#8211; la structure alg\u00e9brique de la discr\u00e9tisation impose automatiquement la conservation de la masse globale.<\/p>\n<p>FIPY met en \u0153uvre cela gr\u00e2ce \u00e0 sa structure d&rsquo;\u00e9quation de conservation, o\u00f9 chaque terme de convection repr\u00e9sente un \u00e9quilibre de flux sur les faces des cellules. La <a href=\"https:\/\/pages.nist.gov\/fipy\/en\/latest\/numerical\/equation.html\" target=\"_blank\" rel=\"nofollow noopener\">Documentation de l&rsquo;\u00e9quation de conservation FIPY<\/a> d\u00e9crit comment la conservation g\u00e9n\u00e9rale L&rsquo;\u00e9quation impose exactement cette coh\u00e9rence de flux.<\/p>\n<pre><code class=\"language-python\"># FiPy conservation equation \u2014 fluxes are balanced by construction\nequation = TransientTerm(var=phi) == UpwindConvectionTerm(coeff=velocity)<\/code><\/pre>\n<h3>M\u00e9thode des \u00e9l\u00e9ments finis : la conservation n\u00e9cessite une conception<\/h3>\n<p>Les formulations standard d&rsquo;\u00e9l\u00e9ments finis continus ne conservent pas <strong>pas<\/strong> automatiquement la masse localement. La forme faible s&rsquo;int\u00e8gre sur des \u00e9l\u00e9ments, et les flux \u00e0 travers les fronti\u00e8res internes peuvent s&rsquo;annuler globalement sans \u00eatre conserv\u00e9s localement. C&rsquo;est pourquoi les formulations FEM standard peuvent perdre la conservation de la masse dans les probl\u00e8mes domin\u00e9s par l&rsquo;advection.<\/p>\n<p>Cependant, la FEM peut atteindre la conservation locale gr\u00e2ce \u00e0 des flux num\u00e9riques sp\u00e9cialement con\u00e7us. La m\u00e9thode Galerkin discontinue (DG), par exemple, permet de conserver une forte conservation locale gr\u00e2ce \u00e0 ses flux d&rsquo;interface &#8211; voir le <a didacticiel=\"\" sur=\"\" la=\"\" m\u00e9thode=\"\" href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\" target=\"_blank\" rel=\"nofollow noopener\">DG<\/a> pour une d\u00e9rivation d\u00e9taill\u00e9e. DG combine une approximation polynomiale d&rsquo;ordre \u00e9lev\u00e9 avec une conservation \u00e0 base de flux qui refl\u00e8te la coh\u00e9rence du flux de FVM.<\/p>\n<h3>Ce que cela signifie pour la s\u00e9lection de la m\u00e9thode<\/h3>\n<table>\n<thead>\n<tr>\n<th>M\u00e9thode<\/th>\n<th>Conservation locale<\/th>\n<th>Comment il y parvient<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>volume fini<\/td>\n<td><strong>Fort \u2014 par construction<\/strong><\/td>\n<td>L&rsquo;\u00e9quilibre des flux sur les faces cellulaires est une n\u00e9cessit\u00e9 alg\u00e9brique<\/td>\n<\/tr>\n<tr>\n<td>FEM continue<\/td>\n<td><strong>D\u00e9pend de la formulation<\/strong><\/td>\n<td>N\u00e9cessite une conception de flux prudente&nbsp;; pas automatique<\/td>\n<\/tr>\n<tr>\n<td>Galerkine discontinu<\/td>\n<td><strong>Forte \u2014 \u00e0 travers les flux<\/strong><\/td>\n<td>Les flux num\u00e9riques aux interfaces imposent l&rsquo;\u00e9quilibre local<\/td>\n<\/tr>\n<tr>\n<td>diff\u00e9rence finie<\/td>\n<td><strong>Non garanti<\/strong><\/td>\n<td>Les d\u00e9riv\u00e9s n&rsquo;imposent pas d&rsquo;\u00e9quilibre de flux entre les cellules<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le <a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\" target=\"_blank\" rel=\"nofollow noopener\">Quand utiliser FEM, FVM ou FDM<\/a> Le guide sur matforge.org explique en d\u00e9tail ces compromis, y compris comment les exigences de conservation devraient conduire la s\u00e9lection de la m\u00e9thode avant que la g\u00e9om\u00e9trie ou la pr\u00e9cision ne soient prises en compte.<\/p>\n<h2>Erreur de troncature et viscosit\u00e9 artificielle<\/h2>\n<p>Chaque sch\u00e9ma num\u00e9rique introduit une erreur de troncature &#8211; une diff\u00e9rence entre l&rsquo;op\u00e9rateur diff\u00e9rentiel exact et son approximation discr\u00e8te. Pour les sch\u00e9mas au vent, cette erreur de troncature a une interpr\u00e9tation physique : elle se comporte comme une diffusion artificielle (\u00e9galement appel\u00e9e viscosit\u00e9 num\u00e9rique).<\/p>\n<h3>La d\u00e9rivation de l&rsquo;\u00e9quation modifi\u00e9e<\/h3>\n<p>La <a href=\"https:\/\/cfd.university\/blog\/what-is-numerical-dissipation-in-cfd-and-why-do-we-need-it\/\" target=\"_blank\" rel=\"nofollow noopener\">analyse par \u00e9quation modifi\u00e9e par l&rsquo;Universit\u00e9 CFD<\/a> fournit la d\u00e9rivation compl\u00e8te. Voici le r\u00e9sultat essentiel.<\/p>\n<p>Pour une advection au vent du premier ordre avec une vitesse constante $A$&nbsp;:<\/p>\n<p>$$Frac{Phi}{partielle t} + a frac{Phi}{Partial X} = underbrace{frac{a delta x}{2}}_{text{viscosit\u00e9 artificielle Coefficient}} frac{partial^2 phi}{partial x^2} + o(delta x^2)$$<\/p>\n<p>L&rsquo;erreur de troncature principale agit comme un terme de diffusion avec le coefficient $nu = a delta x \/ 2$. Cela explique \u00e0 la fois pourquoi l&rsquo;upwind est stable (il ajoute de la diffusion) et pourquoi il enfonce les fronts (ce qui diffuse les profils).<\/p>\n<h3>Le num\u00e9ro CFL change tout<\/h3>\n<p>Voici le r\u00e9sultat non \u00e9vident que la plupart des praticiens manquent&nbsp;: lorsqu&rsquo;une discr\u00e9tisation temporelle est incluse, le coefficient de viscosit\u00e9 artificielle devient <strong>d\u00e9pendant de la CFL<\/strong>. L&rsquo;\u00e9quation modifi\u00e9e compl\u00e8te montre :<\/p>\n<p>$$nu = frac{a delta x}{2} (1 &#8211; text{cfl})$$<\/p>\n<p><strong>\u00c0 CFL&nbsp;=&nbsp;1, la diffusion artificielle dispara\u00eet.<\/strong> Cela explique quand le remontage est \u00ab\u00a0libre\u00a0\u00bb &#8211; aucune diffusion num\u00e9rique. De nombreux praticiens de la simulation op\u00e8rent sans le savoir \u00e0 la LCF = 1 et se demandent pourquoi leur sch\u00e9ma de remont\u00e9e au vent du premier ordre produit des r\u00e9sultats propres de mani\u00e8re inattendue. La formule d\u00e9pendante de la LCF explique pourquoi.<\/p>\n<p>Ce r\u00e9sultat a des implications pratiques importantes :<\/p>\n<ul>\n<li>\u00c0 CFL proche de 0 (tr\u00e8s petits pas de temps), le remontage introduit une diffusion artificielle maximale<\/li>\n<li>\u00c0 la LCF = 1 (le pas de temps est \u00e9gal \u00e0 un temps de transit cellulaire), le premier ordre au vent n&rsquo;ajoute aucune diffusion artificielle<\/li>\n<li>\u00e0 la LFC &gt; 1, la formule sugg\u00e8re une instabilit\u00e9 potentielle &#8211; l&rsquo;\u00e9quation modifi\u00e9e change de signe<\/li>\n<\/ul>\n<p>Notez que la discr\u00e9tisation temporelle contribue \u00e9galement \u00e0 la diffusion num\u00e9rique. Le choix de l&rsquo;int\u00e9grateur temporel (Euler arri\u00e8re, Crank\u2013Nicolson, Runge-Kutta) affecte les caract\u00e9ristiques d&rsquo;amortissement ind\u00e9pendamment du sch\u00e9ma spatial. Le guide <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\" target=\"_blank\" rel=\"nofollow noopener\">M\u00e9thodes d&rsquo;int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a> explique comment l&rsquo;erreur temporelle interagit avec la diffusion num\u00e9rique spatiale et comment les s\u00e9parer dans la v\u00e9rification.<\/p>\n<h3>Le d\u00e9salignement de la grille cr\u00e9e une \u00ab\u00a0fausse diffusion\u00a0\u00bb<\/h3>\n<p>M\u00eame avec un coefficient de diffusion physique nul et un d\u00e9bit parfaitement uniforme, <strong>Des mailles non structur\u00e9es introduisent une diffusion num\u00e9rique<\/strong> proportionnelle \u00e0 l&rsquo;angle entre la direction du flux et les normales de la face de la cellule. C&rsquo;est ce qu&rsquo;on appelle \u00ab\u00a0false Diffusion\u00a0\u00bb ou \u00ab\u00a0crosswind diffusion\u00a0\u00bb.<\/p>\n<p>Sur les grilles cart\u00e9siennes structur\u00e9es, le flux align\u00e9 avec un axe de coordonn\u00e9es est repr\u00e9sent\u00e9 proprement. Sur des mailles non structur\u00e9es (triangles, t\u00e9tra\u00e8dres), m\u00eame un simple flux uniforme introduit une diffusion artificielle lorsque le flux traverse le maillage obliquement. La magnitude de diffusion est \u00e0 l&rsquo;\u00e9chelle de $sin^2(theta)$, o\u00f9 $theta$ est l&rsquo;angle de d\u00e9salignement.<\/p>\n<p>Cela explique pourquoi les simulations sur des maillages non structur\u00e9s n\u00e9cessitent souvent une r\u00e9solution plus fine que les maillages structur\u00e9s pour le m\u00eame probl\u00e8me d&rsquo;advection &#8211; la diffusion artificielle n&rsquo;est pas une propri\u00e9t\u00e9 du sch\u00e9ma, mais de l&rsquo;orientation du maillage.<\/p>\n<h2>Les r\u00e9gimes au vent et le compromis diffusion-stabilit\u00e9<\/h2>\n<p>Les sch\u00e9mas au vent ajoutent une diffusion num\u00e9rique pour stabiliser les calculs d&rsquo;advection. Mais combien de diffusion est introduite ? Et quelles alternatives existent ?<\/p>\n<h3>Ce que fait r\u00e9ellement le vent<\/h3>\n<p>Le contre-vent du premier ordre remplace la diff\u00e9rence centrale sym\u00e9trique :<\/p>\n<p>$$frac{Phi}{partielle x} approx frac{phi_{i+1} &#8211; phi_{i-1}}{2delta x}$$<\/p>\n<p>Avec une approximation sensible \u00e0 la direction&nbsp;:<\/p>\n<p>$$frac{partial phi}{partial x} approx frac{phi_i &#8211; phi_{i-1}}{delta x} quad text{(pour} a &gt; 0texte{)}$$<\/p>\n<p>Comme le montre l&rsquo;analyse de l&rsquo;Universit\u00e9 CFD, cette approximation au vent peut \u00eatre \u00e9crite exactement comme suit&nbsp;:<\/p>\n<p>$$text{upwind} = text{central} &#8211; frac{delta X}{2} frac{partial^2}{partial x^2}$$<\/p>\n<p>Le deuxi\u00e8me terme d\u00e9riv\u00e9 est la diffusion artificielle. Il supprime les ondes courtes et les gradients nets, c&rsquo;est pourquoi le vent est stable, mais aussi la raison pour laquelle il salue les fronts.<\/p>\n<h3>Comparaison de diffusion num\u00e9rique de Moose<\/h3>\n<p><a href=\"https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/numerical_diffusion.html\" target=\"_blank\" rel=\"nofollow noopener\">documentation num\u00e9rique de l&rsquo;orignal<\/a> Fournit la comparaison de diffusion num\u00e9rique la plus compl\u00e8te disponible dans toute documentation de solveur open source. Leur test d&rsquo;advection de traceur compare sept strat\u00e9gies de discr\u00e9tisation :<\/p>\n<table>\n<thead>\n<tr>\n<th>discr\u00e9tisation<\/th>\n<th>diffusion num\u00e9rique<\/th>\n<th>caract\u00e9ristique cl\u00e9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cadre (central)<\/td>\n<td>Mod\u00e9rer<\/td>\n<td>Deuxi\u00e8me ordre, inconditionnellement stable uniquement avec diffusion<\/td>\n<\/tr>\n<tr>\n<td>massif<\/td>\n<td>Faible \u00e0 mod\u00e9r\u00e9<\/td>\n<td>R\u00e9duction de la diffusion mais oscillations potentielles<\/td>\n<\/tr>\n<tr>\n<td>Plein au vent<\/td>\n<td><strong>Haut<\/strong><\/td>\n<td>Stabilit\u00e9 de premier ordre et garantie<\/td>\n<\/tr>\n<tr>\n<td>RDG P0 (constante par morceaux)<\/td>\n<td>Mod\u00e9rer<\/td>\n<td>DG avec polyn\u00f4me d&rsquo;ordre z\u00e9ro, flux au vent<\/td>\n<\/tr>\n<tr>\n<td><strong>RDG P0P1 (lin\u00e9aire + limiteur)<\/strong><\/td>\n<td><strong>faible<\/strong><\/td>\n<td><strong>R\u00e9duit la diffusion de 80&nbsp;% par rapport au vent plein<\/strong><\/td>\n<\/tr>\n<tr>\n<td>KT sans limiteur<\/td>\n<td>Faible \u00e0 mod\u00e9r\u00e9<\/td>\n<td>Sch\u00e9ma de Kuzmin-Turek, limite limit\u00e9e<\/td>\n<\/tr>\n<tr>\n<td>KT avec limiteur<\/td>\n<td><strong>Le plus bas<\/strong><\/td>\n<td><strong>La limitation des flux r\u00e9duit consid\u00e9rablement la diffusion<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le sch\u00e9ma <strong>RDG(P0P1)<\/strong> avec le limiteur de flux Superbee r\u00e9duit la diffusion num\u00e9rique de <strong>plus de 80&nbsp;%<\/strong> par rapport \u00e0 la remont\u00e9e compl\u00e8te tout en maintenant la monotonie. Il s&rsquo;agit d&rsquo;une preuve concr\u00e8te de la s\u00e9lection de la m\u00e9thode&nbsp;: la reconstruction lin\u00e9aire avec limitation du flux est largement sup\u00e9rieure \u00e0 celle du premier ordre pour les probl\u00e8mes de transport lorsque la r\u00e9solution est importante.<\/p>\n<h3>Quand utiliser les r\u00e9gimes complets contre le vent ou les r\u00e9gimes limit\u00e9s<\/h3>\n<p>Le <a href=\"https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/upwinding.html\" target=\"_blank\" rel=\"nofollow noopener\">documentation de moose en amont<\/a> fournit des conseils pratiques&nbsp;:<\/p>\n<ul>\n<li><strong>Utilisez le vent complet lorsque&nbsp;:<\/strong> La robustesse est la priorit\u00e9, la limite de la solution compte plus que la r\u00e9solution, ou vous r\u00e9solvez des probl\u00e8mes non lin\u00e9aires forts o\u00f9 les oscillations briseraient le solveur.<\/li>\n<li><strong>Utilisez des sch\u00e9mas d&rsquo;ordre sup\u00e9rieur limit\u00e9s lorsque&nbsp;:<\/strong> Les taux de transport sont mesur\u00e9s quantitativement, des fronts nets doivent \u00eatre r\u00e9solus ou le probl\u00e8me a des non-lin\u00e9arit\u00e9s faibles qui ne n\u00e9cessitent pas de remontage complet.<\/li>\n<\/ul>\n<p><strong>Le compromis pratique&nbsp;:<\/strong> Le contrevent complet est robuste mais trop diffusif. Les sch\u00e9mas limit\u00e9s pr\u00e9servent la r\u00e9solution mais ajoutent une complexit\u00e9 non lin\u00e9aire. Pour les simulations critiques pour la conservation (transport r\u00e9actif, mod\u00e8les de champ de phase), la complexit\u00e9 suppl\u00e9mentaire vaut g\u00e9n\u00e9ralement le gain de r\u00e9solution.<\/p>\n<h2>Formulations sym\u00e9triques pour la pr\u00e9servation de l&rsquo;\u00e9nergie<\/h2>\n<p>Lors de la simulation d&rsquo;un flux compressible ou d&rsquo;un syst\u00e8me de r\u00e9action, la conservation de l&rsquo;\u00e9nergie devient essentielle. Les formulations conservatrices standards de convection non lin\u00e9aire peuvent g\u00e9n\u00e9rer ou d\u00e9truire de mani\u00e8re fausse l&rsquo;\u00e9nergie cin\u00e9tique par des erreurs de repli. La solution, identifi\u00e9e dans une revue largement cit\u00e9e, consiste \u00e0 reformuler l&rsquo;op\u00e9rateur convectif.<\/p>\n<h3>Coppola 2019 : le split sym\u00e9trique<\/h3>\n<p>L&rsquo;examen fondateur de l&rsquo;ASME de 2019 de Coppola (95 citations) sur la conservation de l&rsquo;\u00e9nergie discr\u00e8te d\u00e9montre que <strong>les termes convectifs non lin\u00e9aires ne conservent l&rsquo;\u00e9nergie cin\u00e9tique que lorsqu&rsquo;ils sont formul\u00e9s sous forme divis\u00e9e<\/strong>. L&rsquo;id\u00e9e cl\u00e9 est que l&rsquo;op\u00e9rateur convectif doit \u00eatre divis\u00e9 en :<\/p>\n<ol>\n<li>A <strong>Forme conservatrice<\/strong> (formulaire de divergence)&nbsp;: $nabla cdot (mathbf{u} phi)$<\/li>\n<li>Une <strong>forme sym\u00e9trique en biais<\/strong>&nbsp;: $mathbf{u} cdot nabla phi &#8211; frac{1}{2} (nabla cdot mathbf{u})<\/li>\n<\/ol>\n<p>Lorsqu&rsquo;il est combin\u00e9, l&rsquo;op\u00e9rateur convectif discret devient adjoint d&rsquo;obstruction, ce qui signifie qu&rsquo;il pr\u00e9serve les invariants quadratiques comme l&rsquo;\u00e9nergie cin\u00e9tique sans dissipation artificielle. Cela emp\u00eache les erreurs d&rsquo;alias de cr\u00e9er (ou de d\u00e9truire) une \u00e9nergie fulgurante.<\/p>\n<p>Pour un flux incompressible ($nabla cdot mathbf{u} = 0$), la forme sym\u00e9trique est simplifi\u00e9e pour :<\/p>\n<p>$$mathbf{u} cdot nabla phi$$<\/p>\n<p>Pour le flux compressible, le terme de divergence est important et la scission sym\u00e9trique de biais devient essentielle pour la conservation de l&rsquo;\u00e9nergie.<\/p>\n<h3>Pourquoi cela est important pour les m\u00e9thodes DG<\/h3>\n<p>La m\u00e9thode stable d&rsquo;\u00e9nergie-stable de Galerkin (DGSEM), telle que d\u00e9velopp\u00e9e par Gassner et d&rsquo;autres, utilise ce fractionnement sym\u00e9trique pour assurer une conservation de l&rsquo;\u00e9nergie discr\u00e8te. Consultez le <a href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\" target=\"_blank\" rel=\"nofollow noopener\">Tutoriel de la m\u00e9thode DG<\/a> pour les d\u00e9tails de conception de Flux&nbsp;DG. Les m\u00e9thodes DG avec des flux entropiques et une s\u00e9paration convective sym\u00e9triques biais\u00e9es sont le dernier cri pour les simulations d&rsquo;\u00e9coulement compressible.<\/p>\n<h3>Lorsque les formulations sym\u00e9triques obliques sont essentielles<\/h3>\n<table>\n<thead>\n<tr>\n<th>Type de probl\u00e8me<\/th>\n<th>Forme standard suffisante ?<\/th>\n<th>Besoin d&rsquo;un biais sym\u00e9trique&nbsp;?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>D\u00e9bit incompressible, faible mach<\/td>\n<td>Parfois (si bien r\u00e9solu)<\/td>\n<td><strong>Oui, pour une stricte conservation de l&rsquo;\u00e9nergie<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flux compressible<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flux turbulent \/ LES<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flow r\u00e9actif avec couplage \u00e9nerg\u00e9tique<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Diffusion simple ou transport incompressible<\/td>\n<td>Non<\/td>\n<td>Facultatif (commodit\u00e9)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>V\u00e9rification de la conservation en pratique<\/h2>\n<p>La th\u00e9orie nous dit quels sch\u00e9mas conservent la masse et l&rsquo;\u00e9nergie. En pratique, vous devez le v\u00e9rifier. Voici un workflow \u00e9tape par \u00e9tape.<\/p>\n<h3>\u00c9tape&nbsp;1&nbsp;: D\u00e9finir la quantit\u00e9 de conservation<\/h3>\n<p>Identifiez les quantit\u00e9s physiques \u00e0 conserver. Choix courants :<\/p>\n<ul>\n<li><strong>Mass<\/strong> (int\u00e9grale de concentration ou de densit\u00e9 sur le domaine)<\/li>\n<li><strong>\u00c9nergie<\/strong> (\u00e9nergie thermique, \u00e9nergie cin\u00e9tique ou \u00e9nergie totale)<\/li>\n<li><strong>Masse des esp\u00e8ces<\/strong> (esp\u00e8ces chimiques individuelles)<\/li>\n<\/ul>\n<h3>\u00c9tape&nbsp;2&nbsp;: Calculez l&rsquo;int\u00e9grale discr\u00e8te<\/h3>\n<p>\u00c0 chaque pas de temps, calculez l&rsquo;int\u00e9grale du domaine&nbsp;:<\/p>\n<pre><code class=\"language-python\"># Mass conservation check in a scalar transport problem\nimport numpy as np\nfrom fipy import Grid2D, CellVariable\n\nmesh = Grid2D(nx=100, ny=100, dx=0.01, dy=0.01)\nphi = CellVariable(mesh=mesh, value=0.0)\n\n# Initial mass\ninitial_mass = np.sum(phi.value * mesh.cellVolumes)\nprint(f\"Initial mass: {initial_mass:.6f}\")\n\n# After simulation\nfinal_mass = np.sum(phi.value * mesh.cellVolumes)\nprint(f\"Final mass: {final_mass:.6f}\")\nprint(f\"Mass loss: {(initial_mass - final_mass) \/ initial_mass * 100:.4f}%\")<\/code><\/pre>\n<h3>\u00c9tape&nbsp;3&nbsp;: V\u00e9rifier les flux de limites<\/h3>\n<p>Les violations de la conservation proviennent g\u00e9n\u00e9ralement des limites. V\u00e9rifiez que&nbsp;:<\/p>\n<ul>\n<li>Les flux d&rsquo;entr\u00e9e correspondent aux valeurs limites prescrites<\/li>\n<li>Les limites de sortie ne limitent pas trop le probl\u00e8me<\/li>\n<li>Les limites sans flux ont vraiment un flux nul<\/li>\n<\/ul>\n<h3>\u00c9tape&nbsp;4&nbsp;: Comparez avec la r\u00e9f\u00e9rence<\/h3>\n<p>Le <a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">Guide de v\u00e9rification ou de validation<\/a> explique que la v\u00e9rification n\u00e9cessite une comparaison avec des solutions analytiques ou manufactur\u00e9es. Pour la v\u00e9rification de la conservation :<\/p>\n<ol>\n<li>Ex\u00e9cuter un probl\u00e8me de transport avec la masse initiale connue<\/li>\n<li>V\u00e9rifiez que la masse num\u00e9rique reste constante (dans la tol\u00e9rance) dans le temps<\/li>\n<li>Test sur plusieurs r\u00e9solutions de maillage &#8211; la conservation doit s&rsquo;am\u00e9liorer ou rester constante \u00e0 mesure que le maillage se raffine, et non se d\u00e9grade<\/li>\n<\/ol>\n<h3>\u00c9tape&nbsp;5&nbsp;: Documentez la tol\u00e9rance<\/h3>\n<p>D\u00e9finissez une tol\u00e9rance de conservation adapt\u00e9e \u00e0 votre probl\u00e8me&nbsp;:<\/p>\n<ul>\n<li><strong>Publication scientifique&nbsp;:<\/strong> Erreur de masse &lt;&nbsp;; 0,1&nbsp;%<\/li>\n<li><strong>Simulation d&rsquo;ing\u00e9nierie&nbsp;:<\/strong> Erreur de masse&nbsp;&lt;&nbsp;; 1%<\/li>\n<li><strong>Prototypage de recherche&nbsp;:<\/strong> Erreur de masse&nbsp;&lt;&nbsp;; 5% (mais documentez-le)<\/li>\n<\/ul>\n<h2>Application de la conservation avanc\u00e9e : m\u00e9thodes bas\u00e9es sur la relaxation<\/h2>\n<p>Lorsque la discr\u00e9tisation standard ne permet pas une conservation suffisante, les m\u00e9thodes r\u00e9centes offrent des corrections de post-traitement.<\/p>\n<h3>L&rsquo;ARXIV 2604.05940 R\u00e9sultat<\/h3>\n<p>Une pr\u00e9impression r\u00e9cente de Rajvanshi et Ketcheson (ARXIV 2604.05940, avril 2026) introduit <strong>Enforcement de la conservation bas\u00e9 sur la relaxation<\/strong> pour la masse et l&rsquo;\u00e9quilibre \u00e9nerg\u00e9tique. La m\u00e9thode fonctionne avec n&rsquo;importe quel sch\u00e9ma de pas de temps en ajoutant une correction de pas de temps apr\u00e8s le temps.<\/p>\n<p><strong>R\u00e9sultats cl\u00e9s&nbsp;:<\/strong><\/p>\n<ul>\n<li>R\u00e9alise la conservation de la pr\u00e9cision de la machine jusqu&rsquo;\u00e0 <strong>10\u207b\u00b9\u2074<\/strong><\/li>\n<li>Deux variantes&nbsp;: <strong>Relaxation multiple<\/strong> et <strong>Projection-relaxation<\/strong><\/li>\n<li><strong>Projection-relaxation<\/strong> est plus robuste et ne n\u00e9cessite que la r\u00e9solution d&rsquo;un probl\u00e8me de recherche de racine scalaire (2-3 \u00d7 co\u00fbt de calcul)<\/li>\n<li>Valid\u00e9 sur les cas de tests cosmologiques 2D et 3D<\/li>\n<\/ul>\n<p>La m\u00e9thode s&rsquo;applique aux sch\u00e9mas Runge-Kutta implicite-explicite (IMEX) et peut appliquer simultan\u00e9ment la conservation de masse et l&rsquo;\u00e9quilibre \u00e9nerg\u00e9tique. Ceci est particuli\u00e8rement utile pour les simulations o\u00f9 les violations de conservation s&rsquo;accumulent sur de longues p\u00e9riodes et d\u00e9gradent la fid\u00e9lit\u00e9 physique.<\/p>\n<p><strong>Quand utiliser des m\u00e9thodes bas\u00e9es sur la relaxation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Simulations de longue dur\u00e9e o\u00f9 de petites erreurs de conservation s&rsquo;accumulent<\/li>\n<li>Couplage multi-physique o\u00f9 les violations de conservation provoquent une instabilit\u00e9<\/li>\n<li>Des sch\u00e9mas d&rsquo;ordre \u00e9lev\u00e9 qui sacrifient une conservation stricte pour la r\u00e9solution<\/li>\n<li>Simulations de production o\u00f9 le bilan masse\/\u00e9nergie n&rsquo;est pas n\u00e9gociable<\/li>\n<\/ul>\n<h2>Cadre de d\u00e9cision pratique<\/h2>\n<p>Le choix d&rsquo;une discr\u00e9tisation pour les simulations critiques pour la conservation n\u00e9cessite de consid\u00e9rer plusieurs facteurs simultan\u00e9ment.<\/p>\n<h3>Matrice de s\u00e9lection de m\u00e9thode<\/h3>\n<table>\n<thead>\n<tr>\n<th>Situation<\/th>\n<th>Point de d\u00e9part recommand\u00e9<\/th>\n<th>Niveau de conservation<\/th>\n<th>Quand mettre \u00e0 niveau<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Transport de masse sur grille structur\u00e9e, stable<\/td>\n<td>Diff\u00e9rence centrale ou hybride<\/td>\n<td>Mod\u00e9r\u00e9 (FVM)<\/td>\n<td>Mettre \u00e0 niveau si les valeurs de cr\u00eate sont inexactes<\/td>\n<\/tr>\n<tr>\n<td>Transport r\u00e9actif avec fronts pointus<\/td>\n<td>Ordre plus \u00e9lev\u00e9 limit\u00e9 (p. ex., Moose RDG P0P1)<\/td>\n<td>Fort<\/td>\n<td>Utiliser uniquement si la r\u00e9solution est critique<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9bit compressible avec couplage \u00e9nerg\u00e9tique<\/td>\n<td>DG avec split sym\u00e9trique<\/td>\n<td>Fort (DGSEM)<\/td>\n<td>Obligatoire \u2014 Non facultatif<\/td>\n<\/tr>\n<tr>\n<td>Flux turbulent \/ LES<\/td>\n<td>M\u00e9thodes DG ou spectrales d&rsquo;ordre \u00e9lev\u00e9<\/td>\n<td>Fort<\/td>\n<td>Essentiel pour la fid\u00e9lit\u00e9 physique<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9bit de phase \/ multiphase<\/td>\n<td>FVM ou DG avec limiteurs de flux<\/td>\n<td>Fort<\/td>\n<td>Mise \u00e0 niveau si la r\u00e9solution de l&rsquo;interface est importante<\/td>\n<\/tr>\n<tr>\n<td>Diffusion simple, pas de convection forte<\/td>\n<td>FEM standard ou FVM<\/td>\n<td>Ad\u00e9quat<\/td>\n<td>Aucune mise \u00e0 niveau requise<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>R\u00e8glements<\/h3>\n<ol>\n<li><strong>Si la conservation n&rsquo;est pas n\u00e9gociable<\/strong> (la balance de masse\/\u00e9nergie doit \u00eatre exacte)&nbsp;: commencez par la FVM ou la DG. Le principe de coh\u00e9rence du flux le garantit par conception.<\/li>\n<li><strong>Si des fronts nets doivent \u00eatre r\u00e9solus<\/strong> sans oscillations parasites&nbsp;: utilisez des sch\u00e9mas d&rsquo;ordre sup\u00e9rieur limit\u00e9s (Moose RDG P0P1, Kuzmin-Turek avec limiteur). \u00c9vitez le plein au vent &#8211; cela r\u00e9duit la diffusion de moins que ce que les r\u00e9gimes limit\u00e9s r\u00e9alisent.<\/li>\n<li><strong>Si la conservation de l&rsquo;\u00e9nergie du flux compressible est importante<\/strong>&nbsp;: utiliser des formulations fractionn\u00e9es sym\u00e9triques en biais (Coppola 2019, Gassner DGSEM). Les formes conservatrices standard peuvent g\u00e9n\u00e9rer de l&rsquo;\u00e9nergie gr\u00e2ce \u00e0 l&rsquo;aliasing.<\/li>\n<li><strong>Si vous avez besoin d&rsquo;une conservation de masse stricte lors de longues simulations<\/strong>&nbsp;: consid\u00e9rez l&rsquo;application bas\u00e9e sur la relaxation (ARXIV&nbsp;2604.05940) comme une \u00e9tape de post-traitement \u00e0 un co\u00fbt de calcul de 2 \u00e0 3&nbsp;\u00d7.<\/li>\n<li><strong>Si la r\u00e9solution de maillage est limit\u00e9e<\/strong>&nbsp;: soyez conscient de la fausse diffusion sur des maillages non structur\u00e9s. Les grilles structur\u00e9es \u00e9vitent cela. Sur les mailles non structur\u00e9es, attendez-vous \u00e0 une diffusion artificielle plus \u00e9lev\u00e9e proportionnelle \u00e0 l&rsquo;angle de d\u00e9salignement du maillage de flux.<\/li>\n<\/ol>\n<h3>R\u00e9sum\u00e9 : ce qu&rsquo;il faut \u00e9viter<\/h3>\n<table>\n<thead>\n<tr>\n<th>Erreur<\/th>\n<th>Cons\u00e9quence<\/th>\n<th>R\u00e9parer<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>En supposant que toutes les discr\u00e9tisations conservent de mani\u00e8re \u00e9gale<\/td>\n<td>Perte de masse, \u00e9nergie parasite<\/td>\n<td>V\u00e9rifier la conservation avec des int\u00e9grales de domaine<\/td>\n<\/tr>\n<tr>\n<td>Utilisation de Full upwind lorsque des sch\u00e9mas limit\u00e9s sont disponibles<\/td>\n<td>80&nbsp;% de diffusion inutile<\/td>\n<td>Utilisez Moose RDG P0P1 ou similaire<\/td>\n<\/tr>\n<tr>\n<td>Ignorer la d\u00e9pendance \u00e0 la LFC de la viscosit\u00e9 artificielle<\/td>\n<td>Surestimer ou sous-estimer la diffusion<\/td>\n<td>V\u00e9rifier le num\u00e9ro CFL avec le maillage<\/td>\n<\/tr>\n<tr>\n<td>Utilisation de formes conservatrices standard pour un flux compressible<\/td>\n<td>G\u00e9n\u00e9ration d&rsquo;\u00e9nergie fallacieuse<\/td>\n<td>Utiliser le split sym\u00e9trique en biais (Coppola 2019)<\/td>\n<\/tr>\n<tr>\n<td>Ne tient pas compte du d\u00e9salignement du r\u00e9seau<\/td>\n<td>Fausse diffusion sur les mailles non structur\u00e9es<\/td>\n<td>Utilisez des grilles structur\u00e9es lorsque cela est possible<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>R\u00e9sum\u00e9 et \u00e9tapes suivantes<\/h2>\n<p>Les propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation sont d\u00e9termin\u00e9es par la coh\u00e9rence du flux entre les interfaces de cellules. FVM y parvient par la construction. La DG y parvient gr\u00e2ce \u00e0 des flux num\u00e9riques. La FEM standard n\u00e9cessite une conception soign\u00e9e.<\/p>\n<p>L&rsquo;id\u00e9e cl\u00e9 est que <strong>la diffusion num\u00e9rique n&rsquo;est pas une propri\u00e9t\u00e9 in\u00e9vitable des sch\u00e9mas d&rsquo;advection<\/strong> &#8211; elle d\u00e9pend du nombre de CFL, de l&rsquo;orientation du maillage et du choix du sch\u00e9ma. Le contrevent du premier ordre ajoute une viscosit\u00e9 artificielle qui dispara\u00eet \u00e0 la LCF = 1. Les sch\u00e9mas d&rsquo;ordre sup\u00e9rieur limit\u00e9 r\u00e9duisent la diffusion num\u00e9rique de plus de 80&nbsp;% par rapport au remontage complet. Les formulations sym\u00e9triques obliques emp\u00eachent la production d&rsquo;\u00e9nergie parasite dans un flux compressible.<\/p>\n<p>Pour les simulations critiques pour la conservation, v\u00e9rifiez toujours quantitativement la masse et l&rsquo;\u00e9quilibre \u00e9nerg\u00e9tique. Ne vous fiez pas uniquement au choix de la m\u00e9thode : le principe de coh\u00e9rence des flux est une garantie th\u00e9orique, mais votre impl\u00e9mentation sp\u00e9cifique doit \u00eatre v\u00e9rifi\u00e9e.<\/p>\n<p><strong>\u00c9tapes recommand\u00e9es&nbsp;:<\/strong><\/p>\n<ol>\n<li>Ex\u00e9cutez un test de conservation de masse sur votre simulation actuelle (calculez les int\u00e9grales du domaine \u00e0 chaque pas de temps)<\/li>\n<li>Si l&rsquo;erreur de conservation d\u00e9passe votre tol\u00e9rance, envisagez de passer \u00e0 des sch\u00e9mas d&rsquo;ordre sup\u00e9rieur limit\u00e9s<\/li>\n<li>Pour un flux compressible, v\u00e9rifiez que votre op\u00e9rateur convectif utilise un fractionnement sym\u00e9trique<\/li>\n<li>Envisagez une application bas\u00e9e sur la relaxation pour les simulations de longue dur\u00e9e o\u00f9 de petites erreurs s&rsquo;accumulent<\/li>\n<\/ol>\n<p>Le <a href=\"https:\/\/matforge.org\/advection-dominated-problems-supg-stabilization\/\" target=\"_blank\" rel=\"nofollow noopener\">Guide des probl\u00e8mes domin\u00e9s par l&rsquo;advection<\/a> sur matforge.org fournit des conseils compl\u00e9mentaires sur les strat\u00e9gies de stabilisation (SUPG, FLUX LIMITEURS, PECLET ANALYSE) qui accompagnent les propri\u00e9t\u00e9s de conservation couvertes ici.<\/p>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li>Coppola, S. (2019). Sur la conservation des invariants quadratiques dans les sch\u00e9mas num\u00e9riques pour les \u00e9quations compressibles d&rsquo;Euler et de Navier-Stokes. <em>Avis sur la m\u00e9canique appliqu\u00e9e ASME<\/em>, 71(1). 95 citations.<\/li>\n<li>Rajvanshi, A., &amp; Ketcheson, D.I. (2026). Sch\u00e9mas efficaces de conservation de masse et d&rsquo;\u00e9quilibrage d&rsquo;\u00e9nergie d&rsquo;ordre \u00e9lev\u00e9. <em>arxiv:2604.05940<\/em>.<\/li>\n<li>Documentation de diffusion num\u00e9rique de Moose&nbsp;: https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/numerical_diffusion.html<\/li>\n<li>Analyse d&rsquo;\u00e9quations modifi\u00e9es par l&rsquo;Universit\u00e9 CFD&nbsp;:<\/li>\n<\/ul>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/advection-dominated-problems-supg-stabilization\/\">probl\u00e8mes domin\u00e9s par advection&nbsp;: sch\u00e9mas au vent et stabilisation du SUPG<\/a> \u2014 R\u00e9f\u00e9rences crois\u00e9es pour les strat\u00e9gies de stabilisation (SUPG, FLUX LIMITEURS, ANALYSE PECLET)<\/li>\n<li><a href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\">Didacticiel sur la m\u00e9thode Galerkin discontinu<\/a> \u2014 Conception de flux DG et d\u00e9tails de conservation locaux<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\">V\u00e9rification vs validation dans les simulations scientifiques<\/a> \u2014 MMS et m\u00e9thodologie de v\u00e9rification<\/li>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">Quand utiliser FEM, FVM ou FDM<\/a> &#8211; s\u00e9lection de la m\u00e9thode, y compris les exigences de conservation<\/li>\n<li><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<\/a> \u2014 Discussion sur les erreurs temporelles et restrictions de la LCF<\/li>\n<\/ul>\n","protected":false,"raw":"<p><strong>tl;dr<\/strong><\/p>\n<ul>\n<li><strong>La conservation locale<\/strong> est garantie par la coh\u00e9rence du flux FVM&nbsp;; FEM et DG doivent concevoir des flux avec soin.<\/li>\n<li>Le contre-vent du premier ordre ajoute une viscosit\u00e9 artificielle \u2014 <strong>\u00e0 la LFC = 1, il dispara\u00eet<\/strong>, un r\u00e9sultat surprenant que la plupart des praticiens manquent.<\/li>\n<li>Le RDG de Moose (P0P1) avec limitation du flux r\u00e9duit la diffusion num\u00e9rique de <strong>plus de 80&nbsp;%<\/strong> par rapport \u00e0 la remont\u00e9e compl\u00e8te.<\/li>\n<li>Les formulations sym\u00e9triques de biais conservent l'\u00e9nergie cin\u00e9tique en emp\u00eachant les erreurs de cr\u00e9er de l'\u00e9nergie.<\/li>\n<li>Les nouvelles m\u00e9thodes de relaxation 2026 peuvent imposer une conservation de masse et d'\u00e9nergie \u00e0 la pr\u00e9cision de la machine (10\u207b\u00b9\u2074).<\/li>\n<\/ul>\n<h2>Pourquoi la discr\u00e9tisation change ce que votre simulation conserve<\/h2>\n<p>Lorsque vous discr\u00e9ditez une \u00e9quation aux d\u00e9riv\u00e9es partielles, vous ne choisissez pas seulement un ordre de pr\u00e9cision, vous choisissez les quantit\u00e9s physiques que votre solveur conserve. Masse, \u00e9nergie, quantit\u00e9 de mouvement : ces propri\u00e9t\u00e9s qui sont analytiquement garanties par les \u00e9quations continues peuvent dispara\u00eetre tranquillement (ou appara\u00eetre myst\u00e9rieusement) au niveau discret en fonction de votre conception de flux num\u00e9rique.<\/p>\n<p>Il s'agit de l'un des compromis les plus importants de la simulation scientifique, mais cela est souvent n\u00e9glig\u00e9 lors de la s\u00e9lection de la m\u00e9thode. Vous pourriez passer des heures \u00e0 ajuster les param\u00e8tres pour d\u00e9couvrir que le sch\u00e9ma de discr\u00e9tisation lui-m\u00eame introduit une perte de masse artificielle ou une production d'\u00e9nergie parasite.<\/p>\n<p>Le principe de base est simple&nbsp;: <strong>Le flux laissant une cellule doit \u00e9galer le flux entrant dans son voisin<\/strong>. Lorsque cela est vrai par la construction, vous avez une conservation locale. Lorsqu'il n\u00e9cessite une conception soign\u00e9e, vous devez le v\u00e9rifier. Comprendre cette distinction - et les outils pour la v\u00e9rifier - est la diff\u00e9rence entre la confiance de votre simulation et l'audit de chaque r\u00e9sultat.<\/p>\n<h2>Le principe de coh\u00e9rence des flux : conservation locale vs mondiale<\/h2>\n<p>La propri\u00e9t\u00e9 de conservation d'un sch\u00e9ma num\u00e9rique est d\u00e9termin\u00e9e par la coh\u00e9rence des flux num\u00e9riques entre les interfaces cellulaires. Ceci est connu dans la litt\u00e9rature sous le nom de <strong>principe de coh\u00e9rence des flux<\/strong>, et cela explique pourquoi certaines m\u00e9thodes conservent naturellement la masse alors que d'autres ne le font pas.<\/p>\n<h3>M\u00e9thode de volume fini : Conservation par construction<\/h3>\n<p>La m\u00e9thode de volume fini (FVM) garantit la conservation locale car elle \u00e9quilibre les flux entre les cellules par d\u00e9finition. Lorsque la masse s'\u00e9coule d'un seul volume de contr\u00f4le, la m\u00eame quantit\u00e9 s'\u00e9coule dans son voisin. Aucun flux num\u00e9rique ne peut \u00eatre cr\u00e9\u00e9 ou d\u00e9truit - la structure alg\u00e9brique de la discr\u00e9tisation impose automatiquement la conservation de la masse globale.<\/p>\n<p>FIPY met en \u0153uvre cela gr\u00e2ce \u00e0 sa structure d'\u00e9quation de conservation, o\u00f9 chaque terme de convection repr\u00e9sente un \u00e9quilibre de flux sur les faces des cellules. La <a href=\"https:\/\/pages.nist.gov\/fipy\/en\/latest\/numerical\/equation.html\" target=\"_blank\" rel=\"nofollow noopener\">Documentation de l'\u00e9quation de conservation FIPY<\/a> d\u00e9crit comment la conservation g\u00e9n\u00e9rale L'\u00e9quation impose exactement cette coh\u00e9rence de flux.<\/p>\n<pre><code class=\"language-python\"># FiPy conservation equation \u2014 fluxes are balanced by construction\nequation = TransientTerm(var=phi) == UpwindConvectionTerm(coeff=velocity)<\/code><\/pre>\n<h3>M\u00e9thode des \u00e9l\u00e9ments finis : la conservation n\u00e9cessite une conception<\/h3>\n<p>Les formulations standard d'\u00e9l\u00e9ments finis continus ne conservent pas <strong>pas<\/strong> automatiquement la masse localement. La forme faible s'int\u00e8gre sur des \u00e9l\u00e9ments, et les flux \u00e0 travers les fronti\u00e8res internes peuvent s'annuler globalement sans \u00eatre conserv\u00e9s localement. C'est pourquoi les formulations FEM standard peuvent perdre la conservation de la masse dans les probl\u00e8mes domin\u00e9s par l'advection.<\/p>\n<p>Cependant, la FEM peut atteindre la conservation locale gr\u00e2ce \u00e0 des flux num\u00e9riques sp\u00e9cialement con\u00e7us. La m\u00e9thode Galerkin discontinue (DG), par exemple, permet de conserver une forte conservation locale gr\u00e2ce \u00e0 ses flux d'interface - voir le <a didacticiel=\"\" sur=\"\" la=\"\" m\u00e9thode=\"\" href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\" target=\"_blank\" rel=\"nofollow noopener\">DG<\/a> pour une d\u00e9rivation d\u00e9taill\u00e9e. DG combine une approximation polynomiale d'ordre \u00e9lev\u00e9 avec une conservation \u00e0 base de flux qui refl\u00e8te la coh\u00e9rence du flux de FVM.<\/p>\n<h3>Ce que cela signifie pour la s\u00e9lection de la m\u00e9thode<\/h3>\n<table>\n<thead>\n<tr>\n<th>M\u00e9thode<\/th>\n<th>Conservation locale<\/th>\n<th>Comment il y parvient<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>volume fini<\/td>\n<td><strong>Fort \u2014 par construction<\/strong><\/td>\n<td>L'\u00e9quilibre des flux sur les faces cellulaires est une n\u00e9cessit\u00e9 alg\u00e9brique<\/td>\n<\/tr>\n<tr>\n<td>FEM continue<\/td>\n<td><strong>D\u00e9pend de la formulation<\/strong><\/td>\n<td>N\u00e9cessite une conception de flux prudente&nbsp;; pas automatique<\/td>\n<\/tr>\n<tr>\n<td>Galerkine discontinu<\/td>\n<td><strong>Forte \u2014 \u00e0 travers les flux<\/strong><\/td>\n<td>Les flux num\u00e9riques aux interfaces imposent l'\u00e9quilibre local<\/td>\n<\/tr>\n<tr>\n<td>diff\u00e9rence finie<\/td>\n<td><strong>Non garanti<\/strong><\/td>\n<td>Les d\u00e9riv\u00e9s n'imposent pas d'\u00e9quilibre de flux entre les cellules<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le <a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\" target=\"_blank\" rel=\"nofollow noopener\">Quand utiliser FEM, FVM ou FDM<\/a> Le guide sur matforge.org explique en d\u00e9tail ces compromis, y compris comment les exigences de conservation devraient conduire la s\u00e9lection de la m\u00e9thode avant que la g\u00e9om\u00e9trie ou la pr\u00e9cision ne soient prises en compte.<\/p>\n<h2>Erreur de troncature et viscosit\u00e9 artificielle<\/h2>\n<p>Chaque sch\u00e9ma num\u00e9rique introduit une erreur de troncature - une diff\u00e9rence entre l'op\u00e9rateur diff\u00e9rentiel exact et son approximation discr\u00e8te. Pour les sch\u00e9mas au vent, cette erreur de troncature a une interpr\u00e9tation physique : elle se comporte comme une diffusion artificielle (\u00e9galement appel\u00e9e viscosit\u00e9 num\u00e9rique).<\/p>\n<h3>La d\u00e9rivation de l'\u00e9quation modifi\u00e9e<\/h3>\n<p>La <a href=\"https:\/\/cfd.university\/blog\/what-is-numerical-dissipation-in-cfd-and-why-do-we-need-it\/\" target=\"_blank\" rel=\"nofollow noopener\">analyse par \u00e9quation modifi\u00e9e par l'Universit\u00e9 CFD<\/a> fournit la d\u00e9rivation compl\u00e8te. Voici le r\u00e9sultat essentiel.<\/p>\n<p>Pour une advection au vent du premier ordre avec une vitesse constante $A$&nbsp;:<\/p>\n<p>$$Frac{Phi}{partielle t} + a frac{Phi}{Partial X} = underbrace{frac{a delta x}{2}}_{text{viscosit\u00e9 artificielle Coefficient}} frac{partial^2 phi}{partial x^2} + o(delta x^2)$$<\/p>\n<p>L'erreur de troncature principale agit comme un terme de diffusion avec le coefficient $nu = a delta x \/ 2$. Cela explique \u00e0 la fois pourquoi l'upwind est stable (il ajoute de la diffusion) et pourquoi il enfonce les fronts (ce qui diffuse les profils).<\/p>\n<h3>Le num\u00e9ro CFL change tout<\/h3>\n<p>Voici le r\u00e9sultat non \u00e9vident que la plupart des praticiens manquent&nbsp;: lorsqu'une discr\u00e9tisation temporelle est incluse, le coefficient de viscosit\u00e9 artificielle devient <strong>d\u00e9pendant de la CFL<\/strong>. L'\u00e9quation modifi\u00e9e compl\u00e8te montre :<\/p>\n<p>$$nu = frac{a delta x}{2} (1 - text{cfl})$$<\/p>\n<p><strong>\u00c0 CFL&nbsp;=&nbsp;1, la diffusion artificielle dispara\u00eet.<\/strong> Cela explique quand le remontage est \"libre\" - aucune diffusion num\u00e9rique. De nombreux praticiens de la simulation op\u00e8rent sans le savoir \u00e0 la LCF = 1 et se demandent pourquoi leur sch\u00e9ma de remont\u00e9e au vent du premier ordre produit des r\u00e9sultats propres de mani\u00e8re inattendue. La formule d\u00e9pendante de la LCF explique pourquoi.<\/p>\n<p>Ce r\u00e9sultat a des implications pratiques importantes :<\/p>\n<ul>\n<li>\u00c0 CFL proche de 0 (tr\u00e8s petits pas de temps), le remontage introduit une diffusion artificielle maximale<\/li>\n<li>\u00c0 la LCF = 1 (le pas de temps est \u00e9gal \u00e0 un temps de transit cellulaire), le premier ordre au vent n'ajoute aucune diffusion artificielle<\/li>\n<li>\u00e0 la LFC &gt; 1, la formule sugg\u00e8re une instabilit\u00e9 potentielle - l'\u00e9quation modifi\u00e9e change de signe<\/li>\n<\/ul>\n<p>Notez que la discr\u00e9tisation temporelle contribue \u00e9galement \u00e0 la diffusion num\u00e9rique. Le choix de l'int\u00e9grateur temporel (Euler arri\u00e8re, Crank\u2013Nicolson, Runge-Kutta) affecte les caract\u00e9ristiques d'amortissement ind\u00e9pendamment du sch\u00e9ma spatial. Le guide <a href=\"https:\/\/matforge.org\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\" target=\"_blank\" rel=\"nofollow noopener\">M\u00e9thodes d'int\u00e9gration temporelle pour les solveurs PDE&nbsp;: sch\u00e9mas explicites ou implicites<\/a> explique comment l'erreur temporelle interagit avec la diffusion num\u00e9rique spatiale et comment les s\u00e9parer dans la v\u00e9rification.<\/p>\n<h3>Le d\u00e9salignement de la grille cr\u00e9e une \"fausse diffusion\"<\/h3>\n<p>M\u00eame avec un coefficient de diffusion physique nul et un d\u00e9bit parfaitement uniforme, <strong>Des mailles non structur\u00e9es introduisent une diffusion num\u00e9rique<\/strong> proportionnelle \u00e0 l'angle entre la direction du flux et les normales de la face de la cellule. C'est ce qu'on appelle \"false Diffusion\" ou \"crosswind diffusion\".<\/p>\n<p>Sur les grilles cart\u00e9siennes structur\u00e9es, le flux align\u00e9 avec un axe de coordonn\u00e9es est repr\u00e9sent\u00e9 proprement. Sur des mailles non structur\u00e9es (triangles, t\u00e9tra\u00e8dres), m\u00eame un simple flux uniforme introduit une diffusion artificielle lorsque le flux traverse le maillage obliquement. La magnitude de diffusion est \u00e0 l'\u00e9chelle de $sin^2(theta)$, o\u00f9 $theta$ est l'angle de d\u00e9salignement.<\/p>\n<p>Cela explique pourquoi les simulations sur des maillages non structur\u00e9s n\u00e9cessitent souvent une r\u00e9solution plus fine que les maillages structur\u00e9s pour le m\u00eame probl\u00e8me d'advection - la diffusion artificielle n'est pas une propri\u00e9t\u00e9 du sch\u00e9ma, mais de l'orientation du maillage.<\/p>\n<h2>Les r\u00e9gimes au vent et le compromis diffusion-stabilit\u00e9<\/h2>\n<p>Les sch\u00e9mas au vent ajoutent une diffusion num\u00e9rique pour stabiliser les calculs d'advection. Mais combien de diffusion est introduite ? Et quelles alternatives existent ?<\/p>\n<h3>Ce que fait r\u00e9ellement le vent<\/h3>\n<p>Le contre-vent du premier ordre remplace la diff\u00e9rence centrale sym\u00e9trique :<\/p>\n<p>$$frac{Phi}{partielle x} approx frac{phi_{i+1} - phi_{i-1}}{2delta x}$$<\/p>\n<p>Avec une approximation sensible \u00e0 la direction&nbsp;:<\/p>\n<p>$$frac{partial phi}{partial x} approx frac{phi_i - phi_{i-1}}{delta x} quad text{(pour} a &gt; 0texte{)}$$<\/p>\n<p>Comme le montre l'analyse de l'Universit\u00e9 CFD, cette approximation au vent peut \u00eatre \u00e9crite exactement comme suit&nbsp;:<\/p>\n<p>$$text{upwind} = text{central} - frac{delta X}{2} frac{partial^2}{partial x^2}$$<\/p>\n<p>Le deuxi\u00e8me terme d\u00e9riv\u00e9 est la diffusion artificielle. Il supprime les ondes courtes et les gradients nets, c'est pourquoi le vent est stable, mais aussi la raison pour laquelle il salue les fronts.<\/p>\n<h3>Comparaison de diffusion num\u00e9rique de Moose<\/h3>\n<p><a href=\"https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/numerical_diffusion.html\" target=\"_blank\" rel=\"nofollow noopener\">documentation num\u00e9rique de l'orignal<\/a> Fournit la comparaison de diffusion num\u00e9rique la plus compl\u00e8te disponible dans toute documentation de solveur open source. Leur test d'advection de traceur compare sept strat\u00e9gies de discr\u00e9tisation :<\/p>\n<table>\n<thead>\n<tr>\n<th>discr\u00e9tisation<\/th>\n<th>diffusion num\u00e9rique<\/th>\n<th>caract\u00e9ristique cl\u00e9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cadre (central)<\/td>\n<td>Mod\u00e9rer<\/td>\n<td>Deuxi\u00e8me ordre, inconditionnellement stable uniquement avec diffusion<\/td>\n<\/tr>\n<tr>\n<td>massif<\/td>\n<td>Faible \u00e0 mod\u00e9r\u00e9<\/td>\n<td>R\u00e9duction de la diffusion mais oscillations potentielles<\/td>\n<\/tr>\n<tr>\n<td>Plein au vent<\/td>\n<td><strong>Haut<\/strong><\/td>\n<td>Stabilit\u00e9 de premier ordre et garantie<\/td>\n<\/tr>\n<tr>\n<td>RDG P0 (constante par morceaux)<\/td>\n<td>Mod\u00e9rer<\/td>\n<td>DG avec polyn\u00f4me d'ordre z\u00e9ro, flux au vent<\/td>\n<\/tr>\n<tr>\n<td><strong>RDG P0P1 (lin\u00e9aire + limiteur)<\/strong><\/td>\n<td><strong>faible<\/strong><\/td>\n<td><strong>R\u00e9duit la diffusion de 80&nbsp;% par rapport au vent plein<\/strong><\/td>\n<\/tr>\n<tr>\n<td>KT sans limiteur<\/td>\n<td>Faible \u00e0 mod\u00e9r\u00e9<\/td>\n<td>Sch\u00e9ma de Kuzmin-Turek, limite limit\u00e9e<\/td>\n<\/tr>\n<tr>\n<td>KT avec limiteur<\/td>\n<td><strong>Le plus bas<\/strong><\/td>\n<td><strong>La limitation des flux r\u00e9duit consid\u00e9rablement la diffusion<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le sch\u00e9ma <strong>RDG(P0P1)<\/strong> avec le limiteur de flux Superbee r\u00e9duit la diffusion num\u00e9rique de <strong>plus de 80&nbsp;%<\/strong> par rapport \u00e0 la remont\u00e9e compl\u00e8te tout en maintenant la monotonie. Il s'agit d'une preuve concr\u00e8te de la s\u00e9lection de la m\u00e9thode&nbsp;: la reconstruction lin\u00e9aire avec limitation du flux est largement sup\u00e9rieure \u00e0 celle du premier ordre pour les probl\u00e8mes de transport lorsque la r\u00e9solution est importante.<\/p>\n<h3>Quand utiliser les r\u00e9gimes complets contre le vent ou les r\u00e9gimes limit\u00e9s<\/h3>\n<p>Le <a href=\"https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/upwinding.html\" target=\"_blank\" rel=\"nofollow noopener\">documentation de moose en amont<\/a> fournit des conseils pratiques&nbsp;:<\/p>\n<ul>\n<li><strong>Utilisez le vent complet lorsque&nbsp;:<\/strong> La robustesse est la priorit\u00e9, la limite de la solution compte plus que la r\u00e9solution, ou vous r\u00e9solvez des probl\u00e8mes non lin\u00e9aires forts o\u00f9 les oscillations briseraient le solveur.<\/li>\n<li><strong>Utilisez des sch\u00e9mas d'ordre sup\u00e9rieur limit\u00e9s lorsque&nbsp;:<\/strong> Les taux de transport sont mesur\u00e9s quantitativement, des fronts nets doivent \u00eatre r\u00e9solus ou le probl\u00e8me a des non-lin\u00e9arit\u00e9s faibles qui ne n\u00e9cessitent pas de remontage complet.<\/li>\n<\/ul>\n<p><strong>Le compromis pratique&nbsp;:<\/strong> Le contrevent complet est robuste mais trop diffusif. Les sch\u00e9mas limit\u00e9s pr\u00e9servent la r\u00e9solution mais ajoutent une complexit\u00e9 non lin\u00e9aire. Pour les simulations critiques pour la conservation (transport r\u00e9actif, mod\u00e8les de champ de phase), la complexit\u00e9 suppl\u00e9mentaire vaut g\u00e9n\u00e9ralement le gain de r\u00e9solution.<\/p>\n<h2>Formulations sym\u00e9triques pour la pr\u00e9servation de l'\u00e9nergie<\/h2>\n<p>Lors de la simulation d'un flux compressible ou d'un syst\u00e8me de r\u00e9action, la conservation de l'\u00e9nergie devient essentielle. Les formulations conservatrices standards de convection non lin\u00e9aire peuvent g\u00e9n\u00e9rer ou d\u00e9truire de mani\u00e8re fausse l'\u00e9nergie cin\u00e9tique par des erreurs de repli. La solution, identifi\u00e9e dans une revue largement cit\u00e9e, consiste \u00e0 reformuler l'op\u00e9rateur convectif.<\/p>\n<h3>Coppola 2019 : le split sym\u00e9trique<\/h3>\n<p>L'examen fondateur de l'ASME de 2019 de Coppola (95 citations) sur la conservation de l'\u00e9nergie discr\u00e8te d\u00e9montre que <strong>les termes convectifs non lin\u00e9aires ne conservent l'\u00e9nergie cin\u00e9tique que lorsqu'ils sont formul\u00e9s sous forme divis\u00e9e<\/strong>. L'id\u00e9e cl\u00e9 est que l'op\u00e9rateur convectif doit \u00eatre divis\u00e9 en :<\/p>\n<ol>\n<li>A <strong>Forme conservatrice<\/strong> (formulaire de divergence)&nbsp;: $nabla cdot (mathbf{u} phi)$<\/li>\n<li>Une <strong>forme sym\u00e9trique en biais<\/strong>&nbsp;: $mathbf{u} cdot nabla phi - frac{1}{2} (nabla cdot mathbf{u})<\/li>\n<\/ol>\n<p>Lorsqu'il est combin\u00e9, l'op\u00e9rateur convectif discret devient adjoint d'obstruction, ce qui signifie qu'il pr\u00e9serve les invariants quadratiques comme l'\u00e9nergie cin\u00e9tique sans dissipation artificielle. Cela emp\u00eache les erreurs d'alias de cr\u00e9er (ou de d\u00e9truire) une \u00e9nergie fulgurante.<\/p>\n<p>Pour un flux incompressible ($nabla cdot mathbf{u} = 0$), la forme sym\u00e9trique est simplifi\u00e9e pour :<\/p>\n<p>$$mathbf{u} cdot nabla phi$$<\/p>\n<p>Pour le flux compressible, le terme de divergence est important et la scission sym\u00e9trique de biais devient essentielle pour la conservation de l'\u00e9nergie.<\/p>\n<h3>Pourquoi cela est important pour les m\u00e9thodes DG<\/h3>\n<p>La m\u00e9thode stable d'\u00e9nergie-stable de Galerkin (DGSEM), telle que d\u00e9velopp\u00e9e par Gassner et d'autres, utilise ce fractionnement sym\u00e9trique pour assurer une conservation de l'\u00e9nergie discr\u00e8te. Consultez le <a href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\" target=\"_blank\" rel=\"nofollow noopener\">Tutoriel de la m\u00e9thode DG<\/a> pour les d\u00e9tails de conception de Flux&nbsp;DG. Les m\u00e9thodes DG avec des flux entropiques et une s\u00e9paration convective sym\u00e9triques biais\u00e9es sont le dernier cri pour les simulations d'\u00e9coulement compressible.<\/p>\n<h3>Lorsque les formulations sym\u00e9triques obliques sont essentielles<\/h3>\n<table>\n<thead>\n<tr>\n<th>Type de probl\u00e8me<\/th>\n<th>Forme standard suffisante ?<\/th>\n<th>Besoin d'un biais sym\u00e9trique&nbsp;?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>D\u00e9bit incompressible, faible mach<\/td>\n<td>Parfois (si bien r\u00e9solu)<\/td>\n<td><strong>Oui, pour une stricte conservation de l'\u00e9nergie<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flux compressible<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flux turbulent \/ LES<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Flow r\u00e9actif avec couplage \u00e9nerg\u00e9tique<\/td>\n<td><strong>Non<\/strong><\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Diffusion simple ou transport incompressible<\/td>\n<td>Non<\/td>\n<td>Facultatif (commodit\u00e9)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>V\u00e9rification de la conservation en pratique<\/h2>\n<p>La th\u00e9orie nous dit quels sch\u00e9mas conservent la masse et l'\u00e9nergie. En pratique, vous devez le v\u00e9rifier. Voici un workflow \u00e9tape par \u00e9tape.<\/p>\n<h3>\u00c9tape&nbsp;1&nbsp;: D\u00e9finir la quantit\u00e9 de conservation<\/h3>\n<p>Identifiez les quantit\u00e9s physiques \u00e0 conserver. Choix courants :<\/p>\n<ul>\n<li><strong>Mass<\/strong> (int\u00e9grale de concentration ou de densit\u00e9 sur le domaine)<\/li>\n<li><strong>\u00c9nergie<\/strong> (\u00e9nergie thermique, \u00e9nergie cin\u00e9tique ou \u00e9nergie totale)<\/li>\n<li><strong>Masse des esp\u00e8ces<\/strong> (esp\u00e8ces chimiques individuelles)<\/li>\n<\/ul>\n<h3>\u00c9tape&nbsp;2&nbsp;: Calculez l'int\u00e9grale discr\u00e8te<\/h3>\n<p>\u00c0 chaque pas de temps, calculez l'int\u00e9grale du domaine&nbsp;:<\/p>\n<pre><code class=\"language-python\"># Mass conservation check in a scalar transport problem\nimport numpy as np\nfrom fipy import Grid2D, CellVariable\n\nmesh = Grid2D(nx=100, ny=100, dx=0.01, dy=0.01)\nphi = CellVariable(mesh=mesh, value=0.0)\n\n# Initial mass\ninitial_mass = np.sum(phi.value * mesh.cellVolumes)\nprint(f\"Initial mass: {initial_mass:.6f}\")\n\n# After simulation\nfinal_mass = np.sum(phi.value * mesh.cellVolumes)\nprint(f\"Final mass: {final_mass:.6f}\")\nprint(f\"Mass loss: {(initial_mass - final_mass) \/ initial_mass * 100:.4f}%\")<\/code><\/pre>\n<h3>\u00c9tape&nbsp;3&nbsp;: V\u00e9rifier les flux de limites<\/h3>\n<p>Les violations de la conservation proviennent g\u00e9n\u00e9ralement des limites. V\u00e9rifiez que&nbsp;:<\/p>\n<ul>\n<li>Les flux d'entr\u00e9e correspondent aux valeurs limites prescrites<\/li>\n<li>Les limites de sortie ne limitent pas trop le probl\u00e8me<\/li>\n<li>Les limites sans flux ont vraiment un flux nul<\/li>\n<\/ul>\n<h3>\u00c9tape&nbsp;4&nbsp;: Comparez avec la r\u00e9f\u00e9rence<\/h3>\n<p>Le <a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">Guide de v\u00e9rification ou de validation<\/a> explique que la v\u00e9rification n\u00e9cessite une comparaison avec des solutions analytiques ou manufactur\u00e9es. Pour la v\u00e9rification de la conservation :<\/p>\n<ol>\n<li>Ex\u00e9cuter un probl\u00e8me de transport avec la masse initiale connue<\/li>\n<li>V\u00e9rifiez que la masse num\u00e9rique reste constante (dans la tol\u00e9rance) dans le temps<\/li>\n<li>Test sur plusieurs r\u00e9solutions de maillage - la conservation doit s'am\u00e9liorer ou rester constante \u00e0 mesure que le maillage se raffine, et non se d\u00e9grade<\/li>\n<\/ol>\n<h3>\u00c9tape&nbsp;5&nbsp;: Documentez la tol\u00e9rance<\/h3>\n<p>D\u00e9finissez une tol\u00e9rance de conservation adapt\u00e9e \u00e0 votre probl\u00e8me&nbsp;:<\/p>\n<ul>\n<li><strong>Publication scientifique&nbsp;:<\/strong> Erreur de masse &lt;&nbsp;; 0,1&nbsp;%<\/li>\n<li><strong>Simulation d'ing\u00e9nierie&nbsp;:<\/strong> Erreur de masse&nbsp;&lt;&nbsp;; 1%<\/li>\n<li><strong>Prototypage de recherche&nbsp;:<\/strong> Erreur de masse&nbsp;&lt;&nbsp;; 5% (mais documentez-le)<\/li>\n<\/ul>\n<h2>Application de la conservation avanc\u00e9e : m\u00e9thodes bas\u00e9es sur la relaxation<\/h2>\n<p>Lorsque la discr\u00e9tisation standard ne permet pas une conservation suffisante, les m\u00e9thodes r\u00e9centes offrent des corrections de post-traitement.<\/p>\n<h3>L'ARXIV 2604.05940 R\u00e9sultat<\/h3>\n<p>Une pr\u00e9impression r\u00e9cente de Rajvanshi et Ketcheson (ARXIV 2604.05940, avril 2026) introduit <strong>Enforcement de la conservation bas\u00e9 sur la relaxation<\/strong> pour la masse et l'\u00e9quilibre \u00e9nerg\u00e9tique. La m\u00e9thode fonctionne avec n'importe quel sch\u00e9ma de pas de temps en ajoutant une correction de pas de temps apr\u00e8s le temps.<\/p>\n<p><strong>R\u00e9sultats cl\u00e9s&nbsp;:<\/strong><\/p>\n<ul>\n<li>R\u00e9alise la conservation de la pr\u00e9cision de la machine jusqu'\u00e0 <strong>10\u207b\u00b9\u2074<\/strong><\/li>\n<li>Deux variantes&nbsp;: <strong>Relaxation multiple<\/strong> et <strong>Projection-relaxation<\/strong><\/li>\n<li><strong>Projection-relaxation<\/strong> est plus robuste et ne n\u00e9cessite que la r\u00e9solution d'un probl\u00e8me de recherche de racine scalaire (2-3 \u00d7 co\u00fbt de calcul)<\/li>\n<li>Valid\u00e9 sur les cas de tests cosmologiques 2D et 3D<\/li>\n<\/ul>\n<p>La m\u00e9thode s'applique aux sch\u00e9mas Runge-Kutta implicite-explicite (IMEX) et peut appliquer simultan\u00e9ment la conservation de masse et l'\u00e9quilibre \u00e9nerg\u00e9tique. Ceci est particuli\u00e8rement utile pour les simulations o\u00f9 les violations de conservation s'accumulent sur de longues p\u00e9riodes et d\u00e9gradent la fid\u00e9lit\u00e9 physique.<\/p>\n<p><strong>Quand utiliser des m\u00e9thodes bas\u00e9es sur la relaxation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Simulations de longue dur\u00e9e o\u00f9 de petites erreurs de conservation s'accumulent<\/li>\n<li>Couplage multi-physique o\u00f9 les violations de conservation provoquent une instabilit\u00e9<\/li>\n<li>Des sch\u00e9mas d'ordre \u00e9lev\u00e9 qui sacrifient une conservation stricte pour la r\u00e9solution<\/li>\n<li>Simulations de production o\u00f9 le bilan masse\/\u00e9nergie n'est pas n\u00e9gociable<\/li>\n<\/ul>\n<h2>Cadre de d\u00e9cision pratique<\/h2>\n<p>Le choix d'une discr\u00e9tisation pour les simulations critiques pour la conservation n\u00e9cessite de consid\u00e9rer plusieurs facteurs simultan\u00e9ment.<\/p>\n<h3>Matrice de s\u00e9lection de m\u00e9thode<\/h3>\n<table>\n<thead>\n<tr>\n<th>Situation<\/th>\n<th>Point de d\u00e9part recommand\u00e9<\/th>\n<th>Niveau de conservation<\/th>\n<th>Quand mettre \u00e0 niveau<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Transport de masse sur grille structur\u00e9e, stable<\/td>\n<td>Diff\u00e9rence centrale ou hybride<\/td>\n<td>Mod\u00e9r\u00e9 (FVM)<\/td>\n<td>Mettre \u00e0 niveau si les valeurs de cr\u00eate sont inexactes<\/td>\n<\/tr>\n<tr>\n<td>Transport r\u00e9actif avec fronts pointus<\/td>\n<td>Ordre plus \u00e9lev\u00e9 limit\u00e9 (p. ex., Moose RDG P0P1)<\/td>\n<td>Fort<\/td>\n<td>Utiliser uniquement si la r\u00e9solution est critique<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9bit compressible avec couplage \u00e9nerg\u00e9tique<\/td>\n<td>DG avec split sym\u00e9trique<\/td>\n<td>Fort (DGSEM)<\/td>\n<td>Obligatoire \u2014 Non facultatif<\/td>\n<\/tr>\n<tr>\n<td>Flux turbulent \/ LES<\/td>\n<td>M\u00e9thodes DG ou spectrales d'ordre \u00e9lev\u00e9<\/td>\n<td>Fort<\/td>\n<td>Essentiel pour la fid\u00e9lit\u00e9 physique<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9bit de phase \/ multiphase<\/td>\n<td>FVM ou DG avec limiteurs de flux<\/td>\n<td>Fort<\/td>\n<td>Mise \u00e0 niveau si la r\u00e9solution de l'interface est importante<\/td>\n<\/tr>\n<tr>\n<td>Diffusion simple, pas de convection forte<\/td>\n<td>FEM standard ou FVM<\/td>\n<td>Ad\u00e9quat<\/td>\n<td>Aucune mise \u00e0 niveau requise<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>R\u00e8glements<\/h3>\n<ol>\n<li><strong>Si la conservation n'est pas n\u00e9gociable<\/strong> (la balance de masse\/\u00e9nergie doit \u00eatre exacte)&nbsp;: commencez par la FVM ou la DG. Le principe de coh\u00e9rence du flux le garantit par conception.<\/li>\n<li><strong>Si des fronts nets doivent \u00eatre r\u00e9solus<\/strong> sans oscillations parasites&nbsp;: utilisez des sch\u00e9mas d'ordre sup\u00e9rieur limit\u00e9s (Moose RDG P0P1, Kuzmin-Turek avec limiteur). \u00c9vitez le plein au vent - cela r\u00e9duit la diffusion de moins que ce que les r\u00e9gimes limit\u00e9s r\u00e9alisent.<\/li>\n<li><strong>Si la conservation de l'\u00e9nergie du flux compressible est importante<\/strong>&nbsp;: utiliser des formulations fractionn\u00e9es sym\u00e9triques en biais (Coppola 2019, Gassner DGSEM). Les formes conservatrices standard peuvent g\u00e9n\u00e9rer de l'\u00e9nergie gr\u00e2ce \u00e0 l'aliasing.<\/li>\n<li><strong>Si vous avez besoin d'une conservation de masse stricte lors de longues simulations<\/strong>&nbsp;: consid\u00e9rez l'application bas\u00e9e sur la relaxation (ARXIV&nbsp;2604.05940) comme une \u00e9tape de post-traitement \u00e0 un co\u00fbt de calcul de 2 \u00e0 3&nbsp;\u00d7.<\/li>\n<li><strong>Si la r\u00e9solution de maillage est limit\u00e9e<\/strong>&nbsp;: soyez conscient de la fausse diffusion sur des maillages non structur\u00e9s. Les grilles structur\u00e9es \u00e9vitent cela. Sur les mailles non structur\u00e9es, attendez-vous \u00e0 une diffusion artificielle plus \u00e9lev\u00e9e proportionnelle \u00e0 l'angle de d\u00e9salignement du maillage de flux.<\/li>\n<\/ol>\n<h3>R\u00e9sum\u00e9 : ce qu'il faut \u00e9viter<\/h3>\n<table>\n<thead>\n<tr>\n<th>Erreur<\/th>\n<th>Cons\u00e9quence<\/th>\n<th>R\u00e9parer<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>En supposant que toutes les discr\u00e9tisations conservent de mani\u00e8re \u00e9gale<\/td>\n<td>Perte de masse, \u00e9nergie parasite<\/td>\n<td>V\u00e9rifier la conservation avec des int\u00e9grales de domaine<\/td>\n<\/tr>\n<tr>\n<td>Utilisation de Full upwind lorsque des sch\u00e9mas limit\u00e9s sont disponibles<\/td>\n<td>80&nbsp;% de diffusion inutile<\/td>\n<td>Utilisez Moose RDG P0P1 ou similaire<\/td>\n<\/tr>\n<tr>\n<td>Ignorer la d\u00e9pendance \u00e0 la LFC de la viscosit\u00e9 artificielle<\/td>\n<td>Surestimer ou sous-estimer la diffusion<\/td>\n<td>V\u00e9rifier le num\u00e9ro CFL avec le maillage<\/td>\n<\/tr>\n<tr>\n<td>Utilisation de formes conservatrices standard pour un flux compressible<\/td>\n<td>G\u00e9n\u00e9ration d'\u00e9nergie fallacieuse<\/td>\n<td>Utiliser le split sym\u00e9trique en biais (Coppola 2019)<\/td>\n<\/tr>\n<tr>\n<td>Ne tient pas compte du d\u00e9salignement du r\u00e9seau<\/td>\n<td>Fausse diffusion sur les mailles non structur\u00e9es<\/td>\n<td>Utilisez des grilles structur\u00e9es lorsque cela est possible<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>R\u00e9sum\u00e9 et \u00e9tapes suivantes<\/h2>\n<p>Les propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation sont d\u00e9termin\u00e9es par la coh\u00e9rence du flux entre les interfaces de cellules. FVM y parvient par la construction. La DG y parvient gr\u00e2ce \u00e0 des flux num\u00e9riques. La FEM standard n\u00e9cessite une conception soign\u00e9e.<\/p>\n<p>L'id\u00e9e cl\u00e9 est que <strong>la diffusion num\u00e9rique n'est pas une propri\u00e9t\u00e9 in\u00e9vitable des sch\u00e9mas d'advection<\/strong> - elle d\u00e9pend du nombre de CFL, de l'orientation du maillage et du choix du sch\u00e9ma. Le contrevent du premier ordre ajoute une viscosit\u00e9 artificielle qui dispara\u00eet \u00e0 la LCF = 1. Les sch\u00e9mas d'ordre sup\u00e9rieur limit\u00e9 r\u00e9duisent la diffusion num\u00e9rique de plus de 80&nbsp;% par rapport au remontage complet. Les formulations sym\u00e9triques obliques emp\u00eachent la production d'\u00e9nergie parasite dans un flux compressible.<\/p>\n<p>Pour les simulations critiques pour la conservation, v\u00e9rifiez toujours quantitativement la masse et l'\u00e9quilibre \u00e9nerg\u00e9tique. Ne vous fiez pas uniquement au choix de la m\u00e9thode : le principe de coh\u00e9rence des flux est une garantie th\u00e9orique, mais votre impl\u00e9mentation sp\u00e9cifique doit \u00eatre v\u00e9rifi\u00e9e.<\/p>\n<p><strong>\u00c9tapes recommand\u00e9es&nbsp;:<\/strong><\/p>\n<ol>\n<li>Ex\u00e9cutez un test de conservation de masse sur votre simulation actuelle (calculez les int\u00e9grales du domaine \u00e0 chaque pas de temps)<\/li>\n<li>Si l'erreur de conservation d\u00e9passe votre tol\u00e9rance, envisagez de passer \u00e0 des sch\u00e9mas d'ordre sup\u00e9rieur limit\u00e9s<\/li>\n<li>Pour un flux compressible, v\u00e9rifiez que votre op\u00e9rateur convectif utilise un fractionnement sym\u00e9trique<\/li>\n<li>Envisagez une application bas\u00e9e sur la relaxation pour les simulations de longue dur\u00e9e o\u00f9 de petites erreurs s'accumulent<\/li>\n<\/ol>\n<p>Le <a href=\"https:\/\/matforge.org\/advection-dominated-problems-supg-stabilization\/\" target=\"_blank\" rel=\"nofollow noopener\">Guide des probl\u00e8mes domin\u00e9s par l'advection<\/a> sur matforge.org fournit des conseils compl\u00e9mentaires sur les strat\u00e9gies de stabilisation (SUPG, FLUX LIMITEURS, PECLET ANALYSE) qui accompagnent les propri\u00e9t\u00e9s de conservation couvertes ici.<\/p>\n<h2>Lectures compl\u00e9mentaires<\/h2>\n<ul>\n<li>Coppola, S. (2019). Sur la conservation des invariants quadratiques dans les sch\u00e9mas num\u00e9riques pour les \u00e9quations compressibles d'Euler et de Navier-Stokes. <em>Avis sur la m\u00e9canique appliqu\u00e9e ASME<\/em>, 71(1). 95 citations.<\/li>\n<li>Rajvanshi, A., &amp; Ketcheson, D.I. (2026). Sch\u00e9mas efficaces de conservation de masse et d'\u00e9quilibrage d'\u00e9nergie d'ordre \u00e9lev\u00e9. <em>arxiv:2604.05940<\/em>.<\/li>\n<li>Documentation de diffusion num\u00e9rique de Moose&nbsp;: https:\/\/mooseframework.inl.gov\/modules\/porous_flow\/numerical_diffusion.html<\/li>\n<li>Analyse d'\u00e9quations modifi\u00e9es par l'Universit\u00e9 CFD&nbsp;:<\/li>\n<\/ul>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/advection-dominated-problems-supg-stabilization\/\">probl\u00e8mes domin\u00e9s par advection&nbsp;: sch\u00e9mas au vent et stabilisation du SUPG<\/a> \u2014 R\u00e9f\u00e9rences crois\u00e9es pour les strat\u00e9gies de stabilisation (SUPG, FLUX LIMITEURS, ANALYSE PECLET)<\/li>\n<li><a href=\"https:\/\/matforge.org\/discontinuous-galerkin-method-tutorial\/\">Didacticiel sur la m\u00e9thode Galerkin discontinu<\/a> \u2014 Conception de flux DG et d\u00e9tails de conservation locaux<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\">V\u00e9rification vs validation dans les simulations scientifiques<\/a> \u2014 MMS et m\u00e9thodologie de v\u00e9rification<\/li>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">Quand utiliser FEM, FVM ou FDM<\/a> - s\u00e9lection de la m\u00e9thode, y compris les exigences de conservation<\/li>\n<li><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<\/a> \u2014 Discussion sur les erreurs temporelles et restrictions de la LCF<\/li>\n<\/ul>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>tl;dr La conservation locale est garantie par la coh\u00e9rence du flux FVM&nbsp;; FEM et DG doivent concevoir des flux avec soin. Le contre-vent du premier ordre ajoute une viscosit\u00e9 artificielle \u2014 \u00e0 la LFC = 1, il dispara\u00eet, un r\u00e9sultat surprenant que la plupart des praticiens manquent. Le RDG de Moose (P0P1) avec limitation du [&hellip;]<\/p>\n","protected":false,"raw":""},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=506","iawp_total_views":1,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1287","post","type-post","status-publish","format-standard","hentry","category-fipy-documentation-examples-development","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&#039;\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&#039;\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org\" \/>\n<meta property=\"og:description\" content=\"Reading Time:  12 minutestl;dr La conservation locale est garantie par la coh\u00e9rence du flux FVM&nbsp;; FEM et DG doivent concevoir des flux avec soin. Le contre-vent du premier ordre ajoute une viscosit\u00e9 artificielle \u2014 \u00e0 la LFC = 1, il dispara\u00eet, un r\u00e9sultat surprenant que la plupart des praticiens manquent. Le RDG de Moose (P0P1) avec limitation du [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:31:23+00:00\" \/>\n<meta name=\"author\" content=\"Priya Nair\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Nair\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/\"},\"author\":{\"name\":\"Priya Nair\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/2effd7bc155a5e6357f31dac970c5795\"},\"headline\":\"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&rsquo;\u00e9quilibre massique et \u00e9nerg\u00e9tique\",\"datePublished\":\"2026-08-21T14:31:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/\"},\"wordCount\":4045,\"commentCount\":0,\"articleSection\":[\"FIPY : documentation, exemples &amp; D\u00e9veloppement\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/\",\"name\":\"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l'\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:31:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/2effd7bc155a5e6357f31dac970c5795\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&#8217;\u00e9quilibre massique et \u00e9nerg\u00e9tique\"}]},{\"@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\\\/2effd7bc155a5e6357f31dac970c5795\",\"name\":\"Priya Nair\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"caption\":\"Priya Nair\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/priya-nair\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l'\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/","og_locale":"fr_FR","og_type":"article","og_title":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l'\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org","og_description":"Reading Time:  12 minutestl;dr La conservation locale est garantie par la coh\u00e9rence du flux FVM&nbsp;; FEM et DG doivent concevoir des flux avec soin. Le contre-vent du premier ordre ajoute une viscosit\u00e9 artificielle \u2014 \u00e0 la LFC = 1, il dispara\u00eet, un r\u00e9sultat surprenant que la plupart des praticiens manquent. Le RDG de Moose (P0P1) avec limitation du [&hellip;]","og_url":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:31:23+00:00","author":"Priya Nair","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Priya Nair","Dur\u00e9e de lecture estim\u00e9e":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/"},"author":{"name":"Priya Nair","@id":"https:\/\/matforge.org\/#\/schema\/person\/2effd7bc155a5e6357f31dac970c5795"},"headline":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&rsquo;\u00e9quilibre massique et \u00e9nerg\u00e9tique","datePublished":"2026-08-21T14:31:23+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/"},"wordCount":4045,"commentCount":0,"articleSection":["FIPY : documentation, exemples &amp; D\u00e9veloppement"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/","url":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/","name":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l'\u00e9quilibre massique et \u00e9nerg\u00e9tique - matforge.org","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:31:23+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/2effd7bc155a5e6357f31dac970c5795"},"breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/conservation-properties-in-discretization-ensuring-mass-and-energy-balance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"Propri\u00e9t\u00e9s de conservation dans la discr\u00e9tisation : assurer l&#8217;\u00e9quilibre massique et \u00e9nerg\u00e9tique"}]},{"@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\/2effd7bc155a5e6357f31dac970c5795","name":"Priya Nair","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","caption":"Priya Nair"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/priya-nair\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1287","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1287"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1287\/revisions"}],"predecessor-version":[{"id":1403,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1287\/revisions\/1403"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}