Courses: The GoldSim Contaminant Transport Module:

Unit 10 - Using Features of the RT Module: Modeling Decay Chains, Isotopes and Doses

Lesson 3 – Modeling First-Order Reactions and Reaction Products

In an earlier Unit we looked at a simple example in which a species was decaying. However, in that case there were no daughter products. One of the key features of the RT Module is the ability to define daughter products for a species when it decays. In this Unit we will explore how this is done. To do so, we will walk through an example together. (This will require the RT Module; you will not be able to follow along with the CT Module).

Open a new GoldSim model and double-click on the Species element (inside the Material Container). Press the Add… button to create a second species, and name it B:

Close the dialog for species B and double-click on the first species (Species1).  Rename this to A:

We are going to specify that A decays to (reacts to form) B.

Decay can be specified in terms of a half-life or a first-order decay rate.  Note that the relationship between half-life and first-order decay rate is as follows:

Half-life = ln(2)/Decay Rate

All species must be defined in the same manner.  The manner in which decay is specified is selected on the main species dialog:

By default, decay is defined using half-lives, so we see that in the dialog for species A there is a field for Half-life. Half-lives have dimensions of time, and represent the time it takes to decay half of the initial mass.

Note: The default Half-life is zero.  Physically, of course, a zero half-life would indicate that the species decays instantaneously (and hence would be meaningless).  In GoldSim, a zero half-life indicates that the species does not decay at all (i.e., it indicates a decay rate of zero). This is indicated in the dialog for the species, where “No decay” is displayed if the half-life is set to zero.

Note: For radioactive decay the half-life is constant. However, by making the half-life a function of the concentration of other species, or of other model parameters (e.g., temperature), nearly any complex reaction can be represented.

Enter a value of 40 days for the half-life of A.

Next we need to specify the daughters (the reaction products).  GoldSim allows up to four daughters to be specified.  For each daughter, we must also specify a Stoichiometry (also referred to the branching fraction for radionuclides). This defines the number of moles of daughter produced for each mole of the species which decays. To understand Daughters and Stoichiometry, consider the following reaction:

3A => 2B + 5C

We could rewrite this as:

A => (2/3)B +(5/3)C

Hence, in this case, the Stoichiometry for B would be 0.67 (2/3) and the Stoichiometry for C would be 1.67 (5/3).

Note: For most radioactive species, there will be a single daughter product and the Stoichiometry will be 1.  Some radioactive species, however, decay into multiple daughter products (e.g., 95% of the disintegrations produce species A, and 5% produce species B).  In this case, you should use the Stoichiometry to specify this "branching fraction".  In this case, the Stoichiometry would be 0.95 for the first daughter, and 0.05 for the second daughter.

In this simple example, we are going to define a single Daughter (B), and specify a Stoichiometry of 1:

Let’s now add a Cell to the model.  Specify a volume of water of 1 m3, and define an Initial Inventory of 1 g of A and 0 g of B.  Finally, make sure to save a Time History of the mass in the Cell:

If we run this model and plot the mass in the Cell, the result looks like this:

Note that half of the mass of A has decayed to B at 40 days.

In this case, GoldSim is solving the following two equations:


  • MA is the mass of A;
  • MB is the mass of B;
  • λA is the decay rate of A (recall  that λ = ln(2)/Half-life);
  • SBA is the Stoichiometry (moles B produced per moles A decayed);
  • WA is the molecular (or atomic) weight (in g/mol) of A; and
  • WB is the molecular (or atomic) weight (in g/mol) of B.

We’ve seen the first equation in a simple example of decay (with no daughters) we discussed in Unit 5. However, the second equation (for the daughter) is a bit more complex as it needs to account for the stoichiometry and the molecular weights.

In this simple example, these equations could actually be solved analytically.  In realistic models, of course, the equations are much more complex (e.g., since they will also include terms for advective and diffusive mass flux links), so GoldSim solves these equations numerically using a finite-difference approximation for the time derivative (as discussed in Unit 5, Lesson 9). As discussed in that Lesson, the accuracy of the solution is a function of both the timestep length and the Solution Precision.

Note: In this example (and other Exercises that we will do later in this Unit) we have greatly simplified the model by dealing only with decay and ingrowth (and ignoring the various transport processes such as advection/dispersion, diffusion, solubility constraints and partitioning).  This was done so we could focus only on decay.  Similarly, in previous Units, we ignored decay so we could focus on the various transport processes. In a real-world model, of course, we will need to model both the various transport processes AND decay and ingrowth.  However, once you do this, the results become much more complicated.

As a result, after defining decay rates and daughter products for your species, you may want to carry out some simulations in which the species do not decay (i.e., decay is deactivated).  This is particularly useful in the early stages of your modeling effort when you are testing and debugging your model.  Temporarily deactivating decay makes it much easier to interpret results and assure yourself that the model has been correctly implemented.

GoldSim provides for this on the Contaminant Transport tab of the Options dialog (accessed via Model | Options). You will see a checkbox that allows you to Disable decay of species. Of course, make sure you remember to clear the box once you have tested and debugged your model!