|
SSP Project Summary:
|
|
Visualisation of Parallel Algorithms for Non-Linear Partial Differential Equations
Introduction
An enormous range of physical phenomena are described by Partial
Differential Equations, for example electromagnetism, heat flow and
fluid dynamics. For large systems numerical solution is often the only
practical approach. If the original PDE is linear, the resulting
difference equations which have to be solved on the computer are simply
a set of simultaneous linear equations. Many well established direct
and iterative techniques exist for such systems, but linear solvers are
still a major area of research. For non-linear systems, the situation
is much more complicated. Often, there are no guarantees that a given
algorithm will succeed in all cases and a large amount of empirical
fine-tuning is necessary.
Computational Fluid Dynamics
The flow of a real fluid is described by a non-linear PDE, the
Navier-Stokes Equation, which is only analytically soluble in a few
special cases. In principle it fully describes all situations from the
steady flow of water in a pipe through to the turbulent flow of air
round a supersonic aircraft, but in practice different approximations
have to be made in different circumstances. In very simple cases this
means that the problem becomes linear, but in general some non-linearity
is required to describe, for example, whirlpools and eddies in a river.
CFD is greatly simplified if we consider an incompressible fluid (e.g.
water rather than air) flowing in two dimensions. In this case
extremely straightforward iterative techniques can be used to solve the
full equations. Indeed, on the Computational Science course people are
able to produce serial implementations from scratch in a single
afternoon. There are, of course, many faster and more sophisticated
methods available that would take longer to implement.
Visualisation
What makes CFD so much fun to play about with is that it is so easy to
visualise. Not only this, but people have enough everyday experience
with fluids to immediately spot if and where something is going wrong.
For example, we all know that eddies form downstream of a pier that juts
out into a river. Visualising the velocity of the flow from the
solution of the Navier-Stokes equation shows exactly this. If the
iterative algorithm is terminated prematurely then you see that the
eddies have not developed fully, and a mistake in the computer program
might cause them to appear upstream rather than downstream.
Aims
The aims of this project are to develop visualisation techniques to
monitor the progress of different algorithms for solving the
incompressible Navier-Stokes equation in two dimensions. This might
involve displaying the current solution, the error in the solution, or
some derived features like the pressure or vorticity.
The purpose is to attempt to use these visualisations to develop an
intuitive understanding as to why certain algorithms are so much better
than others. For example, you might discover that a method works very
well because the eddies appear very quickly, or that a method fails
because the error is large in areas of relatively smooth flow. Given
that many methods require hand-tuning, the visualisations might
give clues as to how best to optimise them.
Goals
The student will need to do the following
- Write an MPI code to solve the 2D Navier-Stokes equation using
an over-relaxed red-black Gauss-Seidel algorithm
- Develop AVS networks to visualise various features of the solution
- Animate the above and use the information to understand and tune
the algorithm
- Investigate the effects of only communicating halo data every few
iterations (a technique used in CFD)
Optional further work
- Extend the solver to use other iterative methods (conjugate gradient,
Newton-Raphson, Multigrid \ldots)
- Understand and tune the above by visualising the progress of the
algorithms
- Investigate the performance on various platforms
Expertise
I would prefer the code to be written in Fortran. CFD, MPI and AVS
expertise would be gained from relevant EPCC courses. Although
knowledge of the physical sciences is not actually required to do the
project, someone without such a background might find the concept of
using PDE's to simulate the real world rather daunting. One of the
main aims is to gain some physical insight into the algorithms rather
than simple to view them as abstract mathematical recipes.
Resources Required
MPI code could be run on cluster, SSP or T3D.
Resources Supplied
None that I can think of.
References
To be supplied...
Hellidon Dollani worked on this project.
Compressed PostScript of the project's final report is
available here
(799 kbytes) .