iapws.iapws95 module

Implemented multiparameter equation of state as a Helmholtz free energy:

  • MEoS: Base class of multiparameter equation of state
  • IAPWS95: 2016 revision of 1995 formulation for ordinaty water
  • D2O: 2017 formulation for heavy water.
iapws.iapws95._phir(tau, delta, coef)[source]

Residual contribution to the adimensional free Helmholtz energy

Parameters:
  • tau (float) – Inverse reduced temperature Tc/T, [-]
  • delta (float) – Reduced density rho/rhoc, [-]
  • coef (dict) – Dictionary with equation of state parameters
Returns:

fir – Adimensional free Helmholtz energy

Return type:

float

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 5 http://www.iapws.org/relguide/IAPWS-95.html

iapws.iapws95._phird(tau, delta, coef)[source]

Residual contribution to the adimensional free Helmholtz energy, delta derivative

Parameters:
  • tau (float) – Inverse reduced temperature Tc/T, [-]
  • delta (float) – Reduced density rho/rhoc, [-]
  • coef (dict) – Dictionary with equation of state parameters
Returns:

fird

\[\left.\frac{\partial \phi^r_{\delta}}{\partial \delta}\right|_{\tau}\]

Return type:

float

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 5 http://www.iapws.org/relguide/IAPWS-95.html

iapws.iapws95._phirt(tau, delta, coef)[source]

Residual contribution to the adimensional free Helmholtz energy, tau derivative

Parameters:
  • tau (float) – Inverse reduced temperature Tc/T, [-]
  • delta (float) – Reduced density rho/rhoc, [-]
  • coef (dict) – Dictionary with equation of state parameters
Returns:

firt

\[\left.\frac{\partial \phi^r_{\tau}}{\partial \tau}\right|_{\delta}\]

Return type:

float

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 5 http://www.iapws.org/relguide/IAPWS-95.html

class iapws.iapws95.MEoS(**kwargs)[source]

General implementation of multiparameter equation of state. From this derived all child class specified per individual compounds

Parameters:
  • T (float) – Temperature, [K]
  • P (float) – Pressure, [MPa]
  • rho (float) – Density, [kg/m³]
  • v (float) – Specific volume, [m³/kg]
  • h (float) – Specific enthalpy, [kJ/kg]
  • s (float) – Specific entropy, [kJ/kgK]
  • u (float) – Specific internal energy, [kJ/kg]
  • x (float) – Vapor quality, [-]
  • l (float, optional) – Wavelength of light, for refractive index, [nm]
  • rho0 (float, optional) – Initial value of density, to improve iteration, [kg/m³]
  • T0 (float, optional) – Initial value of temperature, to improve iteration, [K]
  • x0 (Initial value of vapor quality, necessary in bad input pair definition) – where there are two valid solution (T-h, T-s)

Notes

  • It needs two incoming properties of T, P, rho, h, s, u.
  • v as a alternate input parameter to rho
  • T-x, P-x, preferred input pair to specified a point in two phases region

