MATH 222 - Numerical ODE & PDE II
Class meets Mo, We, 2:00-3:15 PM, Ph 301
Office hours: Mo: 3:30-4:30 PM, We: 1:00-1:50 PM, Ph 307
This course is an introduction to the development and study of advanced numerical methods for solving PDEs. We shall consider the major classes of numerical approaches as well as the most commonly encountered sets of PDE's arising in the sciences.
At the end of the course a student is expected to be proficient in effectively formulating, testing and applying a numerical algorithm to find solutions to the differential problems arising in mathematical physics.
Weighted residual methods. Derivation of finite difference, finite volume, finite element, spectral methods from weighted residual formulations. Comparison of these approaches from a functional analysis viewpoint.
Euler equations of gas dynamics. Special cases: incompressible and compressible potential flow. Navier-Stokes equations. Primitive variable and derived variable formulations. Special cases: incompressible, compressible, Stokes flows. Parabolized formulations.
Magnetohydrodynamics. Maintaining divergence free and/or rotation free fields.
Maxwell equations of electromagnetic fields. Different formulations. Fast methods.
Cauchy equations of elasticity.
Numerical simulation of plastic bodies, visco-elastic flows.
Scientific computing is best mastered through practical application. The course emphasizes the transfer of theoretical approaches into working computer code. This entails establishing test cases, carrying out convergence and error analysis as well as running a code on moderately complicated problems.
A literate programming approach is useful in keeping track of all these elements and will be used extensively during the course.
We'll make use of a number of software tools. Most of these are available for the widely used platforms: Linux, Windows XP, Mac OS X. Please download and install these to your workstation:
Leo outlining editor. One of the main tools used during the course.
A programmer's editor. Emacs, UltraEdit or jEdit are good, professional tools.
C and Fortran Compiler. Download the Intel or gnu compilers.
Matlab, Mathematica, Maple - available from AFS.
Extend the panel method in some significant way. Suggestions: Flow around a body near a wall modeled by a body reflection, axisymmetric flow as opposed to plane flow, unsteady motion - body moves in flow, three-dimensional case, fluid-structure interaction - assume forces are given by body velocities and compute resulting motion of body. Here is the Leo outline from class to use as a start template for this project. You might have to change the path in the @file directives in the Leo file or create a directory to mimic the one we used in class.
Use BEARCLAW (available on baobab) to compute the solution to the Riemann problem for the shallow water and Euler equations using both an exact and inarized Riemann solver.
Basic steps:
setup on baobab:
Either at the command line or in your ~/.bashrc file set:
export
BEARCLAW=/afs/isis.unc.edu/home/m/i/mitran/public/bearclaw
Also: export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BEARCLAW/.. (Notice the two periods
after the slash).
Check that you have the Intel Fortran compiler package added to your setup:
ipm query should produce a listing with
intel_fortran-90 somewhere in it. If not add the package by
ipm add intel_fortran-90
make a work directory and copy an example BEARCLAW application as a starting
point (e.g. wavebear/1d/Euler/shocktube)
Basic steps to set up an application:
write code for Riemann solve (problem.f90,
physflux routine, NormalWaves)
Complete problem setup:
edit setprob routine in
problem.f90
edit qinit in problem.f90
edit bear.data input file.
Project 2 tasks:
Shallow water dam break problem using linearized Riemann solver
Repeat using exact Riemann solver
Convergence analysis
Compare with exact solutions.