Courses: The GoldSim Contaminant Transport Module:

Unit 11 - Using Features of the RT Module: Modeling Complex Source Terms

Lesson 9 - Exercise: Modeling Release from a Source with Multiple Packages

In the previous Lesson we looked at an Example that involved multiple packages.  However, we only looked at exposure of the mass in the packages and did not consider mass transport out of the Source. We pointed out that this was intentional because in order to consider mass transport out of a Source with multiple packages, we need to revisit what the Associated Cell(s) actually represent.

In Lesson 6, we noted that the Associated Cell(s) for a Source are intended to physically represent a single package within the Source. This worked fine when we had only a single package, but if we have multiple packages, what does this mean? That is, how can the Associated Cell(s) represent a single package when we have 10,000 packages?  What do the Associated Cell(s) actually represent and how do we define their properties? 

The key point is that when you define the properties for an Associated Cell (e.g., amount of media, flow rates, diffusive connections), you should do so such that they do indeed physically represent a single package within the Source. For example, if you are modeling 10,000 drums, the amount of water in each drum is 0.1 m3, and you are using a single Associated Cell to represent that interior of the drum, you should define the Amount of Water in that Associated Cell as 0.1 m3.

That, however, is not how GoldSim actually represents the system.  Instead, Associated Cells behave in a special way.  In particular, GoldSim automatically scales some of the properties of the Associated Cell(s) so that the Cell(s) contain the exposed mass of multiple packages.

The Associated Cell properties that are scaled internally by GoldSim are as follows:

  • the volume and masses of the media in the Cell;
  • the flow rate for advective mass flux links from the Cell; and
  • the diffusive area for diffusive mass flux links to/from the Cell.

These properties are dynamically multiplied by the number of failed packages.  Hence, at any given time in a simulation, the Associated Cells actually represent the group of all the packages that have failed up to that time.  In effect, GoldSim accounts for the presence of multiple packages by dynamically increasing the size of the Associated Cells.

Obviously, this is an approximation. In order to avoid this approximation and more accurately simulate the mass transfer within a Source, however, it would be necessary to represent every package using a separate set of Associated Cells.  If only a limited number of packages exist (e.g., 10), this would be feasible.  If the number of packages numbers in the hundreds or thousands, however, such an approach would quickly become impractical.

So what are the implications of this approximation? The basic assumption of this approach is that at any given time, all of the exposed mass within a Source can be considered to be evenly distributed among the failed packages. Of course, in reality, the exposed mass may be concentrated in some fraction of the failed packages (e.g., those that have failed recently). In cases where solubility limits are involved (i.e. , exposed mass is at its solubility limit in an Associated Cell), this could result in artificially high release rates.  This is because if mass transfer from a single package (that has recently failed) is actually limited by solubility considerations, spreading the same mass over a number of packages (some of whose mass has already been flushed out) could have the effect of artificially negating the local solubility limitation.

So although this approximation could, in some instances, overestimate the release rate from a Source, in general it is not a bad assumption (it is often better to overestimate release rates than underestimate them). More importantly, the alternative (defining a separate Source for each package) is impractical when simulating a large number of packages.

To illustrate how this works, we will work through an Exercise.

In this Exercise, the Source represents 100 concrete vaults (i.e., essentially square boxes). The vaults are filled with grout, and three contaminants (X, Y and Z) are disposed within the grout (that degrades over a fixed duration). None of the species decay.

Water flows vertically through each vault after it fails.

Prior to the failure of the concrete walls the flow through the walls (and hence the grout inside the vault) is insignificant. The vault, therefore, can be represented as the “package”. No mass is transferred out of the vault until it fails. The failure distribution for the vaults can be described using a Weibull distribution.

The pore space inside the vault (within the grout) is assumed to always be saturated and the porosity of the grout (and hence the volume of water inside the vault) does not change as it degrades.

Y has a specified solubility limit (and X and Y are infinitely soluble).  Z partitions onto the grout after it is exposed (X and Y do not).  

The inputs for this model are as follows:

Variable Value
Number of vaults 100
Initial Mass of X, Y and Z in each vault 100 g
Solubility of Y 5E-03 mol/l (-1 for X and Z)
Grout Partition Coefficient for Z 4E-04 m3/kg (0 m3/kg for X and Y)
Grout Bulk Density 2000 kg/m3
Grout Porosity 0.2
Length and Width of vault 2 m
Height of vault 1 m
Infiltration Rate (after failure) 0.2 m/yr
Matrix degradation duration 2 yr
Weibull Slope 2
Weibull Lifetime 3 yr

We will model the inside of a vault using a single Cell.

To create this model, you should start with a new model and follow these steps:

  1. Edit the Species element and add X, Y and Z. 
  2. Create Data elements for the inputs in the table above.  Note that the Solubilities, Partition Coefficients and Initial Mass should be vectors of species. (These are really elemental properties, but as we have no isotopes, the species and elements are the same.)
  3. Create Expression elements that represent the Flow Rate through the vault (after failure) and the total volume of the vault.
  4. Edit the Water element to specify the Solubilities.
  5. Create a Solid (named Grout) and specify the properties (density, porosity and partition coefficients).
  6. Insert a Source element and specify the following:
    1. Specify a single barrier and define a Weibull distribution with the defined slope and lifetime.
    2. Specify the inventory.
  7. Create a Cell outside of the Source.  You don’t need to specify any properties for this Cell as it will simply act as a sink so we can compute the release rate from the Source (give it a name that starts with “Sink”).
  8. Inside the Source Container, edit the single Associated Cell as follows:
    1. Specify that it contains Water and Grout and define the appropriate amounts.
    2. Create an Outflow from the Associated Cell to the “sink” Cell outside of the Source using the flow rate you defined in step 3.
  9. Create a Time History Result element to plot the release rate of each species from the Associated Cell (to the sink Cell).
  10. Set the Time Settings for a Duration of 10 yr and a timestep of 0.01 yr. Set the Monte Carlo Settings to run 10 realizations.

