Apprendre la CFD à partir de zéro : écrire un petit solveur, le voir échouer, gravir des cas de référence aux réponses publiées, puis apprendre le logiciel.

Illustration DEEB-FLOW d’un montage expérimental servant à valider une simulation
Illustration conceptuelle interactive : le coefficient d’échange local le long d’un tube chauffé, d’après le cas DEEB-FLOW. Déplacez le pointeur pour raffiner le maillage de 4 à 32 cellules : les paliers calculés convergent vers leur courbe indépendante du maillage (en tirets), et la ligne de lecture donne l’indice de convergence de maillage. L’écart qui subsiste avec les points mesurés et leurs barres d’incertitude est ce que juge la validation. Les valeurs sont illustratives.

Une belle image et trois questions

Un étudiant vous montre un magnifique champ d’écoulement autour d’une voiture. Des couleurs douces, des lignes de courant crédibles, un coefficient de traînée à trois décimales. Vous posez trois questions : quel était le y+ sur la carrosserie, le bilan de masse était-il bouclé, et de combien la traînée a-t-elle changé quand le maillage a été raffiné ? Aucune n’a de réponse.

Cet étudiant a appris un logiciel de CFD. Il n’a pas encore appris la CFD.

Pour apprendre la CFD à partir de zéro, apprenez à distinguer une réponse juste d’une réponse assurée. En pratique, cela fait quatre étapes, dans cet ordre : les quelques notions de mathématiques qui expliquent pourquoi les solutions numériques se trompent, un petit solveur que vous écrivez vous-même et cassez exprès, une échelle de cas de référence aux réponses publiées, et seulement ensuite un logiciel commercial ou libre. Cet article décrit ce parcours, avec un exemple chiffré qui montre en dix lignes d’algèbre la leçon la plus importante de la discipline, et un plan semaine par semaine à la fin.

Que veut dire apprendre la CFD ?

Trois choses, et le logiciel vient en quatrième, celle qui compte le moins.

  • La physique. Ce que disent les équations de conservation, ce que fait chaque terme et quels termes dominent dans votre problème. Un nombre de Reynolds, un nombre de Péclet et un nombre de Mach en disent plus sur un écoulement avant le maillage que la plupart des cartes de couleurs après le calcul.
  • Le numérique. Comment une équation continue devient de l’algèbre, et quelle erreur cela introduit. Toute réponse en volumes finis est fausse d’une erreur de discrétisation, et le savoir-faire consiste à en connaître la taille et la nature.
  • Le jugement. Décider quoi modéliser, vérifier que les chiffres sont convergés, que les bilans bouclent et que le résultat est peu sensible au maillage, et comparer avec quelque chose d’indépendant. C’est la vérification et la validation, et c’est ce que paient employeurs et clients.
  • Le logiciel est l’interface vers ces trois éléments. Il s’apprend en quelques semaines une fois le reste en place, et il change de toute façon à chaque version.

Les mathématiques nécessaires, et pourquoi

Moins que ce que beaucoup craignent, et plus que ce qu’admettent la plupart des tutoriels.

Il faut le calcul vectoriel (divergence, gradient, théorème de la divergence), car la méthode des volumes finis est le théorème de la divergence appliqué à une petite boîte. Il faut reconnaître les trois classes d’équations aux dérivées partielles, car elles se comportent différemment : les problèmes elliptiques (diffusion stationnaire, pression) ressentent toutes les frontières à la fois, les problèmes paraboliques (diffusion instationnaire) avancent dans le temps, et les problèmes hyperboliques (convection pure, ondes, chocs) transportent l’information le long des caractéristiques et punissent les schémas qui ignorent le sens de l’écoulement.

Et il faut les séries de Taylor, car c’est de là que vient l’erreur de discrétisation. Développez une fonction régulière autour d’un point et prenez les différences :

φ(x + Δx) = φ + Δx φ′ + (Δx²/2) φ″ + (Δx³/6) φ‴ + …φ(x − Δx) = φ − Δx φ′ + (Δx²/2) φ″ − (Δx³/6) φ‴ + …D_c φ = [φ(x + Δx) − φ(x − Δx)] / (2Δx) = φ′ + (Δx²/6) φ‴ + …D_u φ = [φ(x) − φ(x − Δx)] / Δx = φ′ − (Δx/2) φ″ + …

Ici D_c est la différence centrée et D_u la différence amont. La différence centrée est d’ordre deux : divisez la taille de maille par deux et l’erreur principale est divisée par quatre. La différence amont est d’ordre un, et son terme d’erreur principal est proportionnel à une dérivée seconde. Retenez cela. C’est toute la section suivante.

Écrivez un petit solveur et cassez-le