The calculated instance has the following properties:

  • P: Pressure, [MPa]
  • T: Temperature, [K]
  • x: Vapor quality, [-]
  • g: Specific Gibbs free energy, [kJ/kg]
  • a: Specific Helmholtz free energy, [kJ/kg]
  • v: Specific volume, [m³/kg]
  • r: Density, [kg/m³]
  • h: Specific enthalpy, [kJ/kg]
  • u: Specific internal energy, [kJ/kg]
  • s: Specific entropy, [kJ/kg·K]
  • cp: Specific isobaric heat capacity, [kJ/kg·K]
  • cv: Specific isochoric heat capacity, [kJ/kg·K]
  • cp_cv: Heat capacity ratio, [-]
  • Z: Compression factor, [-]
  • fi: Fugacity coefficient, [-]
  • f: Fugacity, [MPa]
  • gamma: Isoentropic exponent, [-]
  • alfav: Isobaric cubic expansion coefficient, [1/K]
  • kappa: Isothermal compressibility, [1/MPa]
  • kappas: Adiabatic compresibility, [1/MPa]
  • alfap: Relative pressure coefficient, [1/K]
  • betap: Isothermal stress coefficient, [kg/m³]
  • joule: Joule-Thomson coefficient, [K/MPa]
  • betas: Isoentropic temperature-pressure coefficient, [-]
  • Gruneisen: Gruneisen parameter, [-]
  • virialB: Second virial coefficient, [m³/kg]
  • virialC: Third virial coefficient, [m⁶/kg²]
  • dpdT_rho: Derivatives, dp/dT at constant rho, [MPa/K]
  • dpdrho_T: Derivatives, dp/drho at constant T, [MPa·m³/kg]
  • drhodT_P: Derivatives, drho/dT at constant P, [kg/m³·K]
  • drhodP_T: Derivatives, drho/dP at constant T, [kg/m³·MPa]
  • dhdT_rho: Derivatives, dh/dT at constant rho, [kJ/kg·K]
  • dhdP_T: Isothermal throttling coefficient, [kJ/kg·MPa]
  • dhdT_P: Derivatives, dh/dT at constant P, [kJ/kg·K]
  • dhdrho_T: Derivatives, dh/drho at constant T, [kJ·m³/kg²]
  • dhdrho_P: Derivatives, dh/drho at constant P, [kJ·m³/kg²]
  • dhdP_rho: Derivatives, dh/dP at constant rho, [kJ/kg·MPa]
  • kt: Isothermal Expansion Coefficient, [-]
  • ks: Adiabatic Compressibility, [1/MPa]
  • Ks: Adiabatic bulk modulus, [MPa]
  • Kt: Isothermal bulk modulus, [MPa]
  • v0: Ideal specific volume, [m³/kg]
  • rho0: Ideal gas density, [kg/m³]
  • u0: Ideal specific internal energy, [kJ/kg]
  • h0: Ideal specific enthalpy, [kJ/kg]
  • s0: Ideal specific entropy, [kJ/kg·K]
  • a0: Ideal specific Helmholtz free energy, [kJ/kg]
  • g0: Ideal specific Gibbs free energy, [kJ/kg]
  • cp0: Ideal specific isobaric heat capacity, [kJ/kg·K]
  • cv0: Ideal specific isochoric heat capacity, [kJ/kg·K]
  • w0: Ideal speed of sound, [m/s]
  • gamma0: Ideal isoentropic exponent, [-]
  • w: Speed of sound, [m/s]
  • mu: Dynamic viscosity, [Pa·s]
  • nu: Kinematic viscosity, [m²/s]
  • k: Thermal conductivity, [W/m·K]
  • alfa: Thermal diffusivity, [m²/s]
  • sigma: Surface tension, [N/m]
  • epsilon: Dielectric constant, [-]
  • n: Refractive index, [-]
  • Prandt: Prandtl number, [-]
  • Pr: Reduced Pressure, [-]
  • Tr: Reduced Temperature, [-]
  • Hvap: Vaporization heat, [kJ/kg]
  • Svap: Vaporization entropy, [kJ/kg·K]
  • Z_rho: \((Z-1)/\rho\), [m³/kg]
  • IntP: Internal pressure, [MPa]
  • invT: Negative reciprocal temperature, [1/K]
  • hInput: Specific heat input, [kJ/kg]
Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
CP = None
_Pv = None
_rhoL = None
_rhoG = None
status = 0
msg = 'Undefined'
kwargs = {'P': 0.0, 'T': 0.0, 'T0': None, 'h': None, 'l': 0.5893, 'rho': 0.0, 'rho0': None, 's': None, 'u': None, 'v': 0.0, 'x': None, 'x0': 0.5}
calculable

Check if inputs are enough to define state

calculo()[source]

Calculate procedure

fill(fase, estado)[source]

Fill phase properties

derivative(z, x, y, fase)[source]

Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a

_saturation(T)[source]

Saturation calculation for two phase search

_Helmholtz(rho, T)[source]

Calculated properties from helmholtz free energy and derivatives

Parameters:
  • rho (float) – Density, [kg/m³]
  • T (float) – Temperature, [K]
Returns:

prop

Dictionary with calculated properties:
  • fir: [-]
  • fird: ∂fir/∂δ|τ
  • firdd: ∂²fir/∂δ²|τ
  • delta: Reducen density rho/rhoc, [-]
  • P: Pressure, [kPa]
  • h: Enthalpy, [kJ/kg]
  • s: Entropy, [kJ/kgK]
  • cv: Isochoric specific heat, [kJ/kgK]
  • alfav: Thermal expansion coefficient, [1/K]
  • betap: Isothermal compressibility, [1/kPa]

Return type:

dict

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 3 http://www.iapws.org/relguide/IAPWS-95.html

_prop0(rho, T)[source]

Ideal gas properties

_phi0(tau, delta)[source]

Ideal gas Helmholtz free energy and derivatives

Parameters:
  • tau (float) – Inverse reduced temperature Tc/T, [-]
  • delta (float) – Reduced density rho/rhoc, [-]
Returns:

prop – fio, [-] fiot: ∂fio/∂τ|δ fiod: ∂fio/∂δ|τ fiott: ∂²fio/∂τ²|δ fiodt: ∂²fio/∂τ∂δ fiodd: ∂²fio/∂δ²|τ

Return type:

dictionary with ideal adimensional helmholtz energy and deriv

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 4 http://www.iapws.org/relguide/IAPWS-95.html

_phir(tau, delta)[source]

Residual contribution to the free Helmholtz energy

Parameters:
  • tau (float) – Inverse reduced temperature Tc/T, [-]
  • delta (float) – Reduced density rho/rhoc, [-]
Returns:

prop

Dictionary with residual adimensional helmholtz energy and deriv:
  • fir
  • firt: ∂fir/∂τ|δ,x
  • fird: ∂fir/∂δ|τ,x
  • firtt: ∂²fir/∂τ²|δ,x
  • firdt: ∂²fir/∂τ∂δ|x
  • firdd: ∂²fir/∂δ²|τ,x

