Citar como: Barba, Lorena A. y Forsyth, Gilbert F. (2018). CFD Python: los 12 pasos para las ecuaciones de Navier-Stokes. Revista de Educación de Código Abierto , 1 (9), 21, https://doi.org/10.21105/jose.00021
CFD Python , también conocido como los 12 pasos de Navier-Stokes , es un módulo práctico para aprender los fundamentos de la dinámica de fluidos computacional (CFD) codificando soluciones a las ecuaciones diferenciales parciales básicas que describen la física del flujo de fluidos. El módulo fue parte de un curso impartido por la Prof. Lorena Barba entre 2009 y 2013 en el departamento de Ingeniería Mecánica de la Universidad de Boston (desde entonces la Prof. Barba se mudó a la Universidad George Washington).
El módulo asume sólo conocimientos básicos de programación (en cualquier idioma) y cierta experiencia en ecuaciones diferenciales parciales y mecánica de fluidos. Los "pasos" se inspiraron en ideas del Dr. Rio Yokota, quien realizó un postdoctorado en el laboratorio del Prof. Barba hasta 2011, y las lecciones fueron refinadas por la Prof. Barba y sus estudiantes durante varios semestres impartiendo el curso CFD. Escribimos este conjunto de cuadernos Jupyter en 2013 para impartir un curso intensivo de dos días en Mendoza, Argentina.
Al guiar a los estudiantes a través de estos pasos (¡sin saltarse ninguno!), aprenden muchas lecciones valiosas. La naturaleza incremental de los ejercicios significa que tienen una sensación de logro al final de cada tarea y sienten que están aprendiendo con poco esfuerzo. A medida que progresan, practican naturalmente la reutilización de código y aprenden gradualmente técnicas de programación y trazado. Mientras analizan sus resultados, aprenden sobre difusión, precisión y convergencia numérica. En aproximadamente cuatro semanas de un curso programado regularmente, se convierten en programadores moderadamente competentes y están motivados para comenzar a discutir temas más teóricos.
En un curso universitario regular, los estudiantes pueden completar las lecciones de CFD Python en 4 a 5 semanas. Como tutorial intensivo, el módulo se puede completar en dos o tres días completos, dependiendo de la experiencia previa del alumno. Las lecciones también se pueden utilizar para el autoaprendizaje. En todos los casos, los alumnos deben seguir los ejemplos resueltos en cada lección volviendo a escribir el código en un cuaderno Jupyter nuevo, tal vez tomando notas originales mientras prueban las cosas.
Inicie una sesión interactiva con este módulo utilizando el servicio Binder:
Los pasos 1 a 4 están en una dimensión espacial. Los pasos 5 a 10 están en dos dimensiones (2D). Los pasos 11 y 12 resuelven la ecuación de Navier-Stokes en 2D. Tres cuadernos "extra" cubren la condición CFL para la estabilidad numérica, operaciones de matriz con NumPy y definición de funciones en Python.
Para utilizar estas lecciones, necesita Python 3 y la pila estándar de Python científico: NumPy, Matplotlib, SciPy, Sympy. Y, por supuesto, necesita Jupyter, un entorno computacional interactivo que se ejecuta en un navegador web.
Este minicurso está construido como un conjunto de cuadernos de Jupyter que contienen materiales escritos y soluciones elaboradas en código Python. Para trabajar con el material, le recomendamos que comience cada lección con un cuaderno nuevo y siga escribiendo cada línea de código (¡no copie y pegue!) y explore cambiando parámetros y viendo qué sucede.
Después de la instalación, para asegurarse de que sus paquetes estén actualizados, ejecute los siguientes comandos en una terminal:
conda update conda
conda update jupyter numpy sympy scipy matplotlib
Si prefieres Miniconda (una versión mini de Anaconda que te ahorra espacio en disco), instala todas las bibliotecas necesarias para seguir este curso ejecutando los siguientes comandos en una terminal:
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
Asegúrese también de tener instaladas las bibliotecas necesarias ejecutando
pip install numpy scipy sympy matplotlib
Aceptamos contribuciones mediante solicitudes de extracción; de hecho, varios usuarios ya han enviado solicitudes de extracción para realizar correcciones o pequeñas mejoras. También puede abrir un problema si encuentra un error o tiene una sugerencia.
(c) 2017 Lorena A. Barba, Gilbert F. Forsyth. Todo el contenido está bajo Creative Commons Attribution CC-BY 4.0 y todo el código está bajo la cláusula BSD-3 (anteriormente bajo MIT y modificado el 8 de marzo de 2018).
¡Nos alegrará que reutilice el contenido de alguna manera!