Avant d’ouvrir une interface commerciale, écrivez un solveur d’une quarantaine de lignes. Vous apprendrez davantage en le regardant échouer qu’en un mois de tutoriels.

Un point de départ gratuit et bien fait est CFD Python, les « 12 étapes vers Navier-Stokes » de Lorena Barba et Gilbert Forsyth : des carnets Jupyter qui vont de la convection linéaire 1D à la diffusion, à l’équation de Burgers, aux équations de Laplace et de Poisson, jusqu’à l’écoulement 2D en cavité et en canal. Le contenu est sous licence CC-BY 4.0 et le code sous BSD-3 : vous pouvez les utiliser et les adapter librement.

Faites ensuite la seule expérience que tout ingénieur CFD devrait avoir faite de ses propres mains.

Exemple chiffré : le nombre de Péclet de maille

Prenons la convection-diffusion stationnaire et unidimensionnelle d’un scalaire φ sur 0 ≤ x ≤ L, avec φ(0) = 0 et φ(L) = 1. L’équation et sa solution exacte sont :

d(ρuφ)/dx = d/dx (Γ dφ/dx)φ(x) = [exp(Pe·x/L) − 1] / [exp(Pe) − 1], Pe = ρuL / Γ

Avec Pe = 50, la solution est presque nulle sur tout le domaine et monte brutalement dans une couche mince à l’extrémité droite. En x = 0,9 L, la valeur exacte vaut environ exp(−5) ≈ 0,007.

Discrétisons avec N mailles uniformes. La grandeur qui gouverne tout est le nombre de Péclet de maille, Pe_Δ = ρuΔx / Γ = Pe / N. Sur un maillage uniforme, chaque schéma se ramène à une relation de récurrence dont les solutions croissent d’un nœud à l’autre selon un rapport fixe, et ce rapport dit ce que fait le schéma :

φ(i+1) / φ(i) → exp(Pe_Δ)r_c = (1 + Pe_Δ/2) / (1 − Pe_Δ/2)r_u = 1 + Pe_Δ

La première ligne est le rapport exact entre nœuds voisins, r_c le rapport produit par le schéma centré et r_u celui produit par le schéma amont du premier ordre.

Sur 10 mailles, Pe_Δ = 5 :

SchémaRapport entre nœuds voisinsCe que vous voyez
Exacteexp(5) ≈ 148Une couche raide dans la dernière maille
Centré(1 + 2.5)/(1 − 2.5) ≈ −2.33Le signe change d’un nœud à l’autre : oscillations, et valeurs hors de l’intervalle de 0 à 1
Amont1 + 5 = 6Lisse, monotone, et une couche beaucoup trop épaisse

Sur 40 mailles, Pe_Δ = 1,25 : le schéma centré donne un rapport d’environ 4,3 contre 3,5 en exact, lisse et proche ; le schéma amont donne 2,25, encore visiblement étalé.

Deux leçons en découlent, et ce sont les plus importantes de cet article.

Le schéma centré oscille quand Pe_Δ > 2. Le rapport devient négatif, et la solution présente des oscillations qui n’ont rien de physique. C’est le résultat classique du manuel de Patankar, et c’est pourquoi les solveurs commerciaux n’utilisent pas de schéma centré pur pour la convection dans la plupart des écoulements.

Le schéma amont n’oscille jamais et se trompe d’une façon qui a l’air juste. L’erreur de troncature du développement de Taylor ci-dessus, (Δx/2)φ″, agit exactement comme une diffusion supplémentaire. Le schéma se comporte comme si la diffusivité valait :

Γ_eff = Γ + ρuΔx/2 = Γ (1 + Pe_Δ/2)

Sur 10 mailles, cela fait 3,5 Γ. Votre belle solution amont est, au premier ordre, la solution d’un problème au nombre de Péclet d’environ 50/3,5 ≈ 14, et non 50. Rien à l’écran ne vous le dit. Les isolignes sont propres, les résidus chutent magnifiquement, et la réponse appartient à un autre écoulement.

C’est pourquoi je préfère qu’un débutant voie d’abord une solution centrée qui oscille. Les oscillations sont honnêtes.

Tout solveur moderne propose des schémas bornés d’ordre plus élevé (amont du second ordre avec limiteurs, QUICK, familles TVD) qui se situent entre les deux. Vous ne comprendrez ce que font ces réglages qu’après avoir vu les deux extrêmes échouer.

Vérifiez l’ordre de précision

Raffinez maintenant. Calculez l’erreur par rapport à la solution exacte sur deux maillages de rapport de raffinement r. Avec e₁ l’erreur sur le maillage grossier et e₂ celle sur le maillage fin, l’ordre observé vaut :

