Welcome to the Online Course: Computational Fluid Dynamics (CFD) with high-performance Python programming.#
This online course offers a comprehensive 20-step journey through the world of Computational Fluid Dynamics (CFD), leveraging the power of Python’s high-performance capabilities. It begins with an essential introduction to CFD’s core principles, swiftly transitioning into hands-on Python programming to equip students for the practical components ahead. As the course progresses, participants will tackle a range of equations, including convection, diffusion, Burgers’, Laplace, Poisson, and eventually, the Navier-Stokes equation.
A significant focus will be on mastering array operations with NumPy, crucial for understanding 2D equations and simulating cavity flow. We will employ various schemes such as the Navier-Stokes and Chorin’s projection methods. Additionally, the course will cover the use of JAX, a cutting-edge Python tool for high-performance computing, enhancing our computational capabilities.
In the latter stages, we delve into advanced topics like Implicit solver, Phase Field Modeling (PFM), Constrained Optimization, and the Lattice Boltzmann Method (LBM), providing a well-rounded, in-depth understanding of CFD applications in Python.
This online course is used as the lecture notes for my (Prof. Zhengtao Gan) CFD course at The University of Texas at El Paso in Fall 2023. This course builds upon the outstanding foundation laid by an online course originally developed by Prof. Lorena A. Barba: CFD Python: 12 steps to Navier-Stokes. Much of the Python code in this course is adapted directly from the original course website created by Prof. Lorena A. Barba. However, we have expanded the curriculum with several additional modules, including an introduction to JAX, Chorin’s projection methods, implicit solvers, and advanced topics such as Phase Field Modeling (PFM), Constrained Optimization, and the Lattice Boltzmann Method (LBM).
Check out the content pages bundled with this book to see more.
- Step 0: Introduction of Computational Fluid Dynamics
- Step 1: 1-D Linear Convection
- Step 2: Nonlinear Convection and Upwind Scheme
- Step 3: Convergence and the CFL Condition
- Step 4: Diffusion Equation in 1-D
- Step 5: Burgers’ Equation in 1-D
- Step 6: Array Operations with NumPy
- Step 7: 2D Linear Convection
- Step 8: 2-D Convection
- Step 9: 2D Diffusion
- Step 10: Burgers’ Equation in 2D
- Step 11: 2D Laplace Equation
- Step 12: 2D Poisson Equation
- Step 13.1: Cavity Flow with Navier–Stokes
- Step 13.2: Cavity Flow with Upwind Sheme
- Step 13.3: Cavity flow with Chorin’s Projection
- Step 14: Channel Flow with Navier–Stokes
- Step 15: JAX for high-performance GPU computing
- Step 16: 2D Diffusion Equation using Numpy and JAX
- Step 17 (Speical Topic 1): Implicit Solver
- Step 18 (Speical Topic 2): Phase-field Method
- Step 19 (Speical Topic 3): Optimization of Dynamical Systems
- Step 20 (Speical Topic 4): Lattice Boltzmann Method