

Research
Programming
Although my research was aimed at the accurate numerical solution
of fracture problems, design and implementation of such a
numerical algorithm turned out to be the most ... interesting ...
part of the work. Among the most useful tools were
 The Ocaml programming
language. The combination of functional programming,
static typing, interactive toplevel, and nearC speeds
makes this my language of choice for complex algorithms.
 The Python programming
language. An easytouse, dynamically typed, imperative/OO
programming language with bindings to many libraries; very
convenient for writing that occasional 3000line, throwaway
prototype  like this GUI.
 Some UNIX tools: lex, yacc, make, m4, and
CVS
 The TeX
typesetting system, to produce legible equations.
 The C programming language.
A small language that never gets in the way.
Also the one language to which every other practical language
must (or at least should) interface to.
But it's
very lowlevel, and this gets tedious.
Using the BoehmDemersWeiser
garbage collector together with a simple exceptionhandling
framework, e.g. that in the book
"C Interfaces and Implementations",
makes it much nicer.
Of course, at this point one might as well use Ocaml...
Also used:
 The Maple
computer algebra system is very convenient for generating
and testing the expressions which go into the real
programs. Its threedimensional scientific graphics
facilities are also nice, although the generated PostScript
leaves much to be desired.
 The Matlab numerical
computation environment. Once complicated data structures
are reduced to dense (or sparse) matrices, experimentation
is trivial in Matlab. Along with its visualization
facilities, this is a very nice environment for getting to
understand one's data.
Unfortunately, these two environments are not cheap...
Author Info
Address: hohnnospamplease@math.utah.edu
Some pictures  worth more (and larger
than) a thousand words.
