Figure 4: Triangulation of a lake with an island
Unstructured grid generation on a complex geometry
using DISTMESH, a mesh generator in Matlab (see SIAM Review
Vol. 46, No. 2, pp.329345, 2004). 281 nodes were used and
312 triangles were created.
Figure 5: Snapshot at T = 200
Numerical solution of an expanding wavefront for phytoplankton in a
phytoplanktonzooplankton reactiondiffusion model with complex
lake geometry (bounding box is [0,400]^{2}), after the localized
introduction of predators at (200,380) (marked with an 'X') into
a homogeneous distribution of prey. Associated
unstructured mesh has 2645 nodes and 4928 triangles. The standard
Galerkin FEM using continuous piecewise linear basis
functions was employed with zero flux boundary conditions.
Figure 6: Snapshot at T = 200
Numerical solution of spatiotemporal 'chaos' for phytoplankton
in a phytoplanktonzooplankton reactiondiffusion model with
complex lake geometry (bounding box is [0,400]^{2}),
after the localized introduction of predators at (250,200)
(marked with an 'X'),
into a homogeneous distribution of prey. Associated
unstructured mesh has 2645 nodes and 4928 triangles. The standard
Galerkin FEM using continuous piecewise linear basis
functions was employed with zero flux boundary conditions.

Predatorprey models on arbitrary shaped domains
Understanding the relationship between spatial patterns in population densities and environmental heterogeneity
is crucial to the understanding of population dynamics and for the management of species in communities.
My previous simulations of predatorprey interactions
were done on a square domain (habitat). This project
extends previous work as it involves generating unstructured grids on
arbitrary shaped habitat geometries, for
example, in the simulation of plankton dynamics in a lake (see Figure 4). This work is
in collaboration with a Research Associate, John Burkardt.
There are four main issues in this project. Firstly, there is the question of
what form the input data should take for the lake geometry, i.e.,
whether we use explicit boundary data or an implicit description (e.g., level
set). One possible solution we have used is to create a polygonal domain using the Linux drawing
package Inkscape. Secondly, there is the task of generating a 'good' mesh on the
computational domain. An example of a good mesh in 2D is one where all
triangles are approximately equilateral, and there are many element quality indicators for
measuring this. There are a large number of software packages available for unstructured grid generation in 2D.
One particularly simple set of routines in Matlab that we have used is called
Mesh2d v2.3.
Once we have generated our mesh for the computational domain, we need to apply the Finite Element Method discussed
above, assemble the resulting linear system, and solve the linear system in an efficient manner. See below for some
webpages that I have written for generating computational regions, and implementing some MATLAB code to simulate
predatorprey interactions in arbitary shaped habitats with various boundary conditions:
Finally, there are ecological questions concerning how the
geometry of the habitat, including possible landscape features (e.g., islands),
influences the spatiotemporal dynamics of the solutions. Some preliminary results of our work
are shown in Figures 5 and 6 for a ficticious lake with an island. Due to quota constraints I cannot
show the animation that I have for these dynamics which are very interesting!
