wbourcier Posted April 5, 2017 Posted April 5, 2017 I get an unexpected change in elemental masses after using "pickup" command and starting a polythermal simulation. I also hold a gas fugacity constant. if I run the picked-up system without a temperature change I get one result, if I add the temperature path I get another (both at the starting condition) Using Pitzer option ----------------------------------- Model loading of sodium carbonate with CO2 during flue gas CO2 capture The problem is that in using “pickup” command and fix fug command, the system changes composition React> pickup system React> show Temperature is 25 C Thermo dataset: C:\Program Files\Gwb\Gtdata\thermo_da0ypfR2.wlbrev9.dat Working directory: c:\users\bourcier1\desktop\nahcolitetests\katherinepapercalcs Options: H-M-W Basis is: H2O .9670762346433 free kg guess = 53.58010637651 HCO3- 1.175844707556 mol guess = 1.108927423502 Nahcolite (swapped for Na+) 2.595535888509 free mol guess = 3.87 CO2(g) (swapped for H+) .1 fugacity guess = -.09861940394104 No reactants specified. React> HCO3- bal (system will not converge unless I change charge balance species – common issue with pickup command) React> go Step # 0 Xi = 0.0000 Temperature = 25.0 C Pressure = 1.013 bars pH = 8.561 Ionic strength = 1.422313 Activity of water = 0.962599 Solvent mass = 0.967076 kg Solution mass = 1.067985 kg Solution density = 1.058 g/cm3 Chlorinity = 0.000000 molal Dissolved solids = 94485 mg/kg sol'n Hardness = 0.00 mg/kg sol'n as CaCO3 carbonate = 0.00 mg/kg sol'n as CaCO3 non-carbonate = 0.00 mg/kg sol'n as CaCO3 Rock mass = 0.218043 kg Carbonate alkalinity= 59724.18 mg/kg sol'n as CaCO3 Water type = Na-HCO3 Minerals in system moles log moles grams volume (cm3) ---------------------------------------------------------------------------- Nahcolite 2.596 0.414 218.0 100.2 _____________ _____________ (total) 218.0 100.2 Aqueous species molality mg/kg sol'n act. coef. log act. --------------------------------------------------------------------------- Na+ 1.318 2.743e+04 0.5367 -0.1504 HCO3- 1.109 6.127e+04 0.4848 -0.2696 CO3-- 0.1045 5676. 0.0878 -2.0378 CO2(aq) 0.002488 99.17 1.3651 -2.4689 OH- 5.320e-06 0.08193 0.6653 -5.4511 (only species > 1e-8 molal listed) Mineral saturation states log Q/K log Q/K ---------------------------------------------------------------- Nahcolite 0.0000 sat Na2CO3:7H2O -2.0257 Natron -1.7754 Thermonatrite -2.8964 Trona -1.9490 (only minerals with log Q/K > -3 listed) Gases fugacity log fug. ----------------------------------------------- CO2(g) 0.1000 -1.000 H2O(g) 0.03045 -1.516 In fluid Sorbed Kd Original basis total moles moles mg/kg moles mg/kg L/kg ------------------------------------------------------------------------------- H+ -0.0986 -0.0986 -93.1 H2O 53.7 53.7 9.05e+05 HCO3- 3.77 1.18 6.72e+04 Na+ 3.87 1.27 2.74e+04 Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.771 1.176 1.322e+04 Hydrogen 111.0 108.4 1.023e+05 Oxygen 64.99 57.21 8.570e+05 Sodium 3.870 1.274 2.743e+04 Now heat the system holding PCO2 constant – first step should reproduce the output file from above React> fix fug CO2(g) React> temp start 25 end 110 React> go Since the starting temperature has not changed I expect to see the same output at step 0 But elemental composition has changed (see blue highlight below) PCO2 is at 0.1 bars in both cases, temperature is 25 C in both cases Step # 0 Xi = 0.0000 Temperature = 25.0 C Pressure = 1.013 bars pH = 8.581 Ionic strength = 1.520600 Activity of water = 0.960372 Solvent mass = 0.967076 kg Solution mass = 1.074209 kg Solution density = 1.061 g/cm3 Chlorinity = 0.000000 molal Dissolved solids = 99732 mg/kg sol'n Hardness = 0.00 mg/kg sol'n as CaCO3 carbonate = 0.00 mg/kg sol'n as CaCO3 non-carbonate = 0.00 mg/kg sol'n as CaCO3 Rock mass = 0.218043 kg Carbonate alkalinity= 63244.90 mg/kg sol'n as CaCO3 Water type = Na-HCO3 moles moles grams cm3 Reactants remaining reacted reacted reacted ---------------------------------------------------------------------------- CO2(g) -- fixed fugacity buffer -- Minerals in system moles log moles grams volume (cm3) ---------------------------------------------------------------------------- Nahcolite 2.596 0.414 218.0 100.2 _____________ _____________ (total) 218.0 100.2 Aqueous species molality mg/kg sol'n act. coef. log act. --------------------------------------------------------------------------- Na+ 1.404 2.905e+04 0.5331 -0.1259 HCO3- 1.170 6.426e+04 0.4778 -0.2526 CO3-- 0.1169 6317. 0.0837 -2.0095 CO2(aq) 0.002486 98.48 1.3932 -2.4606 OH- 5.422e-06 0.08301 0.6666 -5.4420 (only species > 1e-8 molal listed) Mineral saturation states log Q/K log Q/K ---------------------------------------------------------------- Nahcolite 0.0000 sat Na2CO3:7H2O -2.0318 Natron -1.7844 Thermonatrite -2.8765 Trona -1.8217 (only minerals with log Q/K > -3 listed) Gases fugacity log fug. ----------------------------------------------- CO2(g) 0.1000 -1.000 H2O(g) 0.03012 -1.521 In fluid Sorbed Kd Original basis total moles moles mg/kg moles mg/kg L/kg ------------------------------------------------------------------------------- H+ -0.111 -0.111 -104. H2O 53.7 53.7 9.00e+05 HCO3- 3.84 1.25 7.08e+04 Na+ 3.95 1.36 2.91e+04 Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.842 1.247 1.394e+04 Hydrogen 111.1 108.5 1.018e+05 Oxygen 65.21 57.42 8.552e+05 Sodium 3.953 1.357 2.905e+04 Elemental composition has changed – but I did not change it!
Guest Melika Sharifi Posted April 6, 2017 Posted April 6, 2017 Dear Wbourcier, Could you, please, attach your React script here? That way we can take a look at it and find the problem. Thanks, Melika Melika Sharifi Aqueous Solutions LLC
Guest Melika Sharifi Posted April 10, 2017 Posted April 10, 2017 Dear Wbourcier, Since you are using a custom-built thermo dataset, please upload your thermo dataset along with your script, so we could open your script to find the problem. Thanks, Melika Melika Sharifi Aqueous Solutions LLC
wbourcier Posted April 14, 2017 Author Posted April 14, 2017 script attached below I will send dataset via email FIRST STEP- REACT Na-CARBONATE CAPTURE SOLUTION WITH CO2 Temperature is 25 C Thermo dataset: C:\Program Files\Gwb\Gtdata\thermo_da0ypfR2.wlbrev9.dat Working directory: c:\users\bourcier1\desktop\nahcolitetests\katherinepapercalcs Options: H-M-W Basis is: H2O 1 free kg CO3-- (swapped for HCO3-) 1.935 molal Na+ 3.87 molal OH- (swapped for H+) charge balance Reactants: Slide fugacity of CO2(g) to .1 Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.771 1.176 1.322e+04 Hydrogen 111.0 108.4 1.023e+05 Oxygen 64.99 57.21 8.570e+05 Sodium 3.870 1.274 2.743e+04 Pickup system and re-run to confirm masses remain the same Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.771 1.176 1.322e+04 Hydrogen 111.0 108.4 1.023e+05 Oxygen 64.99 57.21 8.570e+05 Sodium 3.870 1.274 2.743e+04 Fix CO2 fugacity and re-run Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.771 1.176 1.322e+04 Hydrogen 111.0 108.4 1.023e+05 Oxygen 64.99 57.21 8.570e+05 Sodium 3.870 1.274 2.743e+04 Now add temperature path starting at 25 C – here the masses have changed Elemental composition In fluid Sorbed total moles moles mg/kg moles mg/kg ------------------------------------------------------------------------------- Carbon 3.842 1.247 1.394e+04 Hydrogen 111.1 108.5 1.018e+05 Oxygen 65.21 57.42 8.552e+05 Sodium 3.953 1.357 2.905e+04 verbatim input commands: React> show Temperature is 25 C Thermo dataset: C:\Program Files\Gwb\Gtdata\thermo_da0ypfR2.wlbrev9.dat Working directory: c:\users\bourcier1\desktop\nahcolitetests\katherinepapercalcs Options: H-M-W Basis is: H2O 1 free kg CO3-- (swapped for HCO3-) 1.935 molal Na+ 3.87 molal OH- (swapped for H+) charge balance Reactants: Slide fugacity of CO2(g) to .1 React> go React> pickup system React> show Temperature is 25 C Thermo dataset: C:\Program Files\Gwb\Gtdata\thermo_da0ypfR2.wlbrev9.dat Working directory: c:\users\bourcier1\desktop\nahcolitetests\katherinepapercalcs Options: H-M-W Basis is: H2O .9670762346433 free kg guess = 53.58010637651 HCO3- 1.175844707556 mol guess = 1.108927423502 Nahcolite (swapped for Na+) 2.595535888509 free mol guess = 3.87 CO2(g) (swapped for H+) .1 fugacity guess = -.09861940394104 No reactants specified. React> bal HCO3- React> go React> fix fug CO2(g) React> go React> temp start 25 end 110 React> go React> show Initial temperature is 25 C, final is 110 C Thermo dataset: C:\Program Files\Gwb\Gtdata\thermo_da0ypfR2.wlbrev9.dat Working directory: c:\users\bourcier1\desktop\nahcolitetests\katherinepapercalcs Options: H-M-W Basis is: H2O .9670762346433 free kg guess = 53.58010637651 HCO3- 1.175844707556 mol guess = 1.108927423502 (charge balance species) Nahcolite (swapped for Na+) 2.595535888509 free mol guess = 3.87 CO2(g) (swapped for H+) .1 fugacity guess = -.09861940394104 Reactants: Fix fugacity of CO2(g) Other "show" options: type "show show" React>
Guest Melika Sharifi Posted April 14, 2017 Posted April 14, 2017 Hi Bill, In isothermal runs in which temperature is set to one of the principal temperatures, the GWB applications take log Ks directly from the tables in the thermo dataset. In a run at 25°C, for example, React takes the second log K entry for each chemical species in the dataset. Where temperature differs from a principal temperature, React fits each table to a polynomial with respect to temperature T, in °C. The polynomial is used at all temperatures in polythermal simulations. Even though both of your post-pickup simulations start at 25°C, the isothermal run uses the log Ks directly from the dataset while the polythermal run uses the polynomial to evaluate the log Ks at each step. You can verify this by setting the printout for “reactions loaded” to long mode. Type the command “printout reaction = long” or go to the Config – Output dialog and click twice in the “reactions loaded” checkbox to completely fill it (you should see a square, indicating long output, instead of the checkmark for short output). Run each model and compare the text output files. You’ll see slightly different log Ks for the initial condition (25°C) for each reaction that’s loaded. To get around this, you might consider running your pre-pickup simulation at a temperature slightly higher or lower than 25°C , such as 25.001°C. That way, you’ll always use the polynomial to evaluate log Ks and your subsequent isothermal and polythermal simulations will have identical initial conditions. There is another complication that doesn’t arise in your particular example, but it can come up when comparing isothermal and polythemal simulations. The GWB apps will only load reactions for species whose thermo data span the temperature range of the simulation. You may have thermo data for a large number of species at 25°C, but data for some of those species may be unavailable at 150°C. In this case, an isothermal run at 25°C will load more species than an isothermal run at 150°C or a polythermal run from 25°C to 150°C. You might wish to use the extrapolate option, which causes React to use the temperature polynomial to estimate log Ks outside the range of known values, to load the entire set of species over your temperature range of interest. Or, you can suppress the species with limited data from your isothermal run at 25°C so that you’re consistently working with a smaller subset of species. You can take a look at the very top of the Results pane to see how many aqueous species are loaded in a simulation. For more information, please see React’s “extrapolate” command in the GWB Reference Manual as well as the Thermo Datasets Appendix to the Reference Manual.
wbourcier Posted April 18, 2017 Author Posted April 18, 2017 Thanks. I am guessing one would only see a change in component masses (vs change in distribution of species) when starting with a system that is constrained in a kind of unusual manner (typical for pickup files). I have never noticed this for input files where I specifically constrain component masses. Thanks for your analysis! bill
Guest Melika Sharifi Posted April 19, 2017 Posted April 19, 2017 Dear Bill, Your assumption is correct. The distribution of species, of course, is affected by the log Ks being used. The bulk composition, on the other hand, should not change when your Basis is defined entirely with bulk constraints. This is quite common, such as when your input is a bulk lab analysis of a fluid. If you look at your Basis pane (after pick-up), though, you will see HCO3-, Nahcolite, and CO2(g) in the basis. The HCO3- is a bulk constraint but the last two entries are free constraints. The software honors the constraints set for the fugacity of CO2 and concentration of free Nahcolite but the log Ks come into play in figuring the bulk composition of the system. Bests, Melika Melika Sharifi Aqueous Solutions LLC
Brian Farrell Posted January 28, 2020 Posted January 28, 2020 Hi Bill, I’m writing to let you know about a new feature available in GWB14. You can control species loading in a calculation by specifying a temperature range over which thermodynamic data should be available. You can additionally force the program to always get log K values by evaluating a polynomial, even when the calculation is isothermal at a principal temperature. In this case, the program would normally use the value directly from the thermo dataset. The difference is small, but it’s why the endpoint of your polythermal path and your isothermal calculation post-pickup were slightly different. You can read about the feature in section 6.92 span in the GWB Command Reference. The new release has many more new features as well. Please let us know if you’re interested in trying GWB14. I’m happy to send you a demo. Cheers, Brian
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now