Return type:

dict

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, Table 5 http://www.iapws.org/relguide/IAPWS-95.html

_virial(T)[source]

Virial coefficient

Parameters:T (float) – Temperature [K]
Returns:prop
Dictionary with residual adimensional helmholtz energy:
  • B: ∂fir/∂δ|δ->0
  • C: ∂²fir/∂δ²|δ->0
Return type:dict
_derivDimensional(rho, T)[source]

Calcule the dimensional form or Helmholtz free energy derivatives

Parameters:
  • rho (float) – Density, [kg/m³]
  • T (float) – Temperature, [K]
Returns:

prop

Dictionary with residual helmholtz energy and derivatives:

  • fir, [kJ/kg]
  • firt: ∂fir/∂T|ρ, [kJ/kgK]
  • fird: ∂fir/∂ρ|T, [kJ/m³kg²]
  • firtt: ∂²fir/∂T²|ρ, [kJ/kgK²]
  • firdt: ∂²fir/∂T∂ρ, [kJ/m³kg²K]
  • firdd: ∂²fir/∂ρ²|T, [kJ/m⁶kg]

Return type:

dict

References

IAPWS, Guideline on an Equation of State for Humid Air in Contact with Seawater and Ice, Consistent with the IAPWS Formulation 2008 for the Thermodynamic Properties of Seawater, Table 7, http://www.iapws.org/relguide/SeaAir.html

_surface(T)[source]

Generic equation for the surface tension

Parameters:T (float) – Temperature, [K]
Returns:σ – Surface tension, [N/m]
Return type:float

Notes

Need a _surf dict in the derived class with the parameters keys:
sigma: coefficient exp: exponent
classmethod _Vapor_Pressure(T)[source]

Auxiliary equation for the vapour pressure

Parameters:T (float) – Temperature, [K]
Returns:Pv – Vapour pressure, [Pa]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.1

classmethod _Liquid_Density(T)[source]

Auxiliary equation for the density of saturated liquid

Parameters:T (float) – Temperature, [K]
Returns:rho – Saturated liquid density, [kg/m³]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.2

classmethod _Vapor_Density(T)[source]

Auxiliary equation for the density of saturated vapor

Parameters:T (float) – Temperature, [K]
Returns:rho – Saturated vapor density, [kg/m³]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.3

classmethod _dPdT_sat(T)[source]

Auxiliary equation for the dP/dT along saturation line

Parameters:T (float) – Temperature, [K]
Returns:dPdT – dPdT, [MPa/K]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, derived from Eq.1

iapws.iapws95.mainClassDoc()[source]

Function decorator used to automatic adiction of base class MEoS in subclass __doc__

class iapws.iapws95.IAPWS95(**kwargs)[source]

Implementation of IAPWS Formulation 1995 for ordinary water substance, (revised release of 2016), for internal procedures, see MEoS base class

Parameters:
  • T (float) – Temperature, [K]
  • P (float) – Pressure, [MPa]
  • rho (float) – Density, [kg/m³]
  • v (float) – Specific volume, [m³/kg]
  • h (float) – Specific enthalpy, [kJ/kg]
  • s (float) – Specific entropy, [kJ/kgK]
  • u (float) – Specific internal energy, [kJ/kg]
  • x (float) – Vapor quality, [-]
  • l (float, optional) – Wavelength of light, for refractive index, [nm]
  • rho0 (float, optional) – Initial value of density, to improve iteration, [kg/m³]
  • T0 (float, optional) – Initial value of temperature, to improve iteration, [K]
  • x0 (Initial value of vapor quality, necessary in bad input pair definition) – where there are two valid solution (T-h, T-s)

Notes

  • It needs two incoming properties of T, P, rho, h, s, u.
  • v as a alternate input parameter to rho
  • T-x, P-x, preferred input pair to specified a point in two phases region

The calculated instance has the following properties:

  • P: Pressure, [MPa]
  • T: Temperature, [K]
  • x: Vapor quality, [-]
  • g: Specific Gibbs free energy, [kJ/kg]
  • a: Specific Helmholtz free energy, [kJ/kg]
  • v: Specific volume, [m³/kg]
  • r: Density, [kg/m³]
  • h: Specific enthalpy, [kJ/kg]
  • u: Specific internal energy, [kJ/kg]
  • s: Specific entropy, [kJ/kg·K]
  • cp: Specific isobaric heat capacity, [kJ/kg·K]
  • cv: Specific isochoric heat capacity, [kJ/kg·K]
  • cp_cv: Heat capacity ratio, [-]
  • Z: Compression factor, [-]
  • fi: Fugacity coefficient, [-]
  • f: Fugacity, [MPa]
  • gamma: Isoentropic exponent, [-]
  • alfav: Isobaric cubic expansion coefficient, [1/K]
  • kappa: Isothermal compressibility, [1/MPa]
  • kappas: Adiabatic compresibility, [1/MPa]
  • alfap: Relative pressure coefficient, [1/K]
  • betap: Isothermal stress coefficient, [kg/m³]
  • joule: Joule-Thomson coefficient, [K/MPa]
  • betas: Isoentropic temperature-pressure coefficient, [-]
  • Gruneisen: Gruneisen parameter, [-]
  • virialB: Second virial coefficient, [m³/kg]
  • virialC: Third virial coefficient, [m⁶/kg²]
  • dpdT_rho: Derivatives, dp/dT at constant rho, [MPa/K]
  • dpdrho_T: Derivatives, dp/drho at constant T, [MPa·m³/kg]
  • drhodT_P: Derivatives, drho/dT at constant P, [kg/m³·K]
  • drhodP_T: Derivatives, drho/dP at constant T, [kg/m³·MPa]
  • dhdT_rho: Derivatives, dh/dT at constant rho, [kJ/kg·K]
  • dhdP_T: Isothermal throttling coefficient, [kJ/kg·MPa]
  • dhdT_P: Derivatives, dh/dT at constant P, [kJ/kg·K]
  • dhdrho_T: Derivatives, dh/drho at constant T, [kJ·m³/kg²]
  • dhdrho_P: Derivatives, dh/drho at constant P, [kJ·m³/kg²]
  • dhdP_rho: Derivatives, dh/dP at constant rho, [kJ/kg·MPa]
  • kt: Isothermal Expansion Coefficient, [-]
  • ks: Adiabatic Compressibility, [1/MPa]
  • Ks: Adiabatic bulk modulus, [MPa]
  • Kt: Isothermal bulk modulus, [MPa]
  • v0: Ideal specific volume, [m³/kg]
  • rho0: Ideal gas density, [kg/m³]
  • u0: Ideal specific internal energy, [kJ/kg]
  • h0: Ideal specific enthalpy, [kJ/kg]
  • s0: Ideal specific entropy, [kJ/kg·K]
  • a0: Ideal specific Helmholtz free energy, [kJ/kg]
  • g0: Ideal specific Gibbs free energy, [kJ/kg]
  • cp0: Ideal specific isobaric heat capacity, [kJ/kg·K]
  • cv0: Ideal specific isochoric heat capacity, [kJ/kg·K]
  • w0: Ideal speed of sound, [m/s]
  • gamma0: Ideal isoentropic exponent, [-]
  • w: Speed of sound, [m/s]
  • mu: Dynamic viscosity, [Pa·s]
  • nu: Kinematic viscosity, [m²/s]
  • k: Thermal conductivity, [W/m·K]
  • alfa: Thermal diffusivity, [m²/s]
  • sigma: Surface tension, [N/m]
  • epsilon: Dielectric constant, [-]
  • n: Refractive index, [-]
  • Prandt: Prandtl number, [-]
  • Pr: Reduced Pressure, [-]
  • Tr: Reduced Temperature, [-]
  • Hvap: Vaporization heat, [kJ/kg]
  • Svap: Vaporization entropy, [kJ/kg·K]
  • Z_rho: \((Z-1)/\rho\), [m³/kg]
  • IntP: Internal pressure, [MPa]
  • invT: Negative reciprocal temperature, [1/K]
  • hInput: Specific heat input, [kJ/kg]

Examples

>>> water=IAPWS95(T=300, rho=996.5560)
>>> water.P, water.cv, water.w, water.s
0.0992418350 4.13018112 1501.51914 0.393062643
>>> water=IAPWS95(T=500, rho=0.435)
>>> water.P, water.cv, water.w, water.s
0.0999679423 1.50817541 548.31425 7.944882714
>>> water=IAPWS95(T=900., P=700)
>>> water.rho, water.cv, water.w, water.s
870.7690 2.66422350 2019.33608 4.17223802
>>> water=IAPWS95(T=300., P=0.1)
>>> water.P, water.rho, water.h, water.s, water.cp, water.w, water.virialB
0.10000 996.56 112.65 0.39306 4.1806 1501.5 -0.066682
>>> water=IAPWS95(T=500., P=0.1)
>>> water.P, water.rho, water.h, water.s, water.cp, water.w, water.virialB
0.10000 0.43514 2928.6 7.9447 1.9813 548.31 -0.0094137
>>> water=IAPWS95(T=450., x=0.5)
>>> water.T, water.P, water.rho, water.h, water.s, water.virialB
450.00 0.93220 9.5723 1761.8 4.3589 -0.013028
>>> water=IAPWS95(P=1.5, rho=1000.)
>>> water.T, water.rho, water.h, water.s, water.cp, water.w, water.virialB
286.44 1000.0 57.253 0.19931 4.1855 1462.1 -0.085566
>>> water=IAPWS95(h=3000, s=8.)
>>> water.T, water.P, water.h, water.s, water.cp, water.w, water.virialB
536.24 0.11970 3000.0 8.0000 1.9984 567.04 -0.0076606
>>> water=IAPWS95(h=150, s=0.4)
>>> water.T, water.P, water.rho, water.h, water.s, water.cp, water.w
301.27 35.50549 1011.48 150.00 0.40000 4.0932 1564.1
>>> water=IAPWS95(T=450., rho=300)
>>> water.T, water.P, water.rho, water.h, water.s, water.x, water.virialB
450.00 0.93220 300.00 770.82 2.1568 0.010693 -0.013028
>>> water=IAPWS95(rho=300., P=0.1)
>>> water.T, water.P, water.rho, water.h, water.s, water.x, water.virialB
372.76 0.10000 300.00 420.56 1.3110 0.0013528 -0.025144
>>> water=IAPWS95(h=1500., P=0.1)
>>> water.T, water.P, water.rho, water.h, water.s, water.x, water.virialB
372.76 0.10000 1.2303 1500.0 4.2068 0.47952 -0.025144
>>> water=IAPWS95(s=5., P=3.5)
>>> water.T, water.P, water.rho, water.h, water.s, water.x, water.virialB
515.71 3.5000 25.912 2222.8 5.0000 0.66921 -0.0085877
>>> water=IAPWS95(T=500., u=900)
>>> water.P, water.rho, water.u, water.h, water.s, water.cp, water.w
108.21 903.62 900.00 1019.8 2.4271 4.1751 1576.0
>>> water=IAPWS95(P=0.3, u=1550.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
406.67 0.30000 3.3029 1550.0 1640.8 4.3260 0.49893
>>> water=IAPWS95(rho=300, h=1000.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
494.92 2.3991 300.00 992.00 1000.0 2.6315 0.026071
>>> water=IAPWS95(rho=30, s=8.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.cp
1562.42 21.671 30.000 4628.5 5350.9 8.0000 2.7190
>>> water=IAPWS95(rho=30, s=4.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
495.00 2.4029 30.000 1597.3 1677.4 4.0000 0.39218
>>> water=IAPWS95(rho=300, u=1000.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
496.44 2.4691 300.000 1000.0 1008.2 2.6476 0.02680
>>> water=IAPWS95(s=3., h=1000.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
345.73 0.034850 0.73526 952.60 1000.0 3.0000 0.29920
>>> water=IAPWS95(u=995., h=1000.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
501.89 2.7329 546.58 995.00 1000.0 2.6298 0.00866
>>> water=IAPWS95(u=1000., s=3.)
>>> water.T, water.P, water.rho, water.u, water.h, water.s, water.x
371.24 0.094712 1.99072 1000.00 1047.6 3.0000 0.28144

References

IAPWS, Revised Release on the IAPWS Formulation 1995 for the Thermodynamic Properties of Ordinary Water Substance for General and Scientific Use, September 2016, http://www.iapws.org/relguide/IAPWS-95.html

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html

IAPWS, Guideline on a Low-Temperature Extension of the IAPWS-95 Formulation for Water Vapor, http://www.iapws.org/relguide/LowT.html

IAPWS, Revised Advisory Note No. 3: Thermodynamic Derivatives from IAPWS Formulations, http://www.iapws.org/relguide/Advise3.pdf

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
name = 'water'
CASNumber = '7732-18-5'
formula = 'H2O'
synonym = 'R-718'
Tc = 647.096
rhoc = 322.0
Pc = 22.064
M = 18.015268
Tt = 273.16
Tb = 373.1243
f_acent = 0.3443
momentoDipolar = 1.855
Fi0 = {'ao_exp': [0.012436, 0.97315, 1.2795, 0.96956, 0.24873], 'ao_log': [1, 3.00632], 'ao_pow': [-8.3204464837497, 6.6832105275932], 'pow': [0, 1], 'titao': [1.28728967, 3.53734222, 7.74073708, 9.24437796, 27.5075105]}
_constants = {'A': [0.32, 0.32], 'B': [0.2, 0.2], 'C': [28, 32], 'D': [700, 800], 'R': 8.314371357587, 'a4': [3.5, 3.5], 'alfa3': [20, 20, 20], 'b4': [0.85, 0.95], 'beta3': [150, 150, 250], 'beta4': [0.3, 0.3], 'c2': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 6, 6, 6, 6], 'd1': [1, 1, 1, 2, 2, 3, 4], 'd2': [1, 1, 1, 2, 2, 3, 4, 4, 5, 7, 9, 10, 11, 13, 15, 1, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7, 9, 9, 9, 9, 9, 10, 10, 12, 3, 4, 4, 5, 14, 3, 6, 6, 6], 'd3': [3, 3, 3], 'epsilon3': [1.0, 1.0, 1.0], 'gamma2': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'gamma3': [1.21, 1.21, 1.25], 'nr1': [0.012533547935523, 7.8957634722828, -8.7803203303561, 0.31802509345418, -0.26145533859358, -0.0078199751687981, 0.0088089493102134], 'nr2': [-0.66856572307965, 0.20433810950965, -6.6212605039687e-05, -0.19232721156002, -0.25709043003438, 0.16074868486251, -0.04009282892587, 3.9343422603254e-07, -7.5941377088144e-06, 0.00056250979351888, -1.5608652257135e-05, 1.1537996422951e-09, 3.6582165144204e-07, -1.3251180074668e-12, -6.2639586912454e-10, -0.10793600908932, 0.017611491008752, 0.22132295167546, -0.40247669763528, 0.58083399985759, 0.0049969146990806, -0.031358700712549, -0.74315929710341, 0.4780732991548, 0.020527940895948, -0.13636435110343, 0.014180634400617, 0.0083326504880713, -0.029052336009585, 0.038615085574206, -0.020393486513704, -0.0016554050063734, 0.0019955571979541, 0.00015870308324157, -1.638856834253e-05, 0.043613615723811, 0.034994005463765, -0.076788197844621, 0.022446277332006, -6.2689710414685e-05, -5.5711118565645e-10, -0.19905718354408, 0.31777497330738, -0.11841182425981], 'nr3': [-31.306260323435, 31.546140237781, -2521.3154341695], 'nr4': [-0.14874640856724, 0.31806110878444], 't1': [-0.5, 0.875, 1, 0.5, 0.75, 0.375, 1], 't2': [4, 6, 12, 1, 5, 4, 2, 13, 9, 3, 4, 11, 4, 13, 1, 7, 1, 9, 10, 10, 3, 7, 10, 10, 6, 10, 10, 1, 2, 3, 4, 8, 6, 9, 8, 16, 22, 23, 23, 10, 50, 44, 46, 50], 't3': [0, 1, 4]}
_Pv = {'ao': [-7.85951783, 1.84408259, -11.7866497, 22.6807411, -15.9618719, 1.80122502], 'exp': [1, 1.5, 3, 3.5, 4, 7.5]}
_rhoL = {'ao': [1.99274064, 1.09965342, -0.510839303, -1.75493479, -45.5170352, -674694.45], 'eq': 2, 'exp': [1, 2, 5, 16, 43, 110]}
_rhoG = {'ao': [-2.0315024, -2.6830294, -5.38626492, -17.2991605, -44.7586581, -63.9201063], 'eq': 4, 'exp': [1, 2, 4, 9, 18.5, 35.5]}
_phi0(tau, delta)[source]

Low temperature extension of the IAPWS-95

_phiex(T)[source]

Low temperature extension

classmethod _alfa_sat(T)[source]

Auxiliary equation for the alfa coefficient for calculate the enthalpy along the saturation line

Parameters:T (float) – Temperature, [K]
Returns:alfa – alfa coefficient, [kJ/kg]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.4

classmethod _phi_sat(T)[source]

Auxiliary equation for the phi coefficient for calculate the entropy along the saturation line

Parameters:T (float) – Temperature, [K]
Returns:phi – phi coefficient, [kJ/kgK]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.5

classmethod _Liquid_Enthalpy(T)[source]

Auxiliary equation for the specific enthalpy for saturated liquid

Parameters:T (float) – Temperature, [K]
Returns:h – Saturated liquid enthalpy, [kJ/kg]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.6

classmethod _Vapor_Enthalpy(T)[source]

Auxiliary equation for the specific enthalpy for saturated vapor

Parameters:T (float) – Temperature, [K]
Returns:h – Saturated vapor enthalpy, [kJ/kg]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.7

classmethod _Liquid_Entropy(T)[source]

Auxiliary equation for the specific entropy for saturated liquid

Parameters:T (float) – Temperature, [K]
Returns:s – Saturated liquid entropy, [kJ/kgK]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.8

classmethod _Vapor_Entropy(T)[source]

Auxiliary equation for the specific entropy for saturated vapor

Parameters:T (float) – Temperature, [K]
Returns:s – Saturated liquid entropy, [kJ/kgK]
Return type:float

References

IAPWS, Revised Supplementary Release on Saturation Properties of Ordinary Water Substance September 1992, http://www.iapws.org/relguide/Supp-sat.html, Eq.9

_visco(rho, T, fase)[source]
_thermo(rho, T, fase)[source]
_surface(T)[source]

Generic equation for the surface tension

Parameters:T (float) – Temperature, [K]
Returns:σ – Surface tension, [N/m]
Return type:float

Notes

Need a _surf dict in the derived class with the parameters keys:
sigma: coefficient exp: exponent
class iapws.iapws95.IAPWS95_PT(P, T)[source]

Derivated class for direct P and T input

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
class iapws.iapws95.IAPWS95_Ph(P, h)[source]

Derivated class for direct P and h input

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
class iapws.iapws95.IAPWS95_Ps(P, s)[source]

Derivated class for direct P and s input

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
class iapws.iapws95.IAPWS95_Px(P, x)[source]

Derivated class for direct P and v input

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
class iapws.iapws95.IAPWS95_Tx(T, x)[source]

Derivated class for direct T and x input

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
class iapws.iapws95.D2O(**kwargs)[source]

Implementation of IAPWS Formulation for heavy water substance, for internal procedures, see MEoS base class

Parameters:
  • T (float) – Temperature, [K]
  • P (float) – Pressure, [MPa]
  • rho (float) – Density, [kg/m³]
  • v (float) – Specific volume, [m³/kg]
  • h (float) – Specific enthalpy, [kJ/kg]
  • s (float) – Specific entropy, [kJ/kgK]
  • u (float) – Specific internal energy, [kJ/kg]
  • x (float) – Vapor quality, [-]
  • l (float, optional) – Wavelength of light, for refractive index, [nm]
  • rho0 (float, optional) – Initial value of density, to improve iteration, [kg/m³]
  • T0 (float, optional) – Initial value of temperature, to improve iteration, [K]
  • x0 (Initial value of vapor quality, necessary in bad input pair definition) – where there are two valid solution (T-h, T-s)

Notes

  • It needs two incoming properties of T, P, rho, h, s, u.
  • v as a alternate input parameter to rho
  • T-x, P-x, preferred input pair to specified a point in two phases region

The calculated instance has the following properties:

  • P: Pressure, [MPa]
  • T: Temperature, [K]
  • x: Vapor quality, [-]
  • g: Specific Gibbs free energy, [kJ/kg]
  • a: Specific Helmholtz free energy, [kJ/kg]
  • v: Specific volume, [m³/kg]
  • r: Density, [kg/m³]
  • h: Specific enthalpy, [kJ/kg]
  • u: Specific internal energy, [kJ/kg]
  • s: Specific entropy, [kJ/kg·K]
  • cp: Specific isobaric heat capacity, [kJ/kg·K]
  • cv: Specific isochoric heat capacity, [kJ/kg·K]
  • cp_cv: Heat capacity ratio, [-]
  • Z: Compression factor, [-]
  • fi: Fugacity coefficient, [-]
  • f: Fugacity, [MPa]
  • gamma: Isoentropic exponent, [-]
  • alfav: Isobaric cubic expansion coefficient, [1/K]
  • kappa: Isothermal compressibility, [1/MPa]
  • kappas: Adiabatic compresibility, [1/MPa]
  • alfap: Relative pressure coefficient, [1/K]
  • betap: Isothermal stress coefficient, [kg/m³]
  • joule: Joule-Thomson coefficient, [K/MPa]
  • betas: Isoentropic temperature-pressure coefficient, [-]
  • Gruneisen: Gruneisen parameter, [-]
  • virialB: Second virial coefficient, [m³/kg]
  • virialC: Third virial coefficient, [m⁶/kg²]
  • dpdT_rho: Derivatives, dp/dT at constant rho, [MPa/K]
  • dpdrho_T: Derivatives, dp/drho at constant T, [MPa·m³/kg]
  • drhodT_P: Derivatives, drho/dT at constant P, [kg/m³·K]
  • drhodP_T: Derivatives, drho/dP at constant T, [kg/m³·MPa]
  • dhdT_rho: Derivatives, dh/dT at constant rho, [kJ/kg·K]
  • dhdP_T: Isothermal throttling coefficient, [kJ/kg·MPa]
  • dhdT_P: Derivatives, dh/dT at constant P, [kJ/kg·K]
  • dhdrho_T: Derivatives, dh/drho at constant T, [kJ·m³/kg²]
  • dhdrho_P: Derivatives, dh/drho at constant P, [kJ·m³/kg²]
  • dhdP_rho: Derivatives, dh/dP at constant rho, [kJ/kg·MPa]
  • kt: Isothermal Expansion Coefficient, [-]
  • ks: Adiabatic Compressibility, [1/MPa]
  • Ks: Adiabatic bulk modulus, [MPa]
  • Kt: Isothermal bulk modulus, [MPa]
  • v0: Ideal specific volume, [m³/kg]
  • rho0: Ideal gas density, [kg/m³]
  • u0: Ideal specific internal energy, [kJ/kg]
  • h0: Ideal specific enthalpy, [kJ/kg]
  • s0: Ideal specific entropy, [kJ/kg·K]
  • a0: Ideal specific Helmholtz free energy, [kJ/kg]
  • g0: Ideal specific Gibbs free energy, [kJ/kg]
  • cp0: Ideal specific isobaric heat capacity, [kJ/kg·K]
  • cv0: Ideal specific isochoric heat capacity, [kJ/kg·K]
  • w0: Ideal speed of sound, [m/s]
  • gamma0: Ideal isoentropic exponent, [-]
  • w: Speed of sound, [m/s]
  • mu: Dynamic viscosity, [Pa·s]
  • nu: Kinematic viscosity, [m²/s]
  • k: Thermal conductivity, [W/m·K]
  • alfa: Thermal diffusivity, [m²/s]
  • sigma: Surface tension, [N/m]
  • epsilon: Dielectric constant, [-]
  • n: Refractive index, [-]
  • Prandt: Prandtl number, [-]
  • Pr: Reduced Pressure, [-]
  • Tr: Reduced Temperature, [-]
  • Hvap: Vaporization heat, [kJ/kg]
  • Svap: Vaporization entropy, [kJ/kg·K]
  • Z_rho: \((Z-1)/\rho\), [m³/kg]
  • IntP: Internal pressure, [MPa]
  • invT: Negative reciprocal temperature, [1/K]
  • hInput: Specific heat input, [kJ/kg]

Examples

>>> hwater=D2O(T=300, rho=996.5560)
>>> hwater.P, hwater.Liquid.cv, hwater.Liquid.w
0.0030675947 4.21191157 5332.04871

References

IAPWS, Release on the IAPWS Formulation 2017 for the Thermodynamic Properties of Heavy Water, http://www.iapws.org/relguide/Heavy-2017.pdf IAPWS, Revised Advisory Note No. 3: Thermodynamic Derivatives from IAPWS Formulations, http://www.iapws.org/relguide/Advise3.pdf

Attributes:
CP
Gruneisen
IntP
Ks
Kt
Prandt
Z
Z_rho
a
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp_cv
cv
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
gamma
h
hInput
joule
k
kappa
ks
kt
mu
n
nu
rho
s
u
v
w

Methods

__call__(**kwargs) Make instance callable to can add input parameter one to one
calculo() Calculate procedure
derivative(z, x, y, fase) Wrapper derivative for custom derived properties where x, y, z can be: P, T, v, rho, u, h, s, g, a
fill(fase, estado) Fill phase properties
name = 'heavy water'
CASNumber = '7789-20-0'
formula = 'D2O'
synonym = 'deuterium oxide'
Tc = 643.847
rhoc = 355.9999698294
Pc = 21.671
M = 20.027508
Tt = 276.97
Tb = 374.563
f_acent = 0.364
momentoDipolar = 1.9
Fi0 = {'ao_exp': [0.010633, 0.99787, 2.1483, 0.3549], 'ao_hyp': [], 'ao_log': [1, 3], 'ao_pow': [-8.670994022646, 6.96033578458778], 'hyp': [], 'pow': [0, 1], 'titao': [0.47837452065475183, 2.632613027629235, 6.1334447469662825, 16.023993277906087]}
_constants = {'R': 8.3144598, 'alfa3': [0.6014, 1.4723, 1.5305, 2.4297, 1.3086, 1.3528, 3.4456, 1.2645, 2.5547, 1.2148, 18.738, 18.677], 'beta3': [0.42, 2.4318, 1.2888, 8.271, 0.3673, 0.9504, 7.8318, 3.3281, 7.1753, 0.9465, 1177.0, 1167.0], 'c2': [1, 2, 2, 1, 2, 2], 'd1': [4, 1, 1, 2, 2, 3], 'd2': [1, 1, 3, 2, 2, 1], 'd3': [1, 3, 1, 3, 1, 1, 2, 2, 2, 1, 1, 1], 'epsilon3': [1.8663, 0.2895, 0.5803, 0.2236, 0.6815, 0.9495, 1.1158, 0.1607, 0.4144, 0.9683, 0.9488, 0.9487], 'gamma2': [1, 1, 1, 1, 1, 1], 'gamma3': [1.5414, 1.3794, 1.7385, 1.3045, 2.7242, 3.5321, 2.4552, 0.8319, 1.35, 2.5617, 1.0491, 1.0486], 'nr1': [0.012208206, 2.9695687, -3.7900454, 0.9410896, -0.92246625, -0.013960419], 'nr2': [-0.12520357, -5.553915, -4.9300974, -0.035947024, -9.3617287, -0.69183515], 'nr3': [-0.04561106, -2.245133, 8.6000607, -2.4841042, 16.44769, 2.7039336, 37.563747, -1.7760776, 2.2092464, 5.19652, 0.4210974, -0.3919211], 't1': [1.0, 0.6555, 0.9369, 0.561, 0.7017, 1.0672], 't2': [3.9515, 4.6, 5.159, 0.2, 5.4644, 2.366], 't3': [3.4553, 1.415, 1.5745, 3.454, 3.8106, 4.895, 1.43, 1.587, 3.79, 2.62, 1.9, 4.32]}
_Pv = {'ao': [-8.0236, 2.3957, -42.639, 99.569, -62.135], 'exp': [1.0, 1.5, 2.75, 3.0, 3.2]}
_rhoL = {'ao': [2.6406, 9.709, -18.058, 8.7202, -7.4487], 'eq': 1, 'exp': [0.3678, 1.9, 2.2, 2.63, 7.3]}
_rhoG = {'ao': [-3.7651, -38.673, 73.024, -132.51, 75.235, -70.412], 'eq': 3, 'exp': [0.409, 1.766, 2.24, 3.04, 3.42, 6.9]}
_visco(rho, T, fase)[source]
_thermo(rho, T, fase)[source]
_surface(T)[source]

Generic equation for the surface tension

Parameters:T (float) – Temperature, [K]
Returns:σ – Surface tension, [N/m]
Return type:float

Notes

Need a _surf dict in the derived class with the parameters keys:
sigma: coefficient exp: exponent