Veuillez citer comme suit : Barba, Lorena A. et Forsyth, Gilbert F. (2018). CFD Python : les 12 étapes des équations de Navier-Stokes. Journal of Open Source Education , 1 (9), 21, https://doi.org/10.21105/jose.00021
CFD Python , alias les 12 étapes de Navier-Stokes , est un module pratique pour apprendre les fondements de la dynamique des fluides computationnelle (CFD) en codant des solutions aux équations aux dérivées partielles de base qui décrivent la physique de l'écoulement des fluides. Le module faisait partie d'un cours dispensé par le professeur Lorena Barba entre 2009 et 2013 au département de génie mécanique de l'université de Boston (le professeur Barba a depuis déménagé à l'université George Washington).
Le module suppose uniquement des connaissances de base en programmation (dans n'importe quel langage) et des connaissances en équations aux dérivées partielles et en mécanique des fluides. Les « étapes » ont été inspirées par les idées du Dr Rio Yokota, qui était post-doctorant dans le laboratoire du professeur Barba jusqu'en 2011, et les leçons ont été affinées par le professeur Barba et ses étudiants pendant plusieurs semestres enseignant le cours CFD. Nous avons écrit cet ensemble de cahiers Jupyter en 2013 pour enseigner un cours intensif de deux jours à Mendoza, en Argentine.
En guidant les élèves à travers ces étapes (sans en sauter aucune !), ils apprennent de nombreuses leçons précieuses. La nature progressive des exercices signifie qu'ils ressentent un sentiment d'accomplissement à la fin de chaque devoir et qu'ils ont le sentiment d'apprendre avec peu d'effort. Au fur et à mesure qu’ils progressent, ils pratiquent naturellement la réutilisation du code et apprennent progressivement les techniques de programmation et de traçage. En analysant leurs résultats, ils en apprennent davantage sur la diffusion numérique, la précision et la convergence. En quatre semaines environ de cours réguliers, ils deviennent des programmeurs moyennement compétents et sont motivés pour commencer à discuter de questions plus théoriques.
Dans un cours universitaire en session régulière, les étudiants peuvent suivre les cours CFD Python en 4 à 5 semaines. En tant que tutoriel intensif, le module peut être complété en deux ou trois jours complets, selon l'expérience préalable de l'apprenant. Les leçons peuvent également être utilisées pour l’auto-apprentissage. Dans tous les cas, les apprenants doivent suivre les exemples concrets de chaque leçon en retapant le code dans un nouveau cahier Jupyter, en prenant peut-être des notes originales pendant qu'ils essaient des choses.
Lancez une session interactive avec ce module en utilisant le service Binder :
Les étapes 1 à 4 se déroulent dans une seule dimension spatiale. Les étapes 5 à 10 sont en deux dimensions (2D). Les étapes 11 à 12 résolvent l’équation de Navier-Stokes en 2D. Trois cahiers « bonus » couvrent la condition CFL pour la stabilité numérique, les opérations sur les tableaux avec NumPy et la définition de fonctions en Python.
Pour utiliser ces leçons, vous avez besoin de Python 3, et de la pile standard de Python scientifique : NumPy, Matplotlib, SciPy, Sympy. Et bien sûr, vous avez besoin de Jupyter, un environnement informatique interactif qui s'exécute sur un navigateur Web.
Ce mini-cours est construit sous la forme d'un ensemble de cahiers Jupyter contenant les documents écrits et les solutions élaborées sur le code Python. Pour travailler avec le matériel, nous vous recommandons de commencer chaque leçon avec un nouveau cahier, et de suivre, en tapant chaque ligne de code (ne copiez pas et en collant !), et en explorant en modifiant les paramètres et en voyant ce qui se passe.
Après l'installation, pour vous assurer que vos packages sont à jour, exécutez les commandes suivantes dans un terminal :
conda update conda
conda update jupyter numpy sympy scipy matplotlib
Si vous préférez Miniconda (une mini version d'Anaconda qui vous fait gagner de l'espace disque), installez toutes les bibliothèques nécessaires pour suivre ce cours en exécutant les commandes suivantes dans un terminal :
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
Veuillez également vous assurer que les bibliothèques nécessaires sont installées en exécutant
pip install numpy scipy sympy matplotlib
Nous acceptons les contributions via pull request. En fait, plusieurs utilisateurs ont déjà soumis des pull request apportant des corrections ou de petites améliorations. Vous pouvez également ouvrir un ticket si vous trouvez un bug ou si vous avez une suggestion.
(c) 2017 Lorena A. Barba, Gilbert F. Forsyth. Tout le contenu est sous Creative Commons Attribution CC-BY 4.0 et tout le code est sous la clause BSD-3 (auparavant sous MIT et modifié le 8 mars 2018).
Nous sommes heureux si vous réutilisez le contenu de quelque manière que ce soit !