Skip to content

Water fugacity ​

Flow laws of hydrous rocks and the solubility of water in nominally anhydrous minerals depend on the fugacity of water, fH2O. GeoParams provides the following routines; all take pressure in Pa and temperature in K and return the fugacity in Pa, or accept Unitful quantities.

Pitzer & Sterner (1994) ​

compute_water_fugacity solves the equation of state of Pitzer & Sterner (1994) for the molar density ρ of H2O at given P and T,

PRT=ρ+c1ρ2−ρ2c3+2c4ρ+3c5ρ2+4c6ρ3(c2+c3ρ+c4ρ2+c5ρ3+c6ρ4)2+c7ρ2e−c8ρ+c9ρ2e−c10ρ,

where each coefficient is a function of temperature, ci=ci1T−4+ci2T−2+ci3T−1+ci4+ci5T+ci6T2. The fugacity follows from the residual Helmholtz energy Ares:

ln⁡fH2O=ln⁡(ρRT)+AresRT+PρRT−1,AresRT=c1ρ+1c2+c3ρ+c4ρ2+c5ρ3+c6ρ4−1c2−c7c8(e−c8ρ−1)−c9c10(e−c10ρ−1).

The implementation reproduces the online calculator of A. Withers to better than 0.4% for 0.1-2.8 GPa and 100-1500 °C.

Crustal approximation ​

compute_water_fugacity_Shinevar uses the closed-form approximation of Shinevar et al. (2015),

fH2O≈A1exp⁡(−A2+PA3RT),

which is within a factor 1.5 of the Pitzer & Sterner value for 0.2-1 GPa and 600-1000 K.

Water content of olivine ​

compute_water_content_olivine gives the hydrogen solubility in olivine of Zhao et al. (2004),

COH=Awexp⁡(−Ew+PVwRT)fH2O,

in H/10⁶ Si (with fH2O in MPa in this expression; the routine takes it in Pa).

Example ​

julia
julia> using GeoParams

julia> fH2O = compute_water_fugacity(1GPa, 800C);    # Pitzer & Sterner (1994), in Pa

julia> round(MPa, fH2O, digits = 1)
1642.0 MPa

julia> round(MPa, compute_water_fugacity_Shinevar(1GPa, 800C), digits = 1)   # crustal approximation
1575.3 MPa

julia> round(compute_water_content_olivine(fH2O, 1GPa, 800C))   # H/10⁶ Si, water-saturated olivine
157.0

Routines ​

GeoParams.WaterFugacity.compute_water_fugacity Function
julia
fH2O = compute_water_fugacity(P, T)

Fugacity of pure H2O [Pa] at pressure P [Pa] and temperature T [K], computed with the equation of state of Pitzer & Sterner (1994). The density of H2O is found by solving the equation of state with a bracketed root finder; the fugacity then follows from the residual Helmholtz energy Ares:

ln⁡fH2O=ln⁡(ρRT)+AresRT+PρRT−1

The equation of state is calibrated for 0-10 GPa and 0-2000 °C. P and T can also be given as Unitful quantities, in which case the fugacity is returned in Pa. For non-positive pressure (e.g. near the free surface of a numerical model) the fugacity is zero, its physical limit; a wet creep law then gives zero strain rate.

Reference: Pitzer, K.S. & Sterner, S.M. (1994), Equations of state valid continuously from zero to extreme pressures for H2O and CO2, J. Chem. Phys. 101, 3111-3116.

Example

julia
julia> round(compute_water_fugacity(1.0e9, 1073.15) / 1.0e6, digits = 1)   # MPa
1642.0

julia> round(MPa, compute_water_fugacity(1GPa, 800C), digits = 1)
1642.0 MPa
source
GeoParams.WaterFugacity.compute_water_fugacity_Shinevar Function
julia
fH2O = compute_water_fugacity_Shinevar(P, T)

Approximate fugacity of H2O [Pa] at pressure P [Pa] and temperature T [K] for crustal conditions, following Shinevar, Behn & Hirth (2015):

fH2O=A1exp⁡(−A2+PA3RT)

with A1=5.521 GPa, A2=31.28 kJ/mol and A3=−2.009×10−5 m³/mol (parameters as quoted in eq. 5.7 of Becker & Faccenna's geodynamics textbook). For 0.2-1 GPa and 600-1000 K this is within a factor 1.5 of compute_water_fugacity, the deviation grows for colder conditions at high pressure (factor ~2.3 at 1 GPa and 500 K). P and T can also be given as Unitful quantities.

Reference: Shinevar, W.J., Behn, M.D. & Hirth, G. (2015), Compositional dependence of lower crustal viscosity, Geophys. Res. Lett. 42, 8333-8340.

Example

julia
julia> round(compute_water_fugacity_Shinevar(1.0e9, 800.0) / 1.0e6, digits = 1)   # MPa
1026.6
source
GeoParams.WaterFugacity.compute_water_content_olivine Function
julia
C_OH = compute_water_content_olivine(fH2O, P, T)

Solubility of water (hydrogen) in olivine, COH in H/10⁶ Si, as function of water fugacity fH2O [Pa], pressure P [Pa] and temperature T [K] after Zhao, Ginsberg & Kohlstedt (2004):

COH=Awexp⁡(−Ew+PVwRT)fH2O

with Aw=26 H/10⁶ Si/MPa, Ew=40 kJ/mol and Vw=10×10−6 m³/mol (as quoted in eq. 5.9 of Becker & Faccenna's geodynamics textbook); in this expression fH2O is in MPa, which is taken care of internally. The arguments can also be given as Unitful quantities; the result is always a plain number in H/10⁶ Si.

For water-saturated conditions, combine it with compute_water_fugacity.

Reference: Zhao, Y.-H., Ginsberg, S.B. & Kohlstedt, D.L. (2004), Solubility of hydrogen in olivine: dependence on temperature and iron content, Contrib. Mineral. Petrol. 147, 155-161.

Example

julia
julia> P, T = 2.0e9, 1573.15;

julia> round(compute_water_content_olivine(compute_water_fugacity(P, T), P, T))   # H/10⁶ Si
3018.0
source