MATH3040
Topics in Scientific Computing
MATH 3040 is a graduate level introduction to
finite element simulations using open-source tools such as FEniCS and FreeFem++.
Dr. Mike Sussman will be conducting the course,
from 12:30 to 2:15, Monday through Thursday, in Thackeray 524. Office
(Thackeray 622)
hours are 11:10 to 12:10 Monday through Thursday, or by appointment.
There is no required textbook for the course.
Objective:
The course objective is to introduce students to formulating,
debugging and solving finite element simulations of practical
applications, with a focus on the equations of fluid flow. Two popular
freely-available computer packages will be presented: FEniCS and
FreeFem++. One interface to FEniCS uses the Python programming
language, and the course will use Python. FreeFem++ uses a limited
version of C++.
The basics of the languages plus those features necessary for
this course will be presented during the lectures. Previous experience
with Python, C++ and with finite element methods will be valuable,
but is not required
because the languages and theory will be summarized during the lectures.
Applications
for which FreeFem++ or FEniCS will be used include steady and transient
heat conduction as well as the Stokes and Navier-Stokes equations.
Various boundary conditions and finite elements will be presented,
as well as the effect of these choices on solution methods.
Course materials:
Course materials, including copies of the lecture slides are
available:
- Introduction in full-size and
4 slides per page formats.
- Introduction to Python in full-size and
4 slides per page formats.
- Exercises for Python
- Continuing Python with numpy in full-size and
4 slides per page formats.
- Exercises for Numpy, Scipy, and Matplotlib
- Introduction to Finite Element theory in full-size
and 4 slides per page formats.
- A simple Finite Element program full-size
and 4 slides per page formats.
- Exercise descriptions for 10-13
- A simple Finite Element program plus Exercises 11 and 12
python code
- A simple Finite Element code verification plus Exercise 13
python code
- Introduction to FEniCS in
full-size and
4 slides per page.
- Multigrid solver explanation in
full-size and
4 slides per page.
- Introduction to FEniCS, part II in
full-size and
4 slides per page.
- Introduction to FEniCS, part III in
full-size and
4 slides per page.
- Introduction to FEniCS, part IV in
full-size and
4 slides per page.
- Introduction to FEniCS, Discontinuous Galerkin in
full-size
- Introduction to FreeFem++, part I, in
full-size and
4 slides per page.
- Introduction to FreeFem++, part II, in
full-size and
4 slides per page.
- Introduction to FreeFem++, part III, in
full-size and
4 slides per page.
- Introduction to FreeFem++, part IV, in
full-size and
4 slides per page.
- Wrapup in
full-size and
4 slides per page.
- Examples (code)
Grading:
Course grades will depend on homework and a course project. There will be
no final exam.
Projects:
Students with disabilities
If you have a disability for which you are or may be requesting an
accommodation, you are encouraged to contact both your instructor and
Disability Resources and Services, 140 William Pitt Union,
412-648-7890 or 412-383-7355 (TTY) as early as possible in the term.
DRS will verify your disability and determine reasonable
accommodations for this course.
Back to the home page.
Last revised on $Date: 2014/5/12 $.