This article briefly describes six different example models (all developed by Ted Eary of Enchemica) that illustrate how GoldSim can be used to carry out mixing and geochemical calculations. The models proceed from the simplest to the most complex. You can follow the links to read about each model in more detail (and download it).
This is a very simple model that illustrates typical approaches for simulating simple mixing of two solutions with different chemical compositions using Cell Pathways. The model simply mixes two solutions in proportion to their concentrations and flow rates. There is no inclusion of potential chemical reactive processes, such as solubility, aqueous speciation, redox, or partitioning.
This model illustrates an approach for calculating the solubility an an element based on equilibrium chemistry that includes solid phase dissolution-precipitation and aqueous speciation similar in concept to a thermodynamically-based geochemical model. That is, the geochemical equilibria equations are represented and solved directly in GoldSim (this is practical in this example due to the relative chemical simplicity of the system being modeled). In particular, the mineral gibbsite, Al(OH)3, is used for the solid phase and dissolved Al-hydroxyl and Al-sulfate species are used to represent the aqueous speciation. The results are presented as a solubility curve of dissolved aluminum as a function of pH.
This model is similar to the previous one in that it carries out the geochemical calculations directly in GoldSim. In some cases, it is not necessary to include all chemical processes and a simplified approach can be taken. In particular, this model provides an example of how to to calculate saturation indices for gypsum and calcite using fundamental aqueous chemistry principles. These two minerals are common causes of scaling in pipes or formation of precipitates due to the mixing of solutions. Saturation indices are a convenient indicator of the potential for precipitate formation due to conditions of solubility oversaturation.
This model is an example of how to incorporate geochemical calculations into a GoldSim model indirectly through the use of Lookup Table elements. In this approach, the Lookup Table is constructed using water quality results from a series of PHREEQC 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 PHREEQC), and then represented in GoldSim as Lookup Tables. This allows much more complex chemical systems to be represented.
The model considers two streams (one acidic and one alkaline) flowing into a Pond where they mix. The input flow rates of the two streams can vary with time. However, the chemical compositions of the two streams that mix are constant with time (since these must be used to create the Lookup Table). Chemical equilibrium is assumed to be instantaneously achieved at the point of mixing of the two streams.
This model is a more complex version of the previous model. Like the previous model, it provides an example of integrating chemical processes into a GoldSim model where the chemical processes are represented by theoretical equilibrium and empirical relationships developed by methods outside of GoldSim (in this case PHREEQC). The model simulates some of the major chemical processes that occur in a water treatment plant designed to neutralize and remove metals from an influent water typical of acid mine drainage. These processes require lime and air addition to the water and produce sludge.
The purpose of this example model is to provide an example of an approach for using an External element to link a GoldSim model to the geochemical model PHREEQC. The External element allows complex calculations not easily implemented directly in GoldSim by connecting to functions that have been developed in another software language and compiled as a dynamic link library (DLL). In this case, those external functions are written in C++ and are designed to facilitate the transfer of chemical concentrations from GoldSim to PHREEQC, where they can be modified by PHREEQC by the effects of specified chemical processes with the results of the PHREEQC calculations returned to GoldSim. This transfer of information occurs for each timestep of the GoldSim simulation.
The model considers two streams (one acidic and one alkaline) flowing into a Pond where they mix. The input flow rates of the two streams can vary with time. Chemical equilibrium is assumed to be instantaneously achieved at the point of mixing of the two streams. Unlike the example in which the geochemistry is represented using Lookup Tables, the chemical compositions of the two streams that mix can vary with time. Hence, this is the most powerful and flexible way to integrate GoldSim with PHREEQC.
Note, however, that to use this approach, it is important that the user have a good working knowledge of PHREEQC and GoldSim. It will also be very useful to have at least a basic understand of how to re-compile the C++ code into a DLL, because the C++ code will need to be slightly modified for to make it applicable to each model application. Before using this approach, it is strongly recommended that you consider the points discussed in this article.