Description: Theory and practical methods for numerical solution of partial differential equations. Finite difference methods for elliptic, parabolic and hyperbolic equations, stability, accuracy and convergence, von Neumann analysis and CFL conditions. Finite volume methods for hyperbolic conservation laws, finite element methods for elliptic and parabolic equations, discontinuous Galerkin methods for first and second order systems of conservation laws. Other topics include efficient implementation, numerical linear algebra solvers such as the multigrid method, structured and unstructured mesh generation, and applications of the techniques to a range of equations.
Prerequisites: 128A/228A and programming skills, or permission from instructor.
Lectures: TuTh 2pm - 3:30pm, room Evans 740.
Lecturer: Per-Olof Persson, persson@berkeley.edu.
Office hours: Tue 3:30-5pm
and Thu 9:15-10:45am in Evans 1081.
GSI: Grace Zdeblick, grace_zdeblick@berkeley.edu.
Office hours: Wed
12-2pm in Evans 747.
Required:
Optional:
Lecture slides
Lecture notes
Various other study material
Instructions for setting up a UC Berkeley Library Proxy for off-campus access to online books
Julia books and documentation
Computing resources
By generous support from the Division of Data Sciences, we have access to cloud-based Julia server based on Jupyter notebooks in a browser. Visit https://julia.datahub.berkeley.edu and sign in using your CalNet ID.
See the official Jupyter Notebook documentation to get started using notebooks. Here is a good keyboard shortcut cheat sheet, here is a markdown cheat sheet, and here are details of how to write mathematics using LaTeX syntax.
If you would like to install Julia on your own laptop, download the latest stable version at https://julialang.org. Optionally, you can also install Visual Studio Code and add the Julia extensions according to these instructions.
The main course webpage is this page
bCourses will be used to post material, announcements, and to keep track of your assignment scores. It will also be used for submission of the Julia codes in your program sets. All essential official announcements will be made on bCourses (not on Ed), in particular policy messages and practical details. Note that we are not using the grading features of bCourses, so the percentages reported are not accurate.
Ed will be used for discussions about the material. It is primarily intended for discussions between the students, but the instructors will also be there to help answer questions (although perhaps not as frequently as other students). Note: The instructors will only participate in discussions about the course content, not about course organization, grading, administration, policies, etc. If you need more direct communication with the instructors, please bring it up during lectures / discussion sections, or discuss it in office hours.
Gradescope will be used for submission of your problem sets. For instructions on how to upload on Gradescope, see this video and this handout. Note in particular, that you are expected to produce a clear and readable PDF of your assignments, and to mark which page each problem can be found on (as described on page 3 of the Gradescope handout above). __________________________________________________________________________________________
Grades will be based entirely on the 7 problem sets. Please start early, it might be hard to get help the last few days before the due dates.
The problem set solutions should be written and submitted as follows:
One full report, as a PDF file, should be uploaded to Gradescope. The report should contain everything requested including code outputs, plots, tables, as well as mathematical derivations, answers to specific questions, etc. It should also include shorter code segments, e.g. how you produce plots, etc. However, the more extensive Julia functions that you are asked to write do not have to be included in the report. Needless to say, your report should be clearly organized and in particular have sections for each of the sub-problems.
You can produce the PDF report in whatever way you like, but here are some options:
In addition to the PDF report, you also need to upload one single Julia file (extension .jl) to bCourses for semi-automatic grading. It should run without errors, and define all the requested functions as well as supporting functions.
If you use notebooks, you can produce this file with “Download as Julia” or “Save and export notebook as Executable Script”. If you use standalone Julia, simply merge all your codes into one single Julia file and make sure it runs without errors.
Collaboration policy: It is encouraged to discuss the problem sets with other current students, but each student must write his/her own solutions and computer codes, and understand all the details of them. It is not permitted to consult any solutions to the problems, which includes reference solutions, other students’ problem sets from this or previous years, and material posted online. __________________________________________________________________________________________
Lec | Date | Topic | Readings | Other |
---|---|---|---|---|
1 | Tu 1/16 | Introduction, review FD methods for BVP | FDM:1,2, FDMSlides | |
2 | Th 1/18 | FD methods for elliptic problems | FDM:3, FDMSlides | |
3 | Tu 1/23 | (continued) | ||
4 | Th 1/25 | FD methods for parabolic problems | FDM:9, FDMSlides | |
5 | Tu 1/30 | (continued) | ||
6 | Th 2/01 | FD methods for hyperbolic problems | FDM:10, FDMSlides | PS1 Due |
7 | Tu 2/06 | (continued) | ||
8 | Th 2/08 | Compact finite difference schemes | Compact, CompactSlides | |
9 | Tu 2/13 | Structured Mesh Generation | MeshSlides, MeshSurvey, Delaunay | |
10 | Th 2/15 | Unstructured Mesh Generation | MeshSlides, MeshSurvey, Delaunay | PS2 Due |
11 | Tu 2/20 | FEM - Introduction, the 1-D model problem | FEM:1.1-1.3, FEMnotes | |
12 | Th 2/22 | FEM - Neumann problems, the stamping method | FEM:1.4-1.6 | |
13 | Tu 2/27 | FEM - Higher order, 2-D Poisson | FEM:3.1-3.3 | |
14 | Th 2/29 | FEM - Theory | FEM:1.7-2.6 | PS3 Due |
15 | Tu 3/05 | FEM - Theory | FEM:4.1-4.2 | |
16 | Th 3/07 | FEM - General equations | ||
17 | Tu 3/12 | Scalar conservation laws | FVM1, FVM:11.1-11.7 | |
18 | Th 3/14 | (continued) | FVM1, FVM:11.8-11.14 | PS4 Due |
19 | Tu 3/19 | Finite volume methods for conservation laws | FVM2, FVM:4.1-4.9 | |
20 | Th 3/21 | (continued) | FVM2, FVM:12.1-12.5 | |
Tu 3/26 | Spring Break - No lecture | |||
Th 3/28 | Spring Break - No lecture | |||
21 | Tu 4/02 | FVM, higher dimensions, other equations | ||
22 | Th 4/04 | The level set method | LSslides, LSnotes | PS5 Due |
23 | Tu 4/09 | Discontinuous Galerkin methods, convection | DGslides | |
24 | Th 4/11 | (continued) | ||
25 | Tu 4/16 | Discontinuous Galerkin methods, diffusion | DGslides | |
26 | Th 4/18 | (continued) | PS6 Due | |
27 | Tu 4/23 | The Multigrid Method | MIT_MG | |
28 | Th 4/25 | Performance, benchmarking, other languages | ||
RRR week 4/29-5/3 - No lectures | ||||
Th 5/02 | PS7 Due |
Problem Set | Due Date | Download |
---|---|---|
1 | Fri 2/2 | PDF, HTML |
2 | Fri 2/16 | PDF, HTML |
3 | Fri 3/1 | PDF, HTML |
4 | Fri 3/15 | PDF, HTML |
5 | Fri 4/5 | PDF, HTML |
6 | Fri 4/19 | PDF, HTML |
7 | Fri 5/3 | PDF, HTML |
8 | Optional | PDF, HTML |