util.water: Functions for Properties of Water and Steam

util.waterR Documentation

Functions for Properties of Water and Steam

Description

Utility functions for properties of water and steam.

Usage

  WP02.auxiliary(property, T = 298.15)
  rho.IAPWS95(T = 298.15, P = 1, state="", trace=0)
  water.AW90(T = 298.15, rho = 1000, P = 0.1)

Arguments

property

character, property to calculate

T

numeric, temperature (K)

P

numeric, pressure (units of bar, except MPa for water.AW90)

state

character, state or phase of \H2O

trace

integer number

rho

numeric, density (kg m^{-3})

Details

Auxiliary equations to the IAPWS-95 formulation (Wagner and Pruß, 2002) are provided in WP02.auxiliary. The property for this function can be one of ‘⁠P.sigma⁠’ (saturation vapor pressure in MPa), ‘⁠dP.sigma.dT⁠’ (derivative of saturation vapor pressure with respect to temperature), or ‘⁠rho.liquid⁠’ or ‘⁠rho.vapor⁠’ (density of liquid or vapor in kg m^{-3}).

rho.IAPWS95 implements a root-finding technique (using uniroot) to determine the values of density for the stable phase of \H2O at the given temperature and pressure. The state option is used internally in order to determine the stable phase at conditions close to saturation (0.9999*\Psat <= P <= 1.00005*\Psat, where \Psat is the saturation pressure calculated by WP02.auxiliary). Alternatively, the user can specify a state of ‘⁠liquid⁠’ or ‘⁠vapor⁠’ to force the calculation of density for the corresponding phase, even if it is metastable (e.g. superheated water, supercooled steam; this option has no effect in the supercritical region). The state is set in calls by water.IAPWS95 to the value in thermo()$opt$IAPWS.sat (default ‘⁠liquid⁠’) so that higher-level functions (water, subcrt) take properties for that state along the saturation curve. Diagnostic messages are printed if trace is positive (it is also included in the call to uniroot).

water.AW90 provides values of the static dielectric constant (epsilon) calculated using equations given by Archer and Wang, 1990.

References

Archer, D. G. and Wang, P. M. (1990) The dielectric constant of water and Debye-Hückel limiting law slopes. J. Phys. Chem. Ref. Data 19, 371–411. https://srd.nist.gov/JPCRD/jpcrd383.pdf

Wagner, W. and Pruß, A. (2002) The IAPWS formulation 1995 for the thermodynamic properties of ordinary water substance for general and scientific use. J. Phys. Chem. Ref. Data 31, 387–535. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1063/1.1461829")}

Examples


# Calculate density of stable phase at 500 K, 500 bar
rho <- rho.IAPWS95(T = 500, P = 500)
# Calculate pressure (= 50 MPa) at this density
IAPWS95("P", T = 500, rho = rho)
# Calculate dielectric constant 	
water.AW90(T = 500, rho = rho, P = 50)

# Density along saturation curve
T <- seq(273.15, 623.15, 25)
WP02.auxiliary(T = T)  # liquid from WP02
WP02.auxiliary("rho.vapor", T)  # vapor from WP02	

# WP02.auxiliary gives a close estimate of saturation pressure...
T <- 445:455
P.sigma <- WP02.auxiliary("P.sigma", T)
# ... but alternates between being just on the liquid or vapor side
# (low rho: steam; high rho: water)
rho.IAPWS95(T, convert(P.sigma, "bar"))
# thermo()$opt$IAPWS.sat allows for choosing liquid or vapor or ""
thermo("opt$IAPWS.sat" = "")
# Shows artifactual vapor-liquid transition
water.IAPWS95("V", T, "Psat")
# The calculated Psat, while not exact, should be close enough for most
# geochemical calculations to select liquid or vapor
oldwat <- water("IAPWS95")
thermo("opt$IAPWS.sat" = "vapor")
V.vapor <- subcrt("water", T=convert(445:455, "C"))$out[[1]]$V
thermo("opt$IAPWS.sat" = "liquid") # the default
V.liquid <- subcrt("water", T=convert(445:455, "C"))$out[[1]]$V
all(V.vapor > V.liquid)  # TRUE
water(oldwat)

CHNOSZ documentation built on May 29, 2024, 3:30 a.m.