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, [μm]

  • 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:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
M
P
Pc
Pr
Prandt
Svap
T
Tc
Tr
Tt
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
name
nu
phase
rho
rho0
rhoc
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

Fi0 = {}
_constants = {}
_Pv = {}
_rhoL = {}
_rhoG = {}
_surf = {}
name = None
M = None
Tc = None
Pc = None
rhoc = None
Tt = None
status = 0
msg = 'Undefined'
_mode = None
Liquid = None
Gas = None
Vapor = None
T = None
Tr = None
P = None
Pr = None
x = None
phase = None
sigma = None
virialB = None
virialC = None
Hvap = None
Svap = None
invT = None
v0 = None
rho0 = None
h0 = None
u0 = None
s0 = None
a0 = None
g0 = None
cp0 = None
cv0 = None
cp0_cv = None
gamma0 = None
classmethod from_list(p1name, p1val, p2name, p2val)[source]

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

Parameters:
  • p1name (str) – string with name of fixed input parameter

  • p1val (float) – fixed input parameter value

  • p2name (str) – string with name of changing input parameter

  • p2val (list) – iterable with values of changing input parameter

Returns:

states – list with calculated states

Return type:

list

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}
property 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

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:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

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.040092828925807, 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:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

class iapws.iapws95.IAPWS95_Ph(P, h)[source]

Derivated class for direct P and h input

Attributes:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

class iapws.iapws95.IAPWS95_Ps(P, s)[source]

Derivated class for direct P and s input

Attributes:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

class iapws.iapws95.IAPWS95_Px(P, x)[source]

Derivated class for direct P and v input

Attributes:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

class iapws.iapws95.IAPWS95_Tx(T, x)[source]

Derivated class for direct T and x input

Attributes:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

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

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

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:
Gas
Gruneisen
Hvap
IntP
Ks
Kt
Liquid
P
Pr
Prandt
Svap
T
Tr
Vapor
Z
Z_rho
a
a0
alfa
alfap
alfav
betap
betas
calculable

Check if inputs are enough to define state

cp
cp0
cp0_cv
cp_cv
cv
cv0
dhdP_T
dhdP_rho
dhdT_P
dhdT_rho
dhdrho_P
dhdrho_T
dpdT_rho
dpdrho_T
drhodP_T
drhodT_P
epsilon
f
fi
g
g0
gamma
gamma0
h
h0
hInput
invT
joule
k
kappa
ks
kt
mu
n
nu
phase
rho
rho0
s
s0
sigma
u
u0
v
v0
virialB
virialC
w
x

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

from_list(p1name, p1val, p2name, p2val)

Speed up method using multiprocessing for multiple point calculation with a fixed input and changing other input parameter

name = 'heavy water'
CASNumber = '7789-20-0'
formula = 'D2O'
synonym = 'deuterium oxide'
Tc = 643.847
rhoc = 355.9999698294
Pc = 21.6618
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