Math 273A (Scientific Computation)

Instructor: Prof. Michael Holst
Term: Fall 1999 (10:10-11:00 MWF, MCGIL 1111)


273A-B-C. Scientific Computation (4-4-4)
Continuum mechanics models of physical and biological systems, finite element methods and approximation theory, complexity of iterative methods for linear and nonlinear equations, continuation methods, adaptive methods, parallel computing, and scientific visualization. Project-oriented; theoretical and software development projects designed around problems of current interest in science and engineering.

Prerequisite: experience with MATLAB and C, some background in numerical analysis, or consent of instructor. (F,W,S)


In Math 273A-B-C, we will study the approximation theory foundations of finite element modeling, and we will learn how to build realistic finite element models of physical objects, such as electrostatic and elasticity models of biological molecules and membranes for use in drug design, and elasticity models of clothing and human skin for use in computer animation. The course will be project-oriented and interdisciplinary; we will pick a couple of interesting but hard problems from an application area the first week of class, and then we will spend the rest of the quarter building up the tools (both theoretical and software) to solve the problem, in a provably good way.

Our time in 273A-B-C will be split up each quarter as follows:

  • Classical and finite element approximation theory: 273A
    (polynomials, wavelets, a priori and a posteriori error estimation, adaptivity)

  • Iterative methods for linear and nonlinear finite element equations: 273B
    (Newton, multilevel, and continuation methods, complexity and convergence)

  • Dynamical finite element modeling: 273C
    (numerical methods for ODEs, symplectic and other integrators for Hamiltonian systems)

  • Continuum mechanics modeling in biology and physics: 273A-B-C
    (primarily nonlinear elasticity models of solid objects)

  • Building software implementations in MATLAB and C/C++: 273A-B-C
    (visualization using OpenGL, parallel computing on workstation clusters)

The appropriate preparation for the course is some numerical analysis background (Math 170 or 270) and programming experience (C/C++, MATLAB). However, the course will be self-contained in order to allow the participation of graduate students in science and engineering who may not have formal numerical analysis training. There will be flexibility in the design of the individual projects to allow for differences in preparation and interests of the students.