CSE548

This course concerns scientific computation in a broad sense. We will use numerical libraries written in higher level languages, such as C, Fortran, and Python, to solve computational problems. Emphasis will be placed on computational decision making. For example, how should I choose which nonlinear solver to use? How should I evaluate its suitability once I have tried it? We will also cover basic techniques of algorithm design and implementation, project planning, source management, configuration and build tools, documentation, program construction, i/o, and visualization.

If you go on to career in scientific computing, you will very often be confronted with models, discretizations, numerical methods, and solution algorithms unfamiliar to you. Some you will research and understand completely, and some you will understand at a merely mechanical level. This course mirrors that experience. When you first did arthmetic, were you aware you were doing it in an algebraically closed field or why?

CSE 548 Course Information

Instructor: Matthew G. Knepley

Class times: 12:30pm to 1:50pm on Tuesday & Thursday

Location: Davis 113A

Office Hours: Instructor 11:00am to 12:00pm Wednesday on Zoom

Required and Recommended Reading

Class notes will be prepared and the lecture will follow the notes. Extensive class notes are also available from the Computational Science I companion course. Students may read over the class notes prior to attending lecture, but it may deviate from the notes somewhat. We will use the PETSc libraries as a foundation for software development. An optional textbook, PETSc for Partial Differential Equations by Ed Bueler of the University of Alaska Fairbanks, is available from the SIAM Bookstore or Google Play. It is the best resource for learning the advances features of PETSc.

Syllabus, also in PDF

Paper on the dual transform from SIAM Review.

Example code for vectors that we went over in class on Tuesday.