p = ln(e₁ / e₂) / ln(r)

Exemple chiffré, valeurs illustratives. Un schéma d’ordre deux donne des erreurs de 0,020 et 0,0051 sur des maillages de pas Δx et Δx/2, d’où p = ln(3,92)/ln(2) ≈ 1,97. Correct. Si vous obtenez 1,0 avec un schéma censé être d’ordre deux, quelque chose est d’ordre un quelque part : une condition aux limites, un gradient, une interpolation aux faces. Le trouver est la meilleure formation numérique qui soit. C’est le même calcul qui se trouve au cœur de l’indice de convergence de grille, expliqué pas à pas dans notre article sur l’indépendance au maillage.

Gravissez une échelle de cas aux réponses publiées

Une fois votre propre code sage, passez à des cas dont quelqu’un d’autre a publié la réponse. Chaque échelon enseigne une nouvelle difficulté, et chacun comporte un contrôle que l’on réussit ou que l’on rate.

ÉchelonCasCe qu’il enseigneRéférenceLe contrôle
1Convection-diffusion 1DSchémas, nombre de Péclet, ordre de précisionLa solution exacte ci-dessusL’ordre observé correspond au schéma
2Cavité entraînée, Re 100 et 1000Couplage pression-vitesse en 2DGhia, Ghia et Shin (1982), vitesses sur les axes médiansVos profils passent par leurs points tabulés
3Écoulement laminaire en conduiteLongueur d’établissement, gradients pariétauxHagen-Poiseuille : f = 64/ReLe coefficient de frottement tend vers 64/Re quand le maillage est raffiné
4Marche descendante, laminaireDécollement et recollementArmaly et al. (1983), mesuresLongueur de recollement en fonction du nombre de Reynolds
5Cylindre dans un canal, DFG 2D-2Écoulement instationnaire, pas de tempsFeatFlow : C_D,max = 3,2200, St = 0,30188Le lâcher tourbillonnaire apparaît et les deux valeurs sont proches
6Canal turbulentTraitement de paroi et limites du RANSDNS à Re_τ de 180 à 5200 (Lee et Moser, 2015 ; données de l’Oden Institute)Vitesse moyenne en unités de paroi comparée au profil DNS
7Conduite chauffée, turbulenteCoefficients d’échange thermiqueLa corrélation de GnielinskiNombre de Nusselt dans la dispersion de la corrélation

L’échelon 3 mérite une remarque. La longueur d’établissement laminaire vaut environ 0,05 Re D, si bien qu’à Re = 1000 le profil a besoin d’une cinquantaine de diamètres pour s’établir. Une conduite courte donne un coefficient de frottement nettement supérieur à 64/Re, et c’est l’écoulement en développement qui fait ce qu’il doit faire. Apprendre à distinguer les deux est précisément l’objectif.

C’est à l’échelon 6 que la plupart des autodidactes découvrent qu’un modèle de turbulence est un modèle. Comparez le profil de vitesse moyenne en unités de paroi avec la DNS, une fois avec la première maille à y+ ≈ 1 et une fois avec des lois de paroi à y+ ≈ 50. L’article de ce blog sur k-omega SST et k-epsilon explique pourquoi les deux se comportent différemment.

L’échelon 5 est aussi un bon test pour quiconque, humain ou non, prétend mettre en données des calculs CFD à votre place ; l’article sur les agents d’IA pour la CFD l’utilise précisément ainsi.

Ensuite, apprenez le logiciel

Arrivé là, les menus auront du sens, car chacun est une décision que vous avez déjà prise à la main : le schéma de convection, le couplage pression-vitesse, le traitement de paroi, le pas de temps.

Apprenez bien un logiciel avant d’en essayer plusieurs. Deux voies gratuites suffisent pour apprendre. OpenFOAM est libre et tourne sous Linux, ou sous Windows via WSL. Ansys Student est gratuit pour les étudiants et les enseignants, tourne sous Windows et autorise jusqu’à 1 million de mailles pour les problèmes de fluides sur quatre cœurs au plus, pour un usage éducatif uniquement. Un million de mailles suffit pour chaque échelon de l’échelle ci-dessus, et ce n’est pas un hasard.

Refaites les échelons 2, 3 et 5 dans le logiciel. Si votre cavité écrite à la main et la cavité commerciale concordent entre elles et avec Ghia, vous avez vérifié les deux, et vous avez appris les réglages du logiciel par comparaison plutôt que par confiance.

