def Tsal_1989(Re, eD):
    """Calculates Darcy friction factor using the method in Tsal (1989)
    [2]_ as shown in [1]_.

    .. math::
        A = 0.11(\\frac{68}{Re} + \\frac{\\epsilon}{D})^{0.25}

    if :math:`A >= 0.018` then `fd = A`;
    
    if :math:`A < 0.018` then :math:`fd = 0.0028 + 0.85 A`.

    Parameters
    ----------
    Re : float
        Reynolds number, [-]
    eD : float
        Relative roughness, [-]

    Returns
    -------
    fd : float
        Darcy friction factor [-]

    Notes
    -----
    Range is 4E3 <= Re <= 1E8;  0 <= eD <= 5E-2

    Examples
    --------
    >>> Tsal_1989(1E5, 1E-4)
    0.018382997825686878

    References
    ----------
    .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and
       Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence
       and Combustion 90, no. 1 (January 1, 2013): 1-27.
       doi:10.1007/s10494-012-9419-7
    .. [2] Tsal, R.J.: Altshul-Tsal friction factor equation.
       Heat-Piping-Air Cond. 8, 30-45 (1989)
    """
    A = 0.11 * (68 / Re + eD) ** 0.25
    if A >= 0.018:
        return A
    else:
        return 0.0028 + 0.85 * A
