https://github.com/ichristov/intermediate-fluid-mechanics
ME 50900 - Intermediate Fluid Mechanics
https://github.com/ichristov/intermediate-fluid-mechanics
blasius-equation boundary-layer couette-poiseuille-flow dimensional-analysis fluid-mechanics ideal-flow interactive-visualizations lubrication navier-stokes-equations self-similarity stokes-flow streamfunction teaching-materials tensor-calculus velocity-field vorticity
Last synced: about 1 month ago
JSON representation
ME 50900 - Intermediate Fluid Mechanics
- Host: GitHub
- URL: https://github.com/ichristov/intermediate-fluid-mechanics
- Owner: ichristov
- License: gpl-3.0
- Created: 2025-01-25T18:22:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-29T20:53:26.000Z (about 2 months ago)
- Last Synced: 2026-04-29T22:21:56.823Z (about 2 months ago)
- Topics: blasius-equation, boundary-layer, couette-poiseuille-flow, dimensional-analysis, fluid-mechanics, ideal-flow, interactive-visualizations, lubrication, navier-stokes-equations, self-similarity, stokes-flow, streamfunction, teaching-materials, tensor-calculus, velocity-field, vorticity
- Language: Jupyter Notebook
- Homepage: https://engineering.purdue.edu/ME509/
- Size: 264 MB
- Stars: 30
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ME 50900 – Intermediate Fluid Mechanics
This is a GitHub repository for ME 50900 – Intermediate Fluid Mechanics at Purdue University, as taught by Prof. [Ivan C. Christov](HTTPS://christov.tmnt-lab.org).
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):
* Kinematics:
* [Flow visualization](extras/flow_visualization.ipynb) — quiver plots, streamlines, pathlines, streaklines.
* [Velocity field in polar coords](velocity_field_in_polar_coords.ipynb) — plotting planar (2D) velocity fields given in terms of polar velocity components.
* [Streamfunction in 2D](streamfunction_2D.ipynb) — constructing, visualizing, and understanding streamfunctions for 2D flows in Cartesian coordinates.
* [Kinematics and the material derivative](kinematics_material_derivative.ipynb) — given a flow field, going beyond flow visualization.
* Dynamics of unidirectional flows:
* [Combined PC flow](combined_PC_flow.ipynb) — solution of combined Poiseuille–Couette flow generated by the combination of a pressure gradient and wall motion.
* [Startup PC flow](extras/startup_PC_flow.ipynb) — the full transient solution from rest for Poiseuille–Couette flow (to complement [Combined PC Flow](../combined_PC_flow.ipynb)).
* [Slip flow in a channel](extras/slip_flow_channel.ipynb) — a pressure-driven flow with Navier slip in a 2D channel, arising from microfluidics.
* [Stokes' 1st problem](Stokes_1st_problem.ipynb) — similarity solution for the flow caused by the impulsive motion of a plate.
* [Stokes' 2nd problem](Stokes_2nd_problem.ipynb) — post-transient solution for the flow caused by an oscillating plate.
* [Decay of an ideal vortex](decay_ideal_vortex.ipynb) — similarity solution for the decay of a point load of vorticity at the origin.
* [Womersley flow](extras/Womersley_flow.ipynb) — flow in a 2D channel and a 3D axisymmetric tube driven by a periodically pulsating pressure gradient, including animations.
* [Rectangular duct flow](extras/rectangular_duct.ipynb) — Fourier series solution for pressure-driven flow in a 3D duct.
* Flow fields with two velocity components:
* [Asymptotic suction flow](extras/asymptotic_suction_flow.ipynb) — a fully-developed flow field with two velocity components.
* [Ideal flows in 2D](ideal_flows_2D.ipynb) — having fun with functions of a complex variable.
* [Boundary layers](boundary_layers.ipynb) — everything you need to know about Blasius' problem.
* [Stokes flows in 2D](Stokes_flows_2D.ipynb) — having fun with the biharmonic equation in the plane, from Taylor's scraper to Moffatt's eddies.
* [Stokes flow past sphere](Stokes_flow_past_sphere.ipynb) — heavy-duty calculations in spherical coordinates.
* [Wavy channel flow](wavy_channel.ipynb) — the pressure drop along a wavy channel from lubrication theory.
* [Slipper pad bearing](slipper_pad_bearing.ipynb) — a classic application of Reynolds' lubrication equation.
* Dimensional analysis:
* [Dimensional analysis](dimensional_analysis.ipynb) — Buckingham's $\Pi$ theorem is just the rank–nullity theorem in disguise.
* [Taylor and the bomb](Taylor_and_the_bomb.ipynb) — 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.
📝 Also, checkout the [handouts](handouts) folder.
📚 Some resources for self-learning Jupyter, Python and $\LaTeX$:
* Google Colaboratory lets open Jupyter notebooks from GitHub and run them in the cloud from your browser: .
* See the [getting started with Markdown](https://www.markdownguide.org/getting-started/) 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](https://code.visualstudio.com/docs/sourcecontrol/intro-to-git), [Jupyter Notebooks in VS Code](https://code.visualstudio.com/docs/datascience/jupyter-notebooks).
* Check out [PY4E](https://www.py4e.com) – 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](https://github.com/PurdueMechanicalEngineering/me-297-intro-to-data-science ) also cover getting started with Scientific Python.
* For all your math typesetting needs: D. F. Griffiths and D. J. Higham, [_Learning LaTeX_](https://epubs.siam.org/doi/book/10.1137/1.9781611974423), 2nd ed, SIAM.