Source code for chempy.properties.water_density_tanaka_2001

# -*- coding: utf-8 -*-

import warnings

try:
    from numpy import any as _any
except ImportError:
    def _any(arg):
        if arg is True:
            return True
        if arg is False:
            return False
        return any(arg)


[docs]def water_density(T=None, T0=None, units=None, a=None, just_return_a=False, warn=True): """ Density of water (kg/m3) as function of temperature (K) according to VSMOW model between 0 and 40 degree Celsius. Fitted using Thiesen's equation. Parameters ---------- T: float Temperature (in Kelvin) (default: 298.15) T0: float Value of T for 0 degree Celsius (default: 273.15) units: object (optional) object with attributes: Kelvin, meter, kilogram a: array_like (optional) 5 parameters to the equation. just_return_a: bool (optional, default: False) Do not compute rho, just return the parameters ``a``. warn: bool (default: True) Emit UserWarning when outside temperature range. Returns ------- Density of water (float of kg/m3 if T is float and units is None) Examples -------- >>> print('%.2f' % water_density(277.13)) 999.97 References ---------- TANAKA M., GIRARD G., DAVIS R., PEUTO A. and BIGNELL N., "Recommanded table for the density of water between 0 °C and 40 °C based on recent experimental reports", Metrologia, 2001, 38, 301-309. http://iopscience.iop.org/article/10.1088/0026-1394/38/4/3 doi:10.1088/0026-1394/38/4/3 """ if units is None: K = 1 m = 1 kg = 1 else: K = units.Kelvin m = units.meter kg = units.kilogram if T is None: T = 298.15*K m3 = m**3 if a is None: a = (-3.983035*K, # C 301.797*K, # C 522528.9*K*K, # C**2 69.34881*K, # C 999.974950*kg/m3) if just_return_a: return a if T0 is None: T0 = 273.15*K t = T - T0 if warn and (_any(t < 0*K) or _any(t > 40*K)): warnings.warn("Temperature is outside range (0-40 degC)") return a[4]*(1-((t + a[0])**2*(t + a[1]))/(a[2]*(t + a[3]))) # generated at doi2bib.org:
bibtex = """ @article{Tanaka2001, doi = {10.1088/0026-1394/38/4/3}, url = {http://dx.doi.org/10.1088/0026-1394/38/4/3}, year = {2001}, month = {aug}, publisher = {{IOP} Publishing}, volume = {38}, number = {4}, pages = {301--309}, author = {M Tanaka and G Girard and R Davis and A Peuto and N Bignell}, title = {Recommended table for the density of water between 0 ~C and 40 ~C based on recent experimental reports}, journal = {Metrologia} } """