Stop now and try to build and run the model.

Once you are done with your model, save it to the “MyModels” subfolder of the “Contaminant Transport Course” folder on your desktop (call it ExerciseCT19.gsm). If, and only if, you get stuck, open and look at the worked out Exercise (ExerciseCT19_Multiple_Vaults.gsm in the “Exercises” subfolder) to help you finish the model.

Let’s walk through the model now.

The model should look something like this:

In this model, the various inputs have been organized into a Container.  The inside of that Container looks like this:

Note that Source_Mass, Solubilities and Partition_Coefficients are all vectors of species.

The Vault_Flow_Rate should be defined as:

The Vault_Volume is simply the product of the height and the two sides:

The Source should look like this:

Note that there is a single Inventory Cell (renamed as Interior_of_Vaults in this case).

The Outer Barrier should be defined as follows:

The Inventory should be defined as follows:

Recall that this represents the inventory for a single package (i.e., vault).

Inside of the Source Container there is a single Associated Cell that should look like this:

It should have an Outflow to the sink Cell outside of the Source:

Make sure you save the Time Histories for this result (as this is the result we are interested in).

That is, the result we are interested in is the release rate from the Source, which is simply the mass transfer rate from the Associated Cell to the Cell outside of the Source:

If you run the model and plot the mean result (not the individual realizations) it will look similar to this:

Note: It is helpful to look at the mean (rather than individual realizations) because there is some variability from realization to realization due to the relatively small number of packages which are failing randomly according to the specified failure distribution.

Before we discuss this result, the following points should be noted (these are the same points we noted for the last Exercise when we looked at this output):

  • Your result will look slightly different (since there is a relatively small number of packages and they are failing randomly, even the means will look slightly different with different random number seeds). 
  • Your chart labels and lines will look a bit different.  Let’s briefly review the steps we carried out here to make the chart look a bit nicer:
    • The default style for the third array item has been modified.  You can change the line style by pressing the Edit Properties button in the in the chart (the farthest button to the right) to view the Time History Result Properties dialog. After doing so, to the right of the Result, under the Style column, press the Edit… button and select “Edit Row Label Set ‘Species”.  The Array Label set dialog for Species will appear.  In the chart shown above, we have simply changed the line style for the third item (to a dashed rather than dotted line).
    • In the Time History Result Properties dialog we deleted the Label. By doing so, only the array item then appears in the legend (rather than repeating the result name for each output).
    • The Y-Axis label was edited. When viewing the chart itself, you can press the Chart Style button (second button from the right), to edit the Y-Axis label (it is one of the tabs). By default, it refers to a keyword (%rlabel%) that causes the entire name to be displayed:

       In this case, it has been simplified to simply say “Rate”:

Learn More in GoldSim Help: Viewing Time Histories for Array Outputs; Controlling the Chart Style in Time History Results

Note: After making these changes, create a Result element, as we will build on this Exercise later in the Unit.

Let’s now focus on this release rate result. We noted in Lesson 2 that the exposure rate (controlled by package failure rates and/or matrix degradation rates) and the mass transfer rate (controlled by the advective and diffusive processes controlling mass transfer of the exposed mass from the Associated Cells) can be viewed as competing processes with regard to controlling the release rate of a species from a Source. Often, one of these processes dominates for a given species in a Source. Let’s see if that is the case here.

Let’s first look at X.  Recall that X has neither a solubility limit nor is it sorbed onto the grout in the vault.  Moreover, the flow rate from the vault is relatively high.  As a result, we would expect the mass transfer rate for X to be relatively high and therefore the release rate for X to be controlled primarily by the exposure rate.  To verify this, we can compute the exposure rate for X (as we did in the Example in the previous Lesson).  In fact, if you look at the completed Exercise (ExerciseCT19_Multiple_Vaults.gsm in the “Exercises” subfolder) you will see we have done this.  The Exposure rate is identical for all three species. If we look at the mean value for the 10 realizations, it looks like this:

What we can see by comparing this exposure rate result to the release rate result for X  is that the release rate from the Source for X looks very similar to the exposure rate; it is simply slightly delayed and dispersed. This slight delay and dispersion is due to the impact of the mass transfer rate (the flow rate out of the Associated Cell).  It implies that the release rate is controlled primarily by the exposure rate, but the mass transfer rate after exposure is slow enough that it also has a slight effect on the release rate.

The impact of the mass transfer considerations on the release rate is much more pronounced, however, for Y and Z.  Recall that Y sorbs onto the grout after it is exposed.  This has the effect of significantly delaying and dispersing the release. This can be thought of as a case where the exposure rate and mass transfer rate have a similar effect on the release rate (neither dominates).  The release rate for Z, on the other hand, is dominated by mass transfer considerations.  In particular, the release rate is controlled by the solubility limited mass transfer rate (i.e., due to the low solubility limit, mass is exposed much faster than it can be transported out of the interior of the vault).

This simple Exercise again illustrates how difficult it would be for you to represent a release rate using an equation.  The release rate for any given species is a complex function of the barrier failure rate, the matrix degradation rate, the mass transfer rate (as controlled by advection, diffusion, solubility and partitioning), and (although we did not consider it in this Exercise) decay and ingrowth. To represent the various processes controlling release realistically, you need to actually model them using the Source element.

Make sure you save this model to the “MyModels” subfolder of the “Contaminant Transport Course” folder on your desktop (call it ExerciseCT19.gsm), as we will build upon it in a later Exercise.