Les livres à posséder

  • Versteeg et Malalasekera, An Introduction to Computational Fluid Dynamics: The Finite Volume Method. Le premier manuel le plus clair sur la méthode des volumes finis qu’utilisent les codes commerciaux.
  • Patankar, Numerical Heat Transfer and Fluid Flow. Court, ancien, et toujours la meilleure explication du comportement des schémas.
  • Ferziger, Perić et Street, Computational Methods for Fluid Dynamics. La référence numérique une fois les bases acquises.
  • Moukalled, Mangani et Darwish, The Finite Volume Method in Computational Fluid Dynamics. Le pont entre la théorie et l’implémentation dans OpenFOAM.
  • Pope, Turbulent Flows. Pour le jour où « quel modèle de turbulence ? » devient une vraie question.

Un plan sur 16 semaines

Ma proposition pour quelqu’un qui a un diplôme d’ingénieur et environ huit à dix heures par semaine. Chaque bloc se termine par quelque chose que vous pouvez montrer.

SemainesTravailLivrable
1 et 2Séries de Taylor, classes d’EDP ; étapes 1 à 4 de CFD PythonUn code de diffusion 1D avec sa solution exacte
3 et 4Convection-diffusion ; l’expérience du nombre de Péclet ; ordre de précisionUn graphique des solutions exacte, centrée et amont à Pe_Δ = 5 et 1,25
5 et 6Étapes 9 à 11 de CFD Python ; cavité entraînéeVotre cavité face à Ghia et al. à Re 100
7 et 8Installer un logiciel ; refaire la cavité ; conduite laminaireCoefficient de frottement face à 64/Re, avec raffinement du maillage
9 et 10Maillage : couches limites, critères de qualité ; étude sur trois maillagesUn indice de convergence de grille pour la conduite
11 et 12Turbulence et parois ; canal turbulentu+ en fonction de y+ comparé à la DNS, pour deux traitements de paroi
13 et 14Écoulement instationnaire ; cylindre DFGNombre de Strouhal et traînée maximale face à la référence
15 et 16Un petit projet personnelUn court rapport avec convergence, bilans, étude de maillage et une comparaison avec des données

C’est le dernier livrable qui vous fera embaucher. Un rapport qui dit « la perte de charge vaut 1 245 Pa avec une incertitude numérique de 1,6 %, et elle concorde avec la corrélation à 4 % près » vaut plus que n’importe quel nombre de cartes de couleurs.

Erreurs fréquentes, telles qu’elles apparaissent à l’écran

  • Une solution lisse jamais comparée à quoi que ce soit. Le schéma amont l’a produite. Elle peut être fausse d’un facteur, comme le montre l’exemple.
  • Des oscillations « corrigées » en passant au premier ordre. Les oscillations disaient que le maillage était trop grossier pour le schéma. Le premier ordre cache le message et garde l’erreur.
  • Un tutoriel reproduit clic par clic. Il tourne, et vous ne savez pas dire pourquoi chaque réglage est ce qu’il est. Changez un réglage à la fois et prédisez l’effet avant de lancer.
  • Un coefficient de frottement « faux » de 30 % dans une conduite courte. C’est la longueur d’établissement, et le solveur a raison.
  • Un cas turbulent sans vérification du y+. Le traitement de paroi n’a jamais été dans son domaine de validité, et le modèle ne faisait pas ce que vous croyez.
  • Les résidus comme seule preuve de convergence. Suivez la grandeur que vous allez rapporter et vérifiez le bilan de masse ; l’article de ce blog sur la convergence explique pourquoi.

Ce que je ferais

Si vous avez un diplôme d’ingénieur et quelques heures par semaine, suivez l’ordre ci-dessus : les mathématiques qui expliquent l’erreur, un petit solveur, les cas de référence, puis le logiciel. Ne sautez pas l’expérience du nombre de Péclet. Elle prend une soirée et change la façon dont vous lirez chaque carte de couleurs pour le reste de votre carrière.

Si vous utilisez déjà un logiciel commercial au travail sans formation numérique, faites le même parcours en version condensée : l’expérience du Péclet, la cavité face à Ghia, une étude sur trois maillages d’un cas que vous connaissez. Trois week-ends. Vous commencerez à voir lesquels de vos anciens résultats vous signeriez encore.

Si vous voulez un accompagnement structuré, notre cours Modélisation CFD des écoulements de liquides et de gaz suit le même ordre : cadrage, physique, simulation, vérification et interprétation, et le cours Transferts thermiques en applications d’ingénierie couvre l’échelon 7 et au-delà. Dans tous les cas, gardez la règle : aucun résultat ne quitte votre bureau tant qu’il n’a pas été comparé à quelque chose que vous n’avez pas calculé vous-même.

Sources et lectures

Service associé

Revue de modèles et études sur mesure

Savoir quelles conclusions le modèle étaye, où subsistent les incertitudes et ce qui doit être vérifié.

Découvrir les services
Tous les articles