Jump to content
Geochemist's Workbench Support Forum

Flush configuration, and sorbate include command

Tom Meuzelaar

Recommended Posts

[admin notice: the below is from the former GWB users group email distribution list. This message was originally posted 11/28/2005]


Posted by: Ross McCartney


I would like to simulate (using React 6.0) ion

exchange reactions as one water (water 1), in

equilibrium with an ion exchanger, is gradually

displaced away from the ion exchanger by a

compositionally different water (water 2) until only

the latter remains. I would then like to simulate the

reverse process with water 1 gradually displacing

water 2 until only water 1 remains. My interest is in

how the composition of the water in contact with the

ion exchanger changes during this cycle.


I had proposed to use the flush option with the

'sorbate include' command because my understanding is

that the 'sorbate include' command allows the ion

exchanger to act as a source/sink during the flush

simulation. I also thought that if I used the sorbate

exclude command React would add ions to the system

independently of the flush calculation to maintain

equilibrium between the water and the ion exchanger.


However, I first need to 'fill' my ion exchanger so

that it is in equilibrium with water 1. I can do this

using the 'sorbate exclude' command, but I can't see

how I can subsequently pick this 'phase' up to include

it in the flush model. Any advice?


Also, I tried a preliminary calculation (equilibrium

between water 1 and the ion exchanger) to check that

'sorbate include' command did what I expected but

instead of keeping the total number of moles in the

system the same as input in the basis, they increased

(e.g. from 1.277 to 2.367 moles Na). Have I

misunderstood what the sorbate include command does?


Finally, can anyone tell me how React determines how

much of each constituents to remove when an ion

exchange surface is present in the flush option? Also,

how does it differ where the sorbate include and

sorbate exclude options are used?


Any replies, whether they be specific to the questions

above or whether they provide more general guidance on

how to simulate the above processes will be much



Posted by: Craig Bethke


Hi Ross,


When you set a flush model in the presence of an exchanging surface, React displaces fluid from the equilibrium system with unreacted fluid, but the exchanging surface (and the ions on it) remains in place. The surface reacts with the evolving fluid over the course of the reaction path, exchanging ions in order to maintain equilibrium. It sounds like that's the configuration you're looking for. You do not need to set any special options.


The "sorbate" command applies only to calculation of the initial system. It has no effect, other than the path's starting point, on a flush model. By default, React takes the species concentrations entered on the Basis pane to represent the composition of the initial fluid.


Suppose you set an ion exchange model including Ca++ and constrain the Ca++ basis entry with a concentration of 200 mg/kg. React will calculate an initial system containing 200 mg/kg of dissolved Ca++, as you specified, plus an additional amount of Ca++ on the exchanging surface, this amount reflecting equilibrium between the fluid and exchanger. So the total mass of Ca++ in the initial system, if you count the sorbed as well as dissolved ions, will be greater than the dissolved mass alone and hence greater than 200 mg/kg.


An example of a model conceptualized in this way: you sample a groundwater in contact with an exchanging surface and analyze the water. Now you wish to know the amount of various ions sorbed in the subsurface onto the exchanger. React in its normal configuration calculates this for you.


When you use a surface model in React, however, the program lets you constrain the initial system somewhat differently, using the "sorbate include" command. In this case, the entries on the Basis pane specify not dissolved mass, but the mass of the dissolved plus sorbed species. For example, you might have prepared an experiment containing a known amount of Cu++. In the experiment, you precipitate a ferric colloid/suspension that sorbs some of the cupric copper. You can use React in this configuration to predict how the Cu++ is partitioned between the fluid and the sorbing surface.


The "sorbate include" option, as the name suggests, is more useful for a sorbing surface (the Kd, Langmuir, and two-layer models) than an exchanging one. This is because sorbed mass for a sorbing surface varies, since there is either no accounting of the number of sorbing sites or some of the sites remain uncomplexed. In the ion exchange model, in contrast, all of the sites in an ion exchange model are occupied and mass total number of sorbed ions is ultimately determined by the exchange capacity of the system. So you probably won't want to use the "sorbate include" option in working your problem.


BTW, I noticed that you need to set the TDS and fluid density in your input files, in order to let React correctly convert the analysis of your brine from mg/kg to the molal units it uses internally. You can let the program do this for itself by running the model, then going to the command pane and entering the command


pickup TDS; pickup density; go


a few times (after you type it once, control-P brings it back). The program will quickly converge to an appropriate TDS and density.


Hope this helps,


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...