PhreeqcUsers Discussion Forum

Registrations currently disabled due to excessive spam. Please email phreeqcusers at gmail.com to request an account.
Welcome Guest
 

  • Forum Home
  • Login
  • Register

  • PhreeqcUsers Discussion Forum »
  • Processes »
  • Reactive transport modelling »
  • Concentration of water (H2O) when using PHREEQCRM.
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Concentration of water (H2O) when using PHREEQCRM.  (Read 1242 times)

Ivan K.

  • Frequent Contributor
  • Posts: 21
Concentration of water (H2O) when using PHREEQCRM.
« on: 05/08/23 19:29 »
Dear colleagues, could you please explain to me how the H2O concentration is treated?
In the beginning I define H2O as a component using
phreeqc_rm.SetComponentH2O(true);
Thus water is a component which is subject to advection and diffusion in my transport code.
But every time I run PHREEQCRM for reaction calculations with a new value of water concentration (obtained from transport calculations) it returns 55.3452. Is this the right behavior? If it is, should I apply the transport code to water, since it is
constant anyway after chemical calculations?
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4067
Re: Concentration of water (H2O) when using PHREEQCRM.
« Reply #1 on: 05/08/23 23:55 »
There are a couple of more options that affect the calculations, namely the units that you chose with SetUnitsSolution, and the setting in UseSolutionDensityVolume.

Assuming the transport units are mol/L and UseSolutionDensityVolume is false, here is how the calculations go.

The concentrations of H2O and all other concentrations that you submit with SetConcentrations are converted to moles by multiplying by saturation*porosity*representative volume. These values are determined by calls to SetSaturation, SetPorosity, and SetRepresentative volume. PhreeeqcRM performs a reaction calculation with whatever reactants are present in each cell--equilibrium_phases, exchange, surface, kinetics, and others, which results in revised moles of H2O and each element. With UseSolutionDensityVolume false, concentrations calculated by dividing the new moles of H2O by the same saturation*porosity*representative volume are returned with GetConcentrations. So, if the reactions change the moles of water in a solution, then the values for H2O should change. If there are no reactions, or the amount of water changes by a value around 1e-5, then you would get the same value returned that you entered to the precision you noted.

If you set UseSolutionDensityVolume to true, the calculated solution volume will be used in place of saturation*porosity*representative volume, in which case, I think the H2O values would almost certainly change to some extent, but maybe less than the precision that you give.

It is possible to SetComponentH2O(false), in which case, in theory you should get the same results with one less transport component. The difference is that total H and total O are transported, which are on the order of 50 to 100 moles, where the pH could depend on knowing the transported values to approximately 1e-8 or 9. I would want to do some testing to know that the two options are equivalent in your systems.
Logged

Ivan K.

  • Frequent Contributor
  • Posts: 21
Re: Concentration of water (H2O) when using PHREEQCRM.
« Reply #2 on: 06/08/23 20:39 »
Yes, the units in my simulation are mol/l. And I didn't use the function UseSolutionDensityVolume at all, thus the default value was used.
Today I tried to set it to false, then the concentration of water on output came close to the one on input during the simulation.
« Last Edit: 06/08/23 20:43 by Ivan K. »
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Processes »
  • Reactive transport modelling »
  • Concentration of water (H2O) when using PHREEQCRM.
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines | Terms and Policies
  • XHTML
  • RSS
  • WAP2