Instructor: Prof. Richard H. West [email protected] Fall 2025: Tuesday and Friday, 9:50 – 11:30am, Ryder Hall Room 233
Schedule: https://github.com/CHME5137/Syllabus/blob/main/schedule2025.md
Building on chemical engineering fundamentals, introduces computer programming to allow simulation of physical, chemical, and biological systems. Covers numerical experiments (eg. Monte Carlo, global sensitivity analysis) to learn the significance of parameters and model assumptions. Students work on a research or design project throughout the course. Prerequisites: CHME3312 and CHME3322.
This course should equip chemical engineering students to create a computational model of any physical, chemical, or biological system, and perform numerical experiments on the model to learn the significance of parameters and model assumptions. The course will integrate thermodynamics, kinetics, transport, and mathematics, with applications in chemistry, biology, and materials science. Faced with a modeling challenge, students will learn to define the problem, split it into sub-systems, develop mathematical models of each sub-system, implement these in Python, and thus construct a model to represent the whole process. Monte Carlo, uncertainty analysis, and global sensitivity analysis, and Bayesian parameter estimation methods will then be used to test and learn from the model. Students will also learn essential software carpentry skills, such as using the Linux command prompt, version control, and distributed computing on a cluster.
There will be assignments for each module, but primarily the assessment will be project based, with students working on their project throughout the semester. The final project report should be publication-quality, and students should expect to be able to submit to a peer-reviewed journal with minimal extra work.
Topics include:
- Introduction to Python computer language, the Anaconda distribution, and a few libraries (NumPy, SciPy, Matplotlib)
- Using the command prompt and Linux terminal, and computer clusters.
- Distributed version control with Git
- Writing scientific reports with LaTeX
- Basic Python programming
- Importing, storing, manipulating, and exporting data
- Solving nonlinear algebraic equations
- Solving ordinary differential equations
- Simulating chemical kinetics and thermodynamics with Cantera
- Regression and machine learning; empirical models.
- Monte Carlo simulations
- Global and local sensitivity analysis
- Bayesian Parameter Estimation
- Debugging
Recommended (not required): Modeling and Simulation in Python Author: Allen B. Downey Publisher: No Starch Press, May 2023 Paperback: $39.99 from the publisher or $25.49 on Amazon Publisher: Green Tea Press eBook: FREE! and open-source (CC BY-NC-SA 4.0) https://allendowney.github.io/ModSimPy/
Another good choice (not required): A Student’s Guide to Python for Physical Modeling: Second Edition Authors: Jesse M. Kinder & Philip Nelson Publisher: Princeton University Press, July 2015 Paperback: $24.95 eBook available (Kindle: $14.72) 168 pages http://physicalmodelingwithpython.blogspot.com
Mathematical Modeling in Chemical Engineering Author: Anders Rasmuson, Bengt Andersson, Louise Olsson, Ronnie Andersson Publisher: Cambridge University Press, May 2014 Hard cover: $69.99 eBook available (Kindle $56.00) 192 pages
Effective Computation in Physics Field guide to research with Python. Authors: Anthony Scopatz, Kathryn D. Huff Publisher: O’Reilly Media, July 2015 Paperback: $49.99 eBook available (Kindle $18.35) 552 pages http://physics.codes
"Practical Numerical Methods with Python" is an open, online course hosted on an independent installation of the Open edX software platform for MOOCs, first run by Lorena A. Barba, George Washington University. https://github.com/numerical-mooc/
Anselmo Buso and Monica Giomo (2011). Mathematical Modeling in Chemical Engineering: A Tool to Analyse Complex Systems, Numerical Simulations of Physical and Engineering Processes, Prof. Jan Awrejcewicz (Ed.), ISBN: 978-953-307-620-1, InTech, Available from: http://dx.doi.org/10.5772/24806
Software Carpentry - Teaching basic lab skills for research computing. All of our lessons are freely available under the Creative Commons - Attribution License. http://software-carpentry.org/lessons/
Participation in the Teacher Rating And Course Evaluation (TRACE) survey at the end of the course is important and expected. But don't wait until then to give feedback! Tell the instructor as soon as you have an idea that might improve the course.
Academic dishonesty violates the most fundamental values of an intellectual community and undermines the achievements of the entire University. Please be familiar with the Northeastern University Academic Integrity Policy which you can find at https://catalog.northeastern.edu/handbook/policies-regulations/academic-integrity/. Read it at least once per semester, to remind yourself the details. Relating to this course:
- Don't pretend someone else's work is your own. Don't pretend you did something you didn't.
- Using code snippets found online is a common way to program, but in an academic setting especially it is important that you add a comment where you got it from.
- Collaboration with classmates is usually encouraged in this course, but unauthorized collaboration when explicitly asked not to is cheating. In any case: when helping others, try not to just give them your code, but help them figure it out themselves. They will learn better, and you will also learn from it.
- We will be exploring and discussing how and when to use AI assistants like ChatGPT to help you write code. You must acknowledge when and how you use these tools, and don't use them if/when asked not to. These are powerful tools, but remember why you're taking the class, and use the tools to maximize your learning, not to short-cut it.
Northeastern University and Disability Access Services (DAS) are committed to providing disability services that enable students who qualify under Section 504 of the Rehabilitation Act and The Americans With Disabilities Act Amendments Act (ADAAA) to participate fully in the activities of the university. To receive accommodations through DAS, students must provide documentation of a disability that demonstrates a current substantial limitation. Accommodations are approved based on a review of the information that is submitted and reviews are done on a case-by-case basis. For more information, visit https://disabilityaccessservices.northeastern.edu.
Northeastern University is committed to fostering a community of belonging, which is essential to the advancement of our mission of teaching and research. Our university is stronger as a result of the varied backgrounds, experiences, and perspectives that all members of our global community bring to the pursuit of knowledge. Embracing this pluralism is not the work of one office, department, or academic unit. It is a shared responsibility that spans disciplines and boundaries. By harnessing the power of our differences, we will continue to light the path to bold new ideas and life-changing discoveries.
It is my intention that students from all backgrounds and perspectives will be well served by this course, and that the diverse experiences that students bring to this class will be viewed as an asset. I welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, socioeconomic background, family education level, ability – and other visible and nonvisible differences. All members of this class are expected to contribute to a respectful, welcoming and belonging environment for every other member of the class. Your suggestions are encouraged and appreciated.
For more information the Northeastern University site about Belonging is at https://belonging.northeastern.edu and the Chemical Engineering Department's statement on Belonging is at https://che.northeastern.edu/community/belonging/
University Policy on Sexual and Gender-Based Harassment and Title IX articulates how the University will respond to reported allegations of Sexual Harassment, Quid Pro Quo Harassment, Sexual Assault, Domestic Violence, Intimate Partner Violence, Dating Violence, Stalking, Gender-Based Harassment and Retaliation, and provides a consolidated statement of the rights and responsibilities under University policies and Title IX, as amended by the Violence Against Women Reauthorization Act of 2013 and the U.S. Department of Education and Office for Civil Rights’ revised regulations in 2020 to the Title IX of the Education Amendments of 1972 (Title IX), 20 U.S.C. § 1681. The policy describes how areas within the University will coordinate the provision of interim remedies and the prompt and effective investigation of allegations of Prohibited Offenses. This policy applies to all members of the University community, including students and prospective students, employees and prospective employees, faculty, staff and volunteers in connection with university activities. It further applies to on- or off-campus behavior involving students. Please visit http://www.northeastern.edu/ouec for a complete list of reporting options and further information.
Classes may be recorded to enable all students to review material covered in synchronous classes. Please contact me if you have any concerns.
Please stay home if you think you might have a communicable illness - we will accommodate your absence. With that said, please come to class whenever you can - we all benefit from having you here when healthy - and please let me know as soon as possible if you're going to miss a class. The virtual meetings on the class calendar are there to facilitate making recordings; they are not intended to encourage remote participation or to excuse truancy.
These outcomes are listed on the official syllabus, and include mappings to ABET Student Outcomes (SO’s 1-7).
- Use Python programming language to create simple scripts with conditionals, loops, operations, and functions. (SO 1)
- Learn how to use scientific Python libraries such as NumPy and SciPy to, for example, solve nonlinear equations, solve differential equations, optimize functions, and regress parameters. (SO 7)
- Implement a Kinetic Monte Carlo simulation. (SO 1)
- Use the Linux command prompt to navigate a file system, perform simple file operations, and launch programs.
- Use the Git version control system to initialize, stage, commit, push, pull, branch, and merge.
- Use the LaTeX document preparation system to write publication-quality technical reports. (SO3)
- Create a computational model of any physical, chemical, or biological system. (SO1)
- Perform global sensitivity analysis on a model to learn the significance of parameters and model assumptions. (SO 6, 4)
I aim to be responsive to the interests of the current cohort. We may get ambitious and add some goals as we go.