Software for Numerical Methods for Partial Differential Equations

This software was developed for and by the students in CS 615, Numerical Methods for Partial Differential Equations in 2000, 2003, 2005, 2008, 2010, 2012, and now 2014. Its goal is to implement the finite element method in two dimensions. It is written in Scheme, and uses some features of Gambit, the Scheme->C compiler written by Marc Feeley. It uses Meroon, developed by Christian Queinnec, as its object system.

Note: This software is a work in progress. While much of it works as intended, much of it has not yet even been tested.

The code is coming along nicely and passes the tests in final-tests.scm and test-parabolic.scm. Note that with the infrastructure that we have built, it is trivial to compute things like the L2 and H1 norms of the error.

Timing and accuracy results are available for the multigrid code applied to problems of varying difficulty in the file mg-results. Some results on bigger problems can be found in mg-results2.

Timing and accuracy results are available for the conjugate-gradient code applied to problems of varying difficulty in the file cg-results.

The file parabolic.scm contains a solver for parabolic differential equations, and the file mmoc.scm contains a solver for transport-dominated diffusion problems. The last two files on this page were used to produce this HTML file.

A gzipped tarball of all the sources can be found here. A short article describing the process of software development can be found here.

Changelog

all.scm

utilities.scm

sort.scm

linear-algebra.scm

sparse-linear-algebra.scm

points.scm

geometry.scm

geometry-code.scm

linear-elements.scm

linear-elements-code.scm

problem-descriptions.scm

conjugate-gradient.scm

intergrid.scm

multigrid.scm

dirichlet.scm

parabolic.scm

mmoc.scm

polygon.scm

pgm.scm

final-tests.scm

test-dirichlet.scm

test-parabolic.scm

test-mmoc.scm

symbolic.scm

tex.scm

html-lib.scm

describe.scm