These notes contain material and example problems in thermodynamics, in the format of Jupyter notebooks, developed to supplement the course ME 540, Intermediate Thermodynamics, taught in the School of Mechanical, Industrial, and Manufacturing Engineering at Oregon State University.
These example problems are mostly adapted from those given in the (excellent) textbook Thermodynamics by Sanford Klein and Gregory Nellis Klein & Nellis (2017). The original examples and problems in that book were solved using EES (Engineering Equation Solver), while all problems here use Python combined with Cantera Goodwin et al. (2025), CoolProp Bell et al. (2014), and the SciPy ecosystem of packages Virtanen et al. (2020), along with Pint for converting units. All artwork here is original. This collection is powered by Jupyter Book.
Reporting issues¶
If you see a problem or find a typo, you can file an issue via GitHub. More detailed instructions on this and contributing are in the contributing.md guide.
Supporting the author¶
This resource is provided free and under a permissible open license. If you find it useful, please consider making a small donation to show your support! (Students at Oregon State University are excepted from this request, because I don’t like the idea of pressuring my own students to pay me. After all, I primarily developed this material to be a resource for students in my ME 540 class.)
This work is licensed under a Creative Commons Attribution 4.0 International License.
- Klein, S., & Nellis, G. (2017). Thermodynamics (3rd ed.). Cambridge University Press.
- Goodwin, D. G., Moffat, H. K., Schoegl, I., Speth, R. L., & Weber, B. W. (2025). Cantera: An Object-oriented Software Toolkit for Chemical Kinetics, Thermodynamics, and Transport Processes. 10.5281/zenodo.17620923
- Bell, I. H., Wronski, J., Quoilin, S., & Lemort, V. (2014). Pure and Pseudo-pure Fluid Thermophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp. Industrial & Engineering Chemistry Research, 53(6), 2498–2508. 10.1021/ie4033999
- Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., van der Walt, S. J., Brett, M., Wilson, J., Jarrod Millman, K., Mayorov, N., Nelson, A. R. J., Jones, E., Kern, R., Larson, E., … Contributors, S. 1. 0. (2020). SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17, 261–272. 10.1038/s41592-019-0686-2
