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 »
  • Dissolution and precipitation »
  • Dynamic water volume change in kinetic model
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Dynamic water volume change in kinetic model  (Read 565 times)

conghaoyi

  • Contributor
  • Posts: 6
Dynamic water volume change in kinetic model
« on: 13/02/25 01:58 »
Hi all!

I am currently having trouble simulating porosity change in PHREEQC in a kinetic model.

The simulation I am trying to do is a 2 phase system, a solid phase and an aqueous phase. The volume of the aqueous phase is the volume of the pore. The model is a kinetic model without transport. I want to do a simulation with the pore volume (i.e., the amount of water in the system) changing with time as the minerals precipitate/dissolve. However, I am having trouble implementing this part. I have tried adding and using a RATES function (attached below) in the KINETICS block but this only returns errors.

I am wondering is there a way of dynamically changing the volume of the water by relating it to the amount of solids in the system?

Thanks in advance!
Code: [Select]
Add_water
-start
1 rem volume units in cm3
10 v_total = 1e6
20 v_rock = KIN("forsterite") * 43.01
30 porosity = 1 - (v_rock/v_total)
40 v_solution = (porosity*v_rock)/(1-porosity)
50 SOLN_VOL = v_solution/1000
-end
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4030
Re: Dynamic water volume change in kinetic model
« Reply #1 on: 13/02/25 03:25 »
I question your conceptual model. The effects you are considering are minimal in a silicate or even carbonate environment if there is no transport.

First, say the effect is significant and porosity decreases--Where does the extra water go--or conversely, where does the water come from, and at what composition, without transport?

But assuming stagnant conditions, 1 L of cell volume, 10 percent porosity,  90 percent rock volume, and complete dissolution of forsterite to equilibrium, the change in rock volume is -3e-7 L (tiny).

Code: [Select]
SOLUTION 1
C 1 CO2(g) -3.4
-water 0.1
USER_PRINT
# v(fosterite) = 0.9 L = 0.9e3 cm^3 = 0.9e3/43.01 mol
10 PRINT "Forsterite, moles: ", 0.9e3/43.01
END
EQUILIBRIUM_PHASES
Forsterite 0.0 20.925
END
USE solution 1
USE equilibrium_phases 1
USER_PRINT
10 PRINT "Volume change, L: ", EQUI_DELTA("Forsterite")*43.01*1e-3
END

Logged

conghaoyi

  • Contributor
  • Posts: 6
Re: Dynamic water volume change in kinetic model
« Reply #2 on: 13/02/25 15:31 »
Thank you for your reply!

I think I was not clear when I said there is no transport. I meant my model did not have a TRANSPORT block.

The conceptual model is this. In a reaction system with no water outlet but with a water inlet, water is being consumed by reactions (e.g., serpentinization). The amount of water consumed by reactions will be refilled by the inlet until the pore volume is filled. The gases produced in these processes will diffuse out of the system. With these reactions, the minerals will dissolve/precipitate and it will have an impact on the amount of water (a reactant) that is in the system.

I did not include all the kinetic reactants in my example code above. The mineral composition is more complex than a composition with just forsterite as I was trying to implement this before adding complexity.

Do you think there is a way of realizing this in PHREEQC? Please let me know if you have any questions.
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4030
Re: Dynamic water volume change in kinetic model
« Reply #3 on: 13/02/25 18:00 »
I'm still not sure I buy your conceptual model. The change in volume will be very small, so the amount of influent water will be small. I think the system would simply approach equilibrium.

As you can tell, I don't like dealing with volume changes, but if that is your interest, here are a couple of suggestions.

If the system is purely diffusive, you can use TRANSPORT in diffusion mode (probably multicomponent diffusion would be best), and there is a Basic function CHANGE_POR that can be used to change the porosity, which in turn adjusts the rate of diffusion.

If diffusive TRANSPORT does not fit your scheme, then you probably need to use IPhreeqc, which allows you to make the calculations under program control. So, you could run for a while, determine a volume change, adjust solution amounts (and compositions), and run for another time step. I think it would also be possible to use PhreeqcRM, which has methods to change porosity and saturation in the cells of a model, as well as time stepping and chemical reactions. It is designed to be the reaction module for a transport model. However, there is no transport in PhreeqcRM (only chemistry); any transport, including diffusion, must be handled by the transport side.
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Processes »
  • Dissolution and precipitation »
  • Dynamic water volume change in kinetic model
 

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