Tom Meuzelaar Posted May 13, 2008 Share Posted May 13, 2008 [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 appreciated. 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, Craig Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.