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