Пример #1
0
def transFwdArchiePhi(rFluid=20, m=2):
    r"""Archies law transformation function for resistivity(porosity).

    .. math::
        \rho & = a\rho_{\text{fl}}\phi^{-m}\S_w^{-n} \\
        \rho & = \rho_{\text{fl}}\phi^(-m) =
        \left(\phi/\rho_{\text{fl}}^{-1/n}\right)^{-n}

    See also :py:mod:`pygimli.physics.petro.resistivityArchie`

    Returns
    -------
    trans : :gimliapi:`GIMLI::RTransPower`
        Transformation function

    Examples
    --------
    >>> from pygimli.physics.petro import *
    >>> phi = 0.3
    >>> tFAPhi = transFwdArchiePhi(rFluid=20)
    >>> r1 = tFAPhi.trans(phi)
    >>> r2 = resistivityArchie(rFluid=20.0, porosity=phi,
    ...                        a=1.0, m=2.0, sat=1.0, n=2.0)
    >>> print(r1-r2 < 1e-12)
    True
    >>> phi = [0.3]
    >>> tFAPhi = transFwdArchiePhi(rFluid=20)
    >>> r1 = tFAPhi.trans(phi)
    >>> r2 = resistivityArchie(rFluid=20.0, porosity=phi,
    ...                        a=1.0, m=2.0, sat=1.0, n=2.0)
    >>> print((r1-r2 < 1e-12)[0])
    True
    """
    return pg.RTransPower(-m, rFluid**(1. / m))
Пример #2
0
def transInvArchiePhi(rFluid=20, m=2):  # phi(rho)
    """Inverse Archie transformation function porosity(resistivity).

    # rFluid/rho = phi^m  ==> phi = (rFluid/rho)^(1/m) = (rho/rFluid)^(-1/m)
    See
    ---
    :py:mod:`pygimli.physics.petro.transFwdArchiePhi`
    """
    return pg.RTransPower(-1 / m, rFluid)
Пример #3
0
def transInvArchieS(rFluid=20, phi=0.4, m=2, n=2):  # S(rho)
    """Inverse Archie transformation function saturation(resistivity)."""
    # rFluid/rho = phi^m S^n => S=(rFluid/rho/phi^m)^(1/n)
    # S = (rho/rFluid/phi^-m)^(-1/n)
    return pg.RTransPower(-1 / n, rFluid * phi**(-m))
Пример #4
0
def transFwdArchieS(rFluid=20, phi=0.4, m=2, n=2):  # rho(S)
    """Inverse Archie transformation function resistivity(saturation)."""
    # rho = rFluid * phi^(-m) S^(-n)
    return pg.RTransPower(-n, (rFluid * phi**(-m))**(1 / n))