Courses: The GoldSim Contaminant Transport Module:

Unit 4 - Exploring and Running a Simple Contaminant Transport Model

Lesson 4 - Describing the Flow System


Note: In this Lesson, we are continuing to explore the example file named ExampleCT2_ContaminatedPond.gsm.  It can be found in the “Examples” subfolder of the “Contaminant Transport Course” folder you should have downloaded and unzipped to your Desktop.

As discussed in Unit 1, the Contaminant Transport Module is used to model the movement of mass through the system.  And as we discussed in Unit 3, one of the most important processes controlling the movement of contaminant mass is the movement of media (e.g., water) through the system. This results in the advection of contaminant mass through the system (e.g., dissolved or suspended in the moving water).

The key point here is that the pathway elements in the Contaminant Transport Module require the media flows through the system as input.  They do not compute the media flow rates themselves. This means that you are required to create a flow model (using the basic GoldSim framework) that conserves media mass and produces the media flow rates that can subsequently be used by the Contaminant Transport Module. As a result, in almost all cases, you will first build your flow model, and then will subsequently build your contaminant transport model.

For some systems, the flow system may be very complex. For this Example model (and for most of the Examples and Exercises in the remainder of the Course), we have intentionally assumed a very simple flow system, since our goal is to focus on the use of the Contaminant Transport Module elements.  However, we will discuss how more complex flow systems can be addressed in Unit 12.

Returning to this flow system, we have simplified it in several ways. First, we have assumed that the volume of water in the pond is essentially constant.  Of course, in the real world the water level in a pond like this would vary seasonally to some extent (although this fluctuation could in fact be small). Such an assumption is not necessary when modeling compartments like ponds in GoldSim.  In fact, we will see some examples later in the Course where pond volumes we are simulating vary with time.  (If a pond does vary with time, we would need to use a Reservoir or Pool element to model this transient behavior.)

By making this assumption of an effectively constant pond volume, we are able to greatly simply the rest of the flow system. Among other things, we don’t even need to specify the rainfall, runoff or evaporation rate. These would only be required if we needed to compute a fluctuating pond volume (or these flows carried contaminant mass into or out of the pond). Conceptually, we are saying that the sum of the rainfall and the runoff is assumed to be equal to the sum of the evaporation rate and the seepage.  The only flow associated with the pond that we need to compute is the seepage rate.  We need this flow rate because it transports (advects) contaminant mass (no mass is transported in by the rainfall and runoff or out by evaporation). 

Note: Water also enters the pond for a short time period via the pipeline, but we have assumed this is very small relative to the other flows.  As we will discuss subsequently, however, because the pipeline is in fact the source of contaminant mass to the system, we do need to consider the rate at which contaminant mass is added via the pipeline. We do not, however, need to consider its impact on the flow system.

Our model for the volumetric seepage rate out of the bottom of the pond simply uses Darcy’s Law:

In this equation, Area is the area of the bottom (and in this case, also the top) of the pond, Ksed is the saturated hydraulic conductivity of the sediments, Thicknesssed is the thickness of the sediments, and D is the depth of the pond.  It is assumed that the sediments are saturated, but the underlying sand is not.  Hence, the gradient is simply the head difference across the sediments (D + Thicknesssed ) divided by the thickness of the sediments. The key assumption here is that at the bottom of the sediments (top of the unsaturated zone), the system is equilbrated with the atmosphere such that the pressure head is zero (atmospheric).

You will find this equation in the Seepage_Rate Expression element inside the Flows Container:

Note that if we allowed the water elevation in the pond to vary, this equation would still be appropriate, but it would complicate the model for the flow through the unsaturated zone appreciably. This is because at steady state, we can simply assume that the vertical flow through the unsaturated zone is equal to the seepage rate from above (we are assuming that any horizontal spreading of the infiltrating seepage is insignificant; all infiltrating water entering the unsaturated zone only moves vertically). If the seepage rate was variable, the flow through the unsaturated zone would still be a function of the seepage rate, but it’s response would be complex (i.e., saturation values would change with time and space in the unsaturated zone as “pulses” of increased seepage moved downward through the system).  The assumption of a constant seepage rate allows us in this example to avoid having to deal with modeling the transient flow of water through the unsaturated zone. (We will discuss how such transient flows could be treated in GoldSim in Unit 12.)

Flow in the saturated zone is also assumed to be at steady state.  That is, the various sources that recharge the shallow groundwater system are assumed to have only a slow and gradual impact on the system.  Of course, in some systems, the water table (and the hydraulic gradient) will change with time (and we could represent this if it were essential).  But assuming a steady state groundwater flow is not unusual. We will also describe the flow rate in the shallow groundwater plume using Darcy’s Law:

In this equation, Plume Area is the area cross-sectional area (perpendicular to the flow direction), Ksand is the saturated hydraulic conductivity of the sand, and is the (constant) hydraulic gradient. You will find this equation in the Plume_Flow_Rate Expression element inside the Flows Container:

The Plume Area here is computed as the width of the plume (assumed to be the width of the overlying pond) multiplied by the plume thickness.  As we will discuss subsequently, however, the Plume Area is actually somewhat arbitrary, and in this model does not affect the results.

The final flow rate to be specified is that in the stream (just downgradient of where the plume discharges).  We won’t calculate this (it is an exogenous input). We will, however, assume that, unlike the other flows, it varies seasonally.  Of course, as we have noted, the other flows would also likely vary seasonably also, but we are assuming that their variability is small, while that for the stream is much higher (which is not unreasonable to assume).  The stream flow is defined using a Time Series element named Stream_Flow_Rate that can be found in the Inputs Container. In this element, we provide a number of (instantaneous) measurements for the flow rate (which includes all of 2019):

We then tell GoldSim to carry out time shifting of the Time Series, basically assuming every year behaves like 2019:

Time shifting of Time Series is discussed in Unit 10, Lesson 7 of the Basic GoldSim Course.

Run the model now (press F5) and go to the Results Container. Double-click on the Key System Flows Result element:

This shows the flows that we just discussed (which, due to our simplifying assumptions, are the only ones we need for this simple model). The model has been set up to run for 10 years. The seepage rate (and hence the flow through the unsaturated zone) as well as the groundwater flow rate are constant, and the stream flow rate varies seasonally. The seepage rate is an order of magnitude less than the groundwater flow rate, which in turn is close to two orders of magnitude less than the stream flow rate.

Close the result display and press F4 (to return to Edit Mode). Now that we have described the flow system, we are ready to examine the Contaminant Transport Module elements, which we will start to do in the next Lesson.