#!/usr/bin/env python # coding: utf-8 # ChEn-3170 Spring 2020 UMass Lowell; Prof. V. F. de Almeida 20Jan2020 # # # ChEn-3170 Computational Methods in Chemical Engineering – Course Syllabus # ### Instructor: Prof. Valmor F. de Almeida # **Office:** Pinanski Hall 301G.
# **Email:** valmor_dealmeida@uml.edu.
# **Web:** https://www.uml.edu/Engineering/Chemical/faculty/de-Almeida-Valmor.aspx
# **Lectures:** # + **Kitson Hall 305**, Mon, Wed 2:00 – 2:50 pm.
# + **Lydon Library Comp. 204**, Tue 9:00 h – 10:50 h (session 802), 11:00 h – 12:50 h (session 801) # # **Days meetings total Mon+Wed:** 26.
# **Days meetings total Tue:** 2 x 13.
# **Week meetings total:** 14.
# Website: On-line course [repository](https://github.com/dpploy/chen-3170) and UMass Lowell Blackboard System.
# **Office hours and location:** meet at 3:00 – 4:00 pm, Mon/Wed at Pinanski Hall 301G.
# **Other means of contact:** email.
# Computational support UML Linux Group Spring meeting Thursdays 4:30pm, Pinanski Hall, room 301, North Campus.
# **Teaching assistants:** Mr. Lohith Annadevula and Mr. Joel Strandberg.
# **Catalog description (proposed):**
# The goal of this course is to present to students of chemical engineering an interconnected set of computational methods needed in the core undergraduate chemical engineering curriculum. In particular, methods that assist the students in solving problems in the core areas of chemical reaction equilibria, separations, unit operations, and chemical reactor engineering with applications in nuclear and biochemical engineering.
# **Prerequisites:** Math-2340 Differential Equations or Math-2360 Engineering Differential Equations, ChEn-3030 Fluid Mechanics.
# **Co-requisites:** none.
# **Course designation:** required.
# Suggested: [ChEn-1070](https://github.com/dpploy/chen-1070) Introduction to Chemical Engineering, ChEn-3110 Chemical Engineering Thermodynamics, ChEn-4030 Chemical Reaction Engineering.
# **References:**
# 1. *ChEn-3170 Course Notes* OneNote links in the course [repository](https://github.com/dpploy/chen-3170) notebooks. # 2. *Python 3 Language Programming*, [ref 1](https://www.python.org/), [ref 2](https://wiki.python.org/moin/BeginnersGuide), [ref 3](https://www.python.org/doc/), and [ref 4](https://docs.python.org/3.6/contents.html). # 3. [*Jupyter Notebook*](http://jupyter.org/). # # Software needed for course and homework: Jupyter notebook access options for this course
# 1. Browser based cloud service: [Azure](https://notebooks.azure.com/). Login with your student UMass Lowell student credential, use the GitHub upload option to clone the course repository to your Azure account (instructions in class). # 2. Use Binder at the course [repository](https://github.com/dpploy/chen-3170) (see instructions at the site). # 3. [Anaconda](https://docs.anaconda.com/anaconda/install/#) free download (use the Python 3 version) and use (Mac OS X or Windows). After install, use [Anaconda-Navigator](https://docs.anaconda.com/anaconda/navigator/) to start a Jupyter Notebook. # # **Suplement materials:** On-line course [repository](https://github.com/dpploy/chen-3170) and UMass Lowell Blackboard System. # **Course topics:** # - Jupyter Notebook and Python language programming # - Computational stoichiometry (linear algebra and least-squares method) # - Data approximation (general linear least-squares method) # - Chemical equilibria (non-linear algebraic systems) # - Data approximation (non-linear least-squares method) # - Chemical kinetics (time-dependent chemical/nuclear 0-D reactors) # # Overall, this course combines computational mathematics, computer programming (in Python programming language), and core elements of chemical engineering as listed above. # # **Grading notes:** for grading purposes the requirements for this course include: # + Mid-term exam (comprehensive, in-classroom, individual, closed book/notes), # + COVID-19-disrupted final exam (comprehensive, ~~in-classroom~~ virtual classroom, individual, ~~closed~~ open book/notes), # + Hands-on laboratory work assignments (Jupyter Notebook in Python submitted online via Blackboard at the end of the laboratory session, or at designated due date, every session). # # The electronic laboratory notebook will be collected and graded for technical content, style and grammar, and for overall professional appearance. The graded laboratory work represents a significant part of the evaluation process for this course since it is expected that a large part of the learning of the course material will be associated with the student’s effort on the laboratory work assignments. All assignments are individual. Make up of late laboratory work assignments and exams will be resolved on a case-by-case basis if there is enough evidence of a special circumstance. # # Announcements and submission of laboratory work will be made via **Blackboard** distributed to the students. # # |**Course Grading Procedure** |**Value**| # |:----------------------------|:-------:| # | Mid-term exam | 25% | # | Laboratory work | 50% | # | Final exam | 25% | # # |**Letter Grade Scale** |**Value**| # |:----------------------|:-------:| # | A | 92+ | # | A- | 87–91.9 | # | B+ | 82–86.9 | # | B | 77–81.9 | # | B- | 72–76.9 | # | C+ | 67–71.9 | # | C | 62–66.9 | # | C- | 58–61.9 | # | D+ | 54–57.9 | # | D | 50–53.9 | # | F | <50 | # **Course outcomes:** Upon completion of this course, a student should be able to # # 1. Understand stoichiometry from a computational perspective and be able to compute chemical reaction rates from species production rates using linear algebra algorithms including the linear least-squares method. # 2. Use the general linear least-squares method to approximate reaction rate constant parameters. # 3. Solve nonlinear algebraic equations derived from chemical equilibria of multiple reactions. # 4. Use the nonlinear least-squares method to approximate data to nonlinear models. # 5. Solve coupled system of ordinary differential equations for non-isothermal chemical/nuclear reactor dynamics. # 6. Program algorithms in the Python language and demonstrate problem solving abilities using Jupyter electronic notebooks. # 3. Produce professional, all-inclusive eletronic notebook reports combining textual content, program, results and analysis. # # **Relation of course outcomes to ABET Criterion 3:** # # |**Course Outcomes** |**ABET Criterion 3**| # |:----------------------|:-------:| # | 1 | a, e | # | 2 | b | # | 3 | k | # | 4 | k | # | 5 | a, k | # | 6 | a, b | # | 7 | a, b, k, e | # # # **Schedule:** # # |**Week**|Day| **Date** |**Notebook**|**Assessment**|**Note**| # |:-------|:-:|:---------:|:-----------|:-------------|:------:| # | **1** | T |**21Jan20**| [01](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/01-introduction.ipynb)/[02](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/02-variables-types-structures.ipynb) | [Labwork-01](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-01-801.ipynb) | Intro Python and Jupyter | # | 1 | W | 22Jan20 | [02](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/02-variables-types-structures.ipynb) | . | Variables, types and structures | # | 2 | M | 27Jan20 | [02](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/02-variables-types-structures.ipynb) | . | Variables, types and structures | # | 2 | T | 28Jan20 | [02](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/02-variables-types-structures.ipynb)/[03](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/03-arrays.ipynb) | [Labwork-02](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-02.ipynb) | Arrays | # | 2 | W | 29Jan20 | [03](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/03-arrays.ipynb) | . | Arrays| # |. |. |. |. |. |. | # | **3** | M |**03Feb20**| [03](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/03-arrays.ipynb) | . | Arrays | # | 3 | T | 04Feb20 | [03](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/03-arrays.ipynb)/[04](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/04-arrays-operations.ipynb) | [Labwork-03](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-03.ipynb) | Arrays; operations | # | 3 | W | 05Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb) | . | Linear algebra notes | # | 4 | M | 10Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb) | . | Linear algebra notes | # | 4 | T | 11Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb) | [Labwork-04](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-04.ipynb) | Linear algebra notes/NB | # | 4 | W | 12Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | . | Linear algebra notes/NB; flow control | # | 5 |~~M~~| ~~17Feb20~~ | Labwork-05 distributed | no class | President's Day Holiday | # | 5 | T | 18Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | [Labwork-05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-05.ipynb) | Monday schedule | # | 5 | W | 19Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | . | A=LU notes/NB | # | 6 | M | 24Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | . | A=LU notes | # | 6 | T | 25Feb20 | [06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/06-linear-algebra-fundamentals.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | [Labwork-06](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-06.ipynb) | LU = PA; LU = PAQ| # | 6 | W | 26Feb20 | [07](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/07-computational-stoichiometry.ipynb)/[05](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/05-flow-controls.ipynb) | . | Stoichiometry | # |. |. |. |. |. |. | # | **7** | M |**02Mar20**| [07](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/07-computational-stoichiometry.ipynb) | . | Stoichiometry | # | 7 | T | 03Mar20 | [07](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/07-computational-stoichiometry.ipynb)/[08](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/08-full-rank-least-squares-reaction-rate.ipynb) | [Labwork-07](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-07.ipynb) | Stoichiometry | # | 7 | W | 04Mar20 | Comprehensive | [Midterm exam](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/chen-3170-midterm-exam.ipynb) | closed book/notes | # | 7 | M |~~09Mar20~~| . | . |**Spring break**| # | 7 | T |~~10Mar20~~| . | . |**Spring break**| # | 7 | W |~~11Mar20~~| . | . |**Spring break**| # | 8 | M |~~16Mar20~~| . | . | COVID-19 Extended Spring break | # | 8 | T |~~17Mar20~~| . | No Labwork | COVID-19 Extended Spring break | # | 8 | W | 18Mar20 | Midterm exam solution | Review | Begin virtual course due to COVID-19 lockdown | # | 9 | M | 23Mar20 | [09](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/09-rank-deficient-least-squares-reaction-rate.ipynb) | . | Stoichiometry rank deficiency | # | 9 | T | 24Mar20 | [09a](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/09a-rank-deficient-least-squares-reaction-rate.ipynb) | [Labwork-08](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-08-801.ipynb) | Stoichiometry rank deficiency | # | 9 | W | 25Mar20 | [10](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/10-arrhenius-rate-constant-data-fitting.ipynb) | . | LSQ curve fitting notes | # | 10 | M | 30Mar20 | [10](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/10-arrhenius-rate-constant-data-fitting.ipynb) | . | LSQ curve fitting notes | # | 10 | T | 31Mar20 | [10](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/10-arrhenius-rate-constant-data-fitting.ipynb)/[11](https://nbviewer.jupyter.org/github/dpploy/chen-3170/tree/master/notebooks/) | [Labwork-09](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-09.ipynb) | Notebooks | # |. |. |. |. |. |. | # | **10** | W |**01Apr20**| [12](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/12-lsq-fit-with-fourier-basis-functions.ipynb) | .| GLSQ curve fitting notes | # | 11 | M | 06Apr20 | [12](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/12-lsq-fit-with-fourier-basis-functions.ipynb) | . | GLSQ curve fitting notes | # | 11 | T | 07Apr20 | [12](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/12-lsq-fit-with-fourier-basis-functions.ipynb) | [Labwork-10](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-10.ipynb) | GLSQ curve fitting notes | # | 11 | W | 08Apr20 | [13](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/13-nonlinear-root-finding.ipynb) | . | Nonlinear root finding notes| # | 12 | M | 13Apr20 | [13](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/13-nonlinear-root-finding.ipynb) | . |Chemical equilibrium single rxn; 3 species| # | 12 | T | 14Apr20 | [14](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/14-single-reaction-equilibrium.ipynb) | [Labwork-11](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-11.ipynb) |Chemical equilibrium general single rxn; multi species | # | 12 | W | 15Apr20 | [15](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/15-multiple-reactions-equilibrium.ipynb) | . | Chemical equilibrium general multi rxn; multi species | # | 13 | M |~~20Apr20~~| No class | No class | Patriot's Day Holiday | # | 13 | T | 21Apr20 | [15](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/15-multiple-reactions-equilibrium.ipynb) | [Labwork-12](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-12.ipynb) | Chemical equilibrium many rxn; many species | # | 13 | W | 22Apr20 | [16](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/16-non-linear-lsq-arrhenius-data-fit.ipynb) | . | Non-Linear LSQ curve fitting notes | # | 13 | F | 24Apr20 | [17](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/17-chen-ode-introduction.ipynb) | . | Monday schedule; ODE intro notes | # | 14 | M | 27Apr20 | [18](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/18-cstr-heating.ipynb)/[19](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/19-cstr-cooling-coil.ipynb) | . | ODE notes; Heated CSTR | # | 14 | T | 28Apr20 | [19](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/19-cstr-cooling-coil.ipynb) | [Labwork-13](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/labwork-13.ipynb) | Endothermic rxn CSTR | # | 14 | W | 29Apr20 | [19](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/19-cstr-cooling-coil.ipynb) | . | Exothermic rxn CSTR | # |. |. |. |. |. |. | # | **Final** | Sat | 09May20 | Comprehensive, virtual |[Final exam](https://nbviewer.jupyter.org/github/dpploy/chen-3170/blob/master/notebooks/chen-3170-final-exam.ipynb) open book/notes |BBC 201, 8:00-11:00 | # ### General Information # # **Attendance:** Students are expected to attend all classes. # # **Mobile device policy:** Mobile devices are encouraged for programming and following the material presented online; see classroom conduct below. # # **Credit hour policy:** A credit hour requires a minimum of 2 hours of out-of-class student **deep work** per 1 hour of instructor-led course activity. # # **Classroom Conduct:** Students are expected to exhibit professional and respectful behavior that is conducive to a mutually beneficial learning environment in the classroom. Examples of inappropriate behavior include: text messaging, listening to music, cell phone use (other than the campus alert system), late arrivals, early departures, use of laptops for other than class purposes, disrespectful comments or behavior, intentional disruptions, failure to follow faculty directives, etc. Students in violation of these standards may be asked to leave class and/or be referred to the Dean of Students for disciplinary action. # # **Academic Integrity:** Cheating and plagiarism will not be tolerated. A first offense will result in a failing grade for the assignment/exam in question and a formal filing with the Office of Provost according to the Academic Integrity Policy. A second offense could lead to a failing grade in the course, suspension or expulsion, as detailed in the policy, defined [here](https://www.uml.edu/Catalog/Undergraduate/Policies/Academic-Policies/Academic-Integrity.aspx). # # **Instructional Resources:** The Centers for Learning and Academic Support Services provide many tutoring resources; more details are available [here](https://www.uml.edu/class/) # Technology Resources: For a listing of available computing and software resources available to students, [visit here]( https://www.uml.edu/IT/Services/DLC/). # # **Accommodations:** In accordance with University policy and the ADA, accommodations are provided for students with documented disabilities. If you have a disability, please contact the Office of Disability Services as soon as possible. Their office is in UC 220 (978-934-4574, Disability@uml.edu). Documentation of disability is confidential. Requests for accommodation for religious reasons should be directed to Equal Opportunity and Outreach at 978-934-3565, Wannalancit Mills, Suite 301. # # **Counseling Services:** As part of the Wellness Center, Counseling Services at UMass Lowell provide mental health counseling, consultation and referrals to help students achieve personal and academic success. They also assist students in better understanding and coping with their feelings, relationships, and choices surrounding their academic success. [Visit](https://www.uml.edu/student-services/Counseling/) # Veterans’ Services: UMass Lowell is committed to helping our military students take full advantage of all the educational benefits available through the federal and state governments. For complete information on the services and resources available please visit our [website](https://www.uml.edu/student-services/Veterans/). # University Cancellation Information: If campus is closed (most likely for weather), visit the website for announcements relevant to the class. # In[ ]: