Following the steps below should allow you to set up and run a reaction-diffusion model. It may also be worth looking at the reaction scheme tutorial to see how to put more complex reaction schemes in.
Start Catacomb. How you do this depends on the system you are using and what version of java. The instructions on the download page should help. When it starts, it shows you a window with a bunch of orange labels in. This window shows the structure of the current model: which objects are children of others and what cross references there are. The colors indicate different types. At the beginning there are some standard components available. You can move around with the mouse buttons: left click to zoom in, right click to zoom out, right drag to pan.
Create a new reaction-diffusion framework by selecting ReacDiff2 from the objects menu at the top. You may need a few right clicks with the mouse to position the display nicely. The new framework fills the window, with five green boxes and a blue one above with several children. The green ones are empty containers for new objects of particular types. The blue one does a calculation. To set up the model we need at least one object in each of the lists.
Click the bottom green box labelled "ReactionScheme". A new window should appear all in grey. This is the user interface for ReactionScheme objects but as yet there are no such objects.
Create a new ReactionScheme framework by selecting new default from the menu at the top left of the new window. Note that when you do this the object hierarchy picture grows a bit to show the new object in the ReactionScheme list, along with its children.
Drag a new pool onto the reaction scheme display by clicking and dragging the left button on the center of the pool icon (circle with "P_0" in it).
Set its properties with the sliders on the left: Click the zero button for C-0 and unclick the one for D-diff. This sets an initial concentration of zero for that pool, and a diffusion constant of 1. (The units are described later.)
Close the reaction scheme window - use the window manager or its own little "x" button in the top right corner.
Next make an injection profile: click on the green Profile box in the main window. This isn't strictly necessary for the calculation but a reaction-diffusion system with concentrations starting at zero and no source terms will look pretty boring.
Make a new instance with the top left menu - "new default". The "new default" option generates a new default name for this object, making sure it isn't the same as any other names defined so far The "new" option asks you to invent a name, which is well worth the trouble for models you want to keep.
Add a square bump to the initially flat profile by dragging the square wave icon at the top left (hold it by the bottom left corner) and sticking it on the profile. The points are adjustable, but the default will do for now.
Close this window too.
Set up the diffusion space. Select the "MeshedDrawing" list and add a new object. As with other components the little question mark button near the top right shows any available documentation on the current component or user interface - try it now. It should tell you a bit about the MeshedDrawingEditor with pretty pink links.
Create a drawing: click the right button a few times near the middle so the range is about -40 to 40 on each axis.
Drag a square boundary from the top left onto the middle of the picture.
Click and release the top right corner wait for it to turn green, then click and drag out to half fill the window. All the components of a drawing can be scaled this way. You can also move the individual points one by one.
Make a roundish shape by pulling out the orange points. As soon as you click on them they become new points on the line.
Add an internal boundary by dragging a straight line segment (second from left) into the newly created region and adding a few points to it.
Set the meshing parameters to use for this mesh with the "param" option near the bottom. There is already one parameter object created for you called "default". Select this one (it may already be selected). You can edit the parameters with the "edit" option under that menu (try it now, but don't change them yet). Close the parameters window. This object, like all the rest is also visible on the startup window under the MeshCtrl list: clicking on it there has the same function as the "edit" option in this case.
Make a mesh: click the remesh button. All being well, after a few seconds, it will draw a nice triangular mesh. The perimeter is marked in green, and the new boundary in white. There is a progress display at the lower left showing the stages of the mesh generation process.
Unclick the "show mesh" checkbox at the top left to return to the normal picture. The only thing remaining to do for setting up the mesh is to set the properties of the lines.
Drag a square line marker, labelled L, from the top right and attach it to the outer boundary Its properties will appear on the right hand side.
Select "injctn" from the "conc" choice to specify that the concentration on the boundary is set by an injection.
Set the injection profile in the "prof" choice to Profil_0 to specify that the square pulse we set up earlier should be used for this boundary.
Attach another line marker to the internal boundary and set its value of f_perm to 0.01. If it sticks to the wrong line, drag it off with the right mouse button. The easiest way to set f_perm, is to put the mouse over that slider and type 0.01 at the keyboard then return. If you don't like the random colors it comes up with, use "set color" from the popup menu that appears when you press the "meshedCptProps" button near the top right. Pick or set a color with the ColorTargetEditor and press apply at the bottom when done.
Remake the mesh using these properties: click remesh. Now we are ready actually to run the calculation. In most Catacomb models the calculations run in the background all the time: as soon as you change a parameter they rerun and keep the display of results up to date. This is fine for fast calculations, but can be awkward for slow ones. There is a "rerun" button at the bottom right of the meshedDrawing window which will force a rerun. However, first you must bring the calculation object to life.
In the startup window click the blue "calc" box. Its progress display rapidly moves to 100% showing that the calculation has been completed. However, the "timestep" and "runtime" at the top do not match the default injection profile we made.
Set the timestep to 2. Put the mouse on the timestep slider and type 2 then return.
Set the runtime to 200 as above. This is the total length of time to run the calculation (in arbitrary units as yet).
Now set the scheme and mesh choices to the first
Click "rerun" on the MeshedDrawing window or the "calc" window. The calculation should take a little longerthis time.
Click "res" in the calc window. This brings up a window to play through the results just computed. click the "play" button a few times to run it. You can also just drag the progress slider yourself. There are a number of display options on the top right: they don't affect the calculation, just how much time is taken to draw each frame of the output. The default color table is rather boring, but can be edited at will.
Click the "colors" button in the "calc" window. This shows the color table. Click one of the boxes to set its color with the ColorTargetEditor. To interpolate across the table between two boxes, click the first with the left mouse button and the second with the right button. In this way you can quite quickly build up a more colorful table with smooth gradations of colors. You can also set what values in the data these colors apply to with the Cmin and Cmax sliders: values between Cmin and Cmax get mapped linearly onto the colors in the table.
Finally, save the model with the "save" option on the startup window in the "file" menu. The name can be anything you like, but it is a good idea to use the extension .ccm to identify Catacomb models. If you use "save config" it will also save the positions of the windows that are currently open so you can get back to the same state when you reload the model.