This is a GitHub repository for ME 50900 – Intermediate Fluid Mechanics at Purdue University, as taught by Prof. Ivan C. Christov. The repository mainly consists of Jupyter notebooks used for hands-on demos in lectures, continuous knowledge acquisition, problem-set solutions, and enrichment activities.
Getting started (rough grouping of notebooks based on course topics):
- General:
- Flow Visualization — streamlines, pathlines, streaklines
- Velocity Field in Polar Coords — how to plot planar (2D) velocity fields given in terms of polar velocity components
- Streamfunction 2D — constructing, visualizing, and understanding streamfunctions for 2D flows in Cartesian coordinates
- Kinematics Material Derivative — given a flow field, going beyond flow visualization
- Unidirectional flows:
- Combined PC Flow — solution of combined Poiseuille–Couette flow generated by the combination of a pressure gradient and wall motion
- Startup PC Flow — unsteady solution for the startup of combined Poiseuille–Couette flow
- Slip Flow Channel — solution for pressure-driven flow in a 2D slot with wall slip
- Stokes' 1st Problem — similarity solution for the flow caused by the impulsive motion of a plate
- Stokes' 2nd Problem — post-transient solution for the flow caused by an oscillating plate
- Decay Ideal Vortex — similarity solution for the decay of a point load of vorticity at the origin
- Womersley Flow — solution for pressure-driven flow generated by a periodic oscillations of the pressure drop, in both a 2D slot an a 3D axisymmetric tube
- Rectangular Duct — Fourier series solution for pressure-driven flow in a 3D duct
- Other topics:
- Asymptotic Suction Flow — a fully-developed flow field with two velocity components
- Slipper Pad Bearing — a classic application of Reynolds' lubrication equation
- Ideal Flows 2D — having fun with functions of a complex variable
- Boundary Layers — everything you need to know about Blasius' problem
- Stokes Flows 2D — having fun with the biharmonic equation in the plane, from Taylor's scraper to Moffatt's eddies
- Stokes Flow Past Sphere — heavy-duty calculations in spherical coordinates
-
Dimensional Analysis — Buckingham's
$\Pi$ theorem is just the rank–nullity theorem in disguise - Taylor and the Bomb — how G. I. Taylor estimated the energetic yield of the Trinity test
The notebooks are unlikely to be robust and may require updates to run on different platforms, and as underlying Python libraries evolve.
Some resources for getting started:
- Google Colaboratory lets open Jupyter notebooks from GitHub and run them in the cloud from your browser: https://colab.research.google.com.
- See the getting started with Markdown guide for how to write nice discussion between your computational cells in the Jupyter notebook.
- More advanced programmers may find the following links useful: Introduction to Git in VS Code, Jupyter Notebooks in VS Code.
- Check out PY4E – Python for Everybody – for free materials for learning how to program in Python.
- The first few lectures of ME 297 - Introduction to Data Science for Mechanical Engineers also cover getting started with Scientific Python.
- For all your math typesetting needs: D. F. Griffiths and D. J. Higham, Learning LaTeX, 2nd ed, SIAM.