Possible Subprojects:
Everyone is required to participate in the large project somehow.
One way to do this is to pick up one or more subprojects and work on
them. This page lists a number of subprojects that may be
appropriate. (The word "may" here means that they also may not
be appropriate, so before starting work on one of these in a serious way,
talk to me about it.) I'll indicate the status of each project as
time goes on.

Port Olin Shiver's list library to GambitC and use the routines in it
rather than the adhoc routines in utilities.scm. See http://srfi.schemers.org/srfi1/srfi1.html
(Note: There is a link to a reference implementation at the bottom of this
page.)

Write routines to test the various routines in linearelementcode.scm
to integrate functions on triangles, edges, etc., and construct the linear
operator for the Neumann problem.

Status: Taken by Mr. Fan.

Reorder the vertices in a triangulation to approximately follow a spacefilling
curve (change Triangulationaddindices in geometry.scm); measure
the performance of the matrix multiplication code applynonzerocoefficients
in
linearelements.scm to see if this change increases the speed
of matrix multiplication by maintaining better cache coherency. Test
it on several machines with different cache hierarchies and memory bandwidth
if you can.

Status: Taken by Mr. Gower.

Write code for the conjugategradient method for solving linear systems.
(I shall cover this method in class.)

Status: Taken by Mr. Sun.

Write the toplevel code of a multigrid linear solver using the grid
refinement code already in geometrycode.scm. (I shall cover
this method in class.)

Status: Taken by Ms. Park.

Implement projectors based on local quasiinterpolants for the multigrid
code. (I shall cover this method in class.)

Status: Taken by Mr. Martynov.

Implement boundary triangles with one curved side.

Status: Taken by Ms. Joo.

Implement faster code for triangulating a polygon that does not give long,
skinny triangles.

Implement higherorder (quadratic, cubic, etc.) elements. This will
be a lot of work; two people can work together on this project if they
wish.

Write timestepping code for parabolic PDE's. At least do backward
Euler and CrankNicholson (spelling?), separately and with CN following
a fixed number of backward Euler steps, together with linear prediction.