Courses: The GoldSim Contaminant Transport Module:
Unit 12 - Pulling it All Together: Building Complex Contaminant Transport Models
Lesson 6 – Representing Complex Geochemistry
Note: For the purpose of the discussion in this Lesson, it is important to define what we mean by the term “species”. As we have seen throughout this Course, in GoldSim, the term “species” has a very specific meaning. A species in GoldSim is an element, molecule or electrolyte whose mass (and concentration) you are tracking in your model. When discussing geochemistry, however, this can be confusing, since what we refer to as a particular “GoldSim species” is typically present in multiple forms. For example, we might define a GoldSim species called Fe, but it would actually be present in solution in different forms (e.g., Fe2+, Fe3+, as well as other anions and cations of Fe, including various complexes) and perhaps as a solid. In geochemical terms, this is referred to as speciation, and these forms are themselves referred to as different species of Fe, and this can cause confusion. To avoid this confusion, in the discussion in this Lesson, we will always use the term GoldSim species to refer to the item defined in GoldSim. In most models, you will likely be able to simply treat all forms of a particular element (e.g., Fe) as a single GoldSim species. But as we will discuss further below, to properly represent geochemical processes in some models, this may not be appropriate, and each form (e.g., Fe2+, Fe3+) may need to be represented as a different GoldSim species.
Under what circumstances is consideration of complex geochemical processes necessary?
In most of your models, you will likely be interested in modeling solutes that are present at relatively low concentrations in water. As we first discussed in Unit 7, however, in some cases at some locations in the system the solutes may be present at high enough concentrations such that they precipitate out of solution (i.e., exist in both a dissolved state as well as a solid or liquid state). For example, an anion like Ca2+ could precipitate out to form solid calcite, or an organic compound may be present in such quantities that it cannot totally dissolve and some would be present as a separate liquid phase.
In these situations, the solute is fixed at a solubility limit. As long as the solid (or in the case of the organic, pure liquid) phase exists, the solute will be present at the solubility limit. It can drop below the solubility limit (if all of the solid or liquid phase dissolves), but (except under very special circumstances) cannot exceed the solubility limit. This solubility limit is controlled by the chemical conditions at that location (e.g., pH, the concentrations of other electrolytes that can form complexes or solids with that GoldSim species).
This process can have an enormous impact on mass transport, since it limits the dissolved concentration (and hence affects the advective and diffusive flux) of contaminants through a system. In fact, solubility (and sorption) play a key role in many treatment processes, as chemicals are added to cause precipitation (and/or sorption) and then the solid is removed from the system.
In Unit 7, Lesson 5 we introduced a very simple way to represent this by defining a solubility limit for each GoldSim species (actually, by defining a solubility for the element for each species). Such an approach is often appropriate when a GoldSim species in a source term is controlled by solubility considerations. For example, in a radioactive waste disposal facility, there may be a very large quantity of the solid form of the GoldSim species (e.g., uranium dioxide). Moreover, the chemical conditions at that source may be considered to be well-defined and not changing significantly over the time frame of interest. In such a case, it is often possible (through lab experiments and/or process-level modeling) to simply a priori determine and assign a solubility limit for a GoldSim species (i.e., element) for the duration of the simulation, or perhaps several different solubility limits (e.g., early in the simulation when certain chemical conditions are expected, and later in the simulation when different chemical conditions are expected).
However, in some cases, the chemical conditions at a location may be complex and changing throughout a simulation, making it impossible to simply assign a solubility limit a priori. For example, at a mine you may have several streams of water (with highly variable chemical compositions and flow rates) mixing into a pond. Moreover, the pond itself may be subject to varying evaporation rates (which impact concentrations). In such a system, the dissolved concentration of any particular GoldSim species would be controlled by which solids and aqueous complexes form, and all of the conditions that determine this would be changing over time.
It should also be noted that understanding and representing such geochemistry is not only important for determining how much of a GoldSim species is present in solution (i.e., the solubility). It is also important for determining the form in which it is present in solution (regardless of whether any solid is precipitated out). Various metals can exist as different aqueous species (depending on the water composition), and metal sorption (i.e., partitioning) is a function of the speciation of the metal in solution (which in turn is a function of redox conditions, ionic strength and composition, and pH). If multiple forms of the metal could exist in solution during a simulation, in order to properly model partitioning, you may need to not just represent a particular metal (e.g., Fe) as a single GoldSim species, but instead may need to include different forms of the metal (e.g., different oxidation states) as separate GoldSim species, each having a different partition coefficient. And to do this, you need to be able to calculate at any given time the concentration of each of these different forms. Of course, in many cases, a metal may be assumed to be present in only a single predominant form so such an approach may not be required. But if chemical conditions are variable in space and time such that multiple forms are present, you may indeed need to account for this.
In summary, in some situations (e.g., systems where chemical conditions vary widely spatially and/or temporally due to mixing) speciation (e.g., the concentrations of various forms of a element of interest) must be considered to properly represent precipitation and/or sorption, and hence the dissolved concentrations of GoldSim species you wish to simulate. Computing the concentration of the various forms of an element in solution requires representing all of the chemical equilibria equations involved (and there may be many of these) and solving the equations simultaneously whenever the conditions have changed. GoldSim itself cannot (under most circumstances) do this. But this is precisely what geochemical models (such as PHREEQC) do.
Note: Geochemical models such as PHREEQC can do more than just solve the chemical equilibria equations. They can also model reaction kinetics, sorption to surfaces, ion exchange, temperature impacts, and mixing, and it may be important to represent these for some systems.
Important considerations before integrating complex geochemical models into GoldSim
Below we will provide a brief summary of different approaches for integrating complex geochemical models into GoldSim. Before doing so, however, there are several points that must be carefully considered. Obviously, if you are not a geochemist (or don’t have access to one), you should not attempt to integrate such models into GoldSim. More specifically, the following questions should be asked:
- Is a geochemical equilibrium model really necessary? In many cases, careful examination of a geochemical problem may show that using the capabilities already built into GoldSim (e.g., simple solubility constraints, partitioning and first-order decay and ingrowth) is sufficient to model a system to a level of detail consistent with the actual level of understanding of the system.
- Do you have a good understanding of the system and is the system well constrained? If a geochemical system is poorly constrained, a geochemical model is likely to produce poor results. In most cases, a good understanding of what reactions can be expected to occur and what their effect on solution compositions should be is necessary in order to make sure that the results make sense.
- Do you have good working knowledge of the geochemical model you wish to use? To use a geochemical model, you must have a very good understanding of how geochemical models work. You must also be familiar with the syntax used to setup the model's input files.
- Do you have programming experience (or access to such experience)? Some (but not all) approaches for linking geochemical models to GoldSim involve editing source code and creating DLLs.
It should also be noted that based on your conceptual model for the system (which will generally evolve as you develop better understanding of the system), you may actually decide that using GoldSim for a particular problem involving complex geochemistry is not appropriate at all. That is, while in many cases, GoldSim may well be the best tool for quickly building a reliable model, in others (such as those involving complex reaction path models, redox changes, or gas phase interactions), using standalone geochemical models (rather than GoldSim) may be a better choice.
Approaches for representing complex geochemistry in GoldSim
If you do need to represent complex geochemical processes in GoldSim, how do you do so? Below, we briefly outline different ways this can be approached (and linked to Model Library examples where each approach is illustrated). These examples (and discussion) were all provided by Ted Eary of Enchemica LLC.
There are basically three general approaches:
- Carry out the geochemical equilibrium calculations directly in GoldSim. If the system is simple enough, it may be possible to represent and solve the geochemical equilibria equations directly in GoldSim. Two examples of this approach can be found here and here. It should be pointed out that conceptually it is possible to represent and solve the geochemical equilibria equations directly in GoldSim for much more complex systems. But practically, this becomes quite difficult, especially as the number of GoldSim species increases.
- Incorporate geochemical calculations into a GoldSim model indirectly through the use of Lookup Table elements. In this approach, Lookup Tables are constructed using water quality results from a series of geochemical model runs that encompass the range of compositions that might occur in the system. That is, rather than doing the geochemical calculations directly in GoldSim, they are carried out prior to running the model (in a set of separate geochemical modeling calculations), and then represented in GoldSim as Lookup Tables. This allows much more complex chemical systems to be represented. Two examples of this approach can be found here and here. The advantage to this approach is that the GoldSim model will run much faster (as opposed to linking a geochemical model directly to GoldSim, discussed below). The disadvantage is that time is required to set up the Lookup Tables and any changes to the conceptual model would require new tables.
- Representing geochemistry by linking GoldSim dynamically to a geochemical model. In this, the most complex approach, the geochemical model is linked directly to (i.e., called by) GoldSim. This is done by using an External element in GoldSim. The advantage of this approach is that it provides complete dynamic access to the geochemical code (e.g., you call the code every timestep as conditions change and multiple calls to the geochemical code can be made to represent chemical processes occurring during multiple mixing steps). The disadvantage is that the GoldSim model will run more slowly due to the continuous exchange of information with the geochemical code. Also, such an approach requires programming skills and experience with setting up and running geochemical models. An example of this approach can be found here.