Jump to content
Geochemist's Workbench Support Forum

Ian Hutcheon

Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by Ian Hutcheon

  1. Hi Brian

     

    I’m having a similar problem to another post (Robert Dec 02 2013).

     

    The overall gaol is two steps. Step I is to react a mineral-water assemblage, with some minerals at equilibrium (in the basis) and others as kinetic reactants, along with CO2, to a value of M CO2 that is the solubility in the brine (calculated from Duan et al). This is over ten years. Step 2 is to let this react for 1000 years but with no added CO2 (fix fCO2 at the value of CO2 solubility). I can’t get STEP 1 completed.

     

    I have attached a react file (version 9.0.5). My goal is to run this to 10 years with the silicates and dawsonite as kinetic reactants. Calcite, dolomite and anhydrite are assumed to be at equilibrium (and are swapped into the basis). The amounts in the script are predicated on actual amounts of all minerals (from XRD, XRF and LPNORM) and the measured porosity. The water composition is from a real analysis of the formation water prior to CO2 injection.

     

    1. My problem is the file runs to "completion", but it only gets to Xi = 0.1at 1.0 year (365.246 days) and adds 0.17 mol, instead of 1.7 mol, of CO2 (aq) over 10 years. I'm sure I've done something dumb, but I'm too dumb to figure out what it is.

     

    2. My next step is to pick up the results, after iterating to get the actual CO2 solubility correct (Duan et al), and then let it react at fixed fCO2 (from the first REACT output) for 1000 years. So - on that note, is there a way to make this run a bit faster? It takes an hour or so right now. This may be the result of the different rates for dawsonite and the silicates, but I'm reluctant to separate those as the formation of dawsonite partly depends on the dissolution of albite. I have tried setting dx_init to 10^-5 and step_increase to 1.01, but this actually decreases the number of years the run takes to “completion” (from1.0 to 0.6?).

     

    3. Also, is there a way to set the final M CO2? I can calculate the solubility in the brine from Duan, but I'm not sure how to set REACT to run to that value? This would save me the time required to iterate using individual runs (resetting the amount of CO2 as reactant) to the solubility value. I could also calculate fCO2(g) from Duan as an ending value, but I'm not sure how to set up to stop at a particular value of MCO2(aq). I could calculate fCO2 at the solubility and slide fCO2(g) to that value?

     

    Any advice on any of the three issues much appreciated.

     

    Regards,

     

    Ian

  2. Hi Brian

     

    I have sent the input file by email...

     

    The file suppresses Quartz (not paragonite, I figure one at a time), but Quartz still seems to show up on GTPLOT.

     

    Interesting difference - with Qz, it takes 230 yrs for Dawsonite to reach EUM, with Qz suppressed it takes 55 years?

     

    BTW Dawsonite kinetic data from Hellevang et al 2010

     

    Thanks

     

    Ian

  3. Hi Ian,

     

    I think Dawsonite precipitates so quickly that it is effectively at equilibrium, so I would probably do it all in one reaction path. You could break it up into distinct stages and pick up your results, but this would be more work. Since you're running it both ways, you should be able to check how good of an assumption that is.

     

    Do you mean something similar to setting a target pH in a sliding pH path (or activity, fugacity, etc.)? I don't believe there is any way to make the run stop when a certain molality is reached. Just figuring out how much to titrate it by trial and error.

     

    Regards,

    Brian

  4. Thanks Brian

     

    I was hoping to get dawsonite and the silicates in the same run, but I can see that the big difference in reaction rates makes this difficult. I had read the chapters you refer to and was resigned to treating Dawsonite as an equilibrium mineral.

     

    To summarize the problem I'm trying to simulate (in case anyone else is trying the same thing):

     

    1. Minerals, porosity W/R ratio are to be defined in a simulation that injects CO2 into water of known composition until CO2 saturation is reached in the water (this is a relatively saline water). The equilibrium model works well and requires trial and error to get the amount of CO2 addition allows CO2 to be consumed in mineral reactions and ends at CO2 saturation for a particular water composition (MCO2 from Duan et al).

     

    2. I want to do this same calculation, but in a kinetic simulation - time span 1000 years.The Q/K vs time plot that I sent to you shows dawsonite is in equilibrium at 75 years.

     

    My plan now is to run the simulation for 75 years, pickup the results and start a new run that has the silicates as kinetic minerals. Then, set dawsonite as an equilibrium mineral and leave the silicates as kinetic minerals. Do you think this the best way to manage this, or could I simply leave Dawsonite as an equilibrium mineral from the start? I'm running both cases as we "speak".

     

    This process is a bit of work as there are eight rock units, each with distinct mineralogy and porosity, and widely varying water compositions (and therefore CO2 solubility). At a minimum, the result is about 24 simulations.

     

    Is there a way of setting the amount of CO2 dissolved in the brine (MCO2) as the termination of the run? This would speed things up.

     

    Thanks for your rapid reply to my first query.

     

    Regards,

     

    Ian

  5. Hi Ian,

     

    You are correct - the much faster rate for Dawsonite precipitation forces React to take very small timesteps. In taking a look at your original script, I see that Q/K for Dawsonite quickly reaches 1. Shortly afterward (around 200 years into the simulation), the program crashes. Since Dawsonite precipitates so much faster than the silicate minerals, you should allow Dawsonite to precipitate as an equilibrium mineral. In doing so, I get results that look exactly the same.

     

    If you were only running this model for a few days, on the other hand, you might use a kinetic rate law for Dawsonite, but suppress the silicate minerals.

     

    In general, it's a good idea to divide chemical reactions into three groups:

     

    1) Reactions that proceed quickly over the time span of the calculation, use an equilibrium model.

    2) Reactions that proceed negligibly over the time span of the calculation, suppress the reaction.

    3) Reactions that proceed slowly, but measurably, use a kinetic rate law.

     

    For more information, please see Chapter 16 of the Geochemical and Biogeochemical Reaction Modeling text.

     

    Hope this helps,

     

    Brian Farrell

    Aqueous Solutions LLC

  6. Hi Tom

     

    I have a REACT file that runs at equilibrium. The problem is to honour W-R ratios and add CO2 to a mineral system until CO2 saturation is reached. When I add rates for K-spar, albite, kaolinite and dawsonite (Palandri and Kharaka for silicates, Hellevang for dawsonite), the file can't converge. I suspect this is because the rate for dawsonite is much faster (10-7) and the step size gets too small (run is very slow). I'm unsure how to fix this. I will send files under a separate email.

     

    Thanks

    Ian

  7. Thanks Tom

     

    Hi Ian:

     

    You have it correct in the first sentence of your post. If you place quotes around the mineral name in the command line statement, it should work:

     

    suppress "Maximum Microcline"

     

    Hope that helps,

     

    Tom Meuzelaar

    RockWare, Inc.

  8. Hi

     

    I have tried to suppress "Maximum Microcline" in REACT using the command:

     

    suppress Maximum Microcline

     

    I get an error

     

    Warning: Don't know about species: Maximum

    Warning: Don't know about species: Microcline

     

    Any ideas?

×
×
  • Create New...