# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _H2O
else:
    import _H2O

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class Table62(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    numCoeff = _H2O.Table62_numCoeff
    c = property(_H2O.Table62_c_get, _H2O.Table62_c_set)
    d = property(_H2O.Table62_d_get, _H2O.Table62_d_set)
    t = property(_H2O.Table62_t_get, _H2O.Table62_t_set)
    n = property(_H2O.Table62_n_get, _H2O.Table62_n_set)
    alpha = property(_H2O.Table62_alpha_get, _H2O.Table62_alpha_set)
    beta = property(_H2O.Table62_beta_get, _H2O.Table62_beta_set)
    gamma = property(_H2O.Table62_gamma_get, _H2O.Table62_gamma_set)
    epsilon = property(_H2O.Table62_epsilon_get, _H2O.Table62_epsilon_set)
    a = property(_H2O.Table62_a_get, _H2O.Table62_a_set)
    b = property(_H2O.Table62_b_get, _H2O.Table62_b_set)
    A = property(_H2O.Table62_A_get, _H2O.Table62_A_set)
    B = property(_H2O.Table62_B_get, _H2O.Table62_B_set)
    C = property(_H2O.Table62_C_get, _H2O.Table62_C_set)
    D = property(_H2O.Table62_D_get, _H2O.Table62_D_set)

    def __init__(self):
        _H2O.Table62_swiginit(self, _H2O.new_Table62())
    __swig_destroy__ = _H2O.delete_Table62

# Register Table62 in _H2O:
_H2O.Table62_swigregister(Table62)

class Table61(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    n0 = property(_H2O.Table61_n0_get, _H2O.Table61_n0_set)
    gamma0 = property(_H2O.Table61_gamma0_get, _H2O.Table61_gamma0_set)

    def __init__(self):
        _H2O.Table61_swiginit(self, _H2O.new_Table61())
    __swig_destroy__ = _H2O.delete_Table61

# Register Table61 in _H2O:
_H2O.Table61_swigregister(Table61)

iceI = _H2O.iceI
iceIII = _H2O.iceIII
iceV = _H2O.iceV
iceVI = _H2O.iceVI
iceVII = _H2O.iceVII
class cH2O(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _H2O.cH2O_swiginit(self, _H2O.new_cH2O())
    __swig_destroy__ = _H2O.delete_cH2O

    def P_Boiling(self, T):
        return _H2O.cH2O_P_Boiling(self, T)

    def Rho_Liquid_Saturated(self, T):
        return _H2O.cH2O_Rho_Liquid_Saturated(self, T)

    def Rho_Vapor_Saturated(self, T):
        return _H2O.cH2O_Rho_Vapor_Saturated(self, T)

    def Rho(self, T, P):
        return _H2O.cH2O_Rho(self, T, P)

    def Phi_r_delta(self, delta, tau):
        return _H2O.cH2O_Phi_r_delta(self, delta, tau)

    def Phi_o_tau(self, delta, tau):
        return _H2O.cH2O_Phi_o_tau(self, delta, tau)

    def Phi_r_tau(self, delta, tau):
        return _H2O.cH2O_Phi_r_tau(self, delta, tau)

    def Pressure_T_Rho(self, T, Rho):
        return _H2O.cH2O_Pressure_T_Rho(self, T, Rho)

    def SublimationCurve(self, T):
        return _H2O.cH2O_SublimationCurve(self, T)

    def BoilingCurve(self, T):
        return _H2O.cH2O_BoilingCurve(self, T)

    def MeltingCurve(self, T, isIceI=False):
        return _H2O.cH2O_MeltingCurve(self, T, isIceI)

    def SpecificEnthalpy_T_Rho(self, T, Rho):
        return _H2O.cH2O_SpecificEnthalpy_T_Rho(self, T, Rho)

    def SpecificEnthalpy(self, T, P):
        return _H2O.cH2O_SpecificEnthalpy(self, T, P)

# Register cH2O in _H2O:
_H2O.cH2O_swigregister(cH2O)
cvar = _H2O.cvar
PMIN = cvar.PMIN
PMAX = cvar.PMAX
TMIN = cvar.TMIN
TMAX = cvar.TMAX
T_Critic_K = cvar.T_Critic_K
P_Critic = cvar.P_Critic
T_Critic = cvar.T_Critic
Rho_Critic = cvar.Rho_Critic
MolarMass = cvar.MolarMass
T_Triple_K = cvar.T_Triple_K
T_Triple = cvar.T_Triple
P_Triple = cvar.P_Triple
Rho_Triple_liquid = cvar.Rho_Triple_liquid
Rho_Triple_vapor = cvar.Rho_Triple_vapor
T_K_ice_min = cvar.T_K_ice_min
T_K_ice_max = cvar.T_K_ice_max
R_const = cvar.R_const



