Home > GRworkbench
The GRworkbench source is on GitHub: https://github.com/andrewmoylan/grworkbench
GRworkbench is software for numerical operations in, and visualisation of, space-times in general relativity, and differential manifolds in general. For my Honours thesis, I (with Antony Searle) developed a new version of GRworkbench in C++. The new version included improvements directed towards enabling numerical experiments within GRworkbench.
Here is GRworkbench visualising the world-lines of the end-mirrors (light blue) and photons (yellow; numerically determined null geodesics) of an idealised interferometer in the vicinity of the event horizon of a Schwarzschild black hole (blue sphere):
Here's how you might use GRworkbench to visualise two different time-like geodesics passing through the same point in the Schwarzschild space-time:
In the above example, "C" is a chart corresponding to the usual Schwarzschild coordinates. GRworkbench automatically handles multiple overlapping charts and the transformations between them. It knows about a variety of standard space-times, with the possibility of adding support for more. It can visualise any parameterised 1- or 2-dimensional surfaces.
See my scientific articles about GRworkbench.
The development of GRworkbench is an ongoing project at The ANU. See the ANU GRworkbench project page for the latest news, and to download any available versions.
The language used above in the textual interface to GRworkbench is "lax". It is an experimental interpreted functional scripting language designed and written by myself and Antony Searle. We learned a lot writing it, most importantly: don't decide to write your own language lightly. That said, lax has some neat features; read on to learn about how it works.
In lax,
Underneath, lax is largely based on the SKI combinator calculus, in which the three basic "combinators" S, K, and I, are defined by
Internally to lax, functions are expressed in terms of these combinators:
By Andrew Moylan (email).