def ft_Crane(D):
    r'''Calculates the Crane fully turbulent Darcy friction factor for flow in
    commercial pipe, as used in the Crane formulas for loss coefficients in 
    various fittings. Note that this is **not generally applicable to loss
    due to friction in pipes**, as it does not take into account the roughness
    of various pipe materials. But for fittings in any type of pipe, this is
    the friction factor to use in the Crane [1]_ method to get their loss 
    coefficients.
    
    Parameters
    ----------
    D : float
        Pipe inner diameter, [m]

    Returns
    -------
    fd : float
        Darcy Crane friction factor for fully turbulent flow, [-]

    Notes
    -----
    There is confusion and uncertainty regarding the friction factor table 
    given in Crane TP 410M [1]_. This function does not help: it implements a
    new way to obtain Crane friction factors, so that it can better be based in
    theory and give more precision (not accuracy) and trend better with 
    diameters not tabulated in [1]_.
    
    The data in [1]_ was digitized, and nominal pipe diameters were converted
    to actual pipe diameters. An objective function was sought which would
    produce the exact same values as in [1]_ when rounded to the same decimal
    place. One was found fairly easily by using the standard `Colebrook` 
    friction factor formula, and using the diameter-dependent roughness values
    calculated with the `roughness_Farshad` method for bare Carbon steel. A
    diameter-dependent Reynolds number was required to match the values;
    the :math:`\rho V/\mu` term is set to 7.5E6.
    
    The formula given in [1]_ is:
        
    .. math::
        f_T = \frac{0.25}{\left[\log_{10}\left(\frac{\epsilon/D}{3.7}\right)
        \right]^2}
    
    However, this function does not match the rounded values in [1]_ well and
    it is not very clear which roughness to use. Using both the value for new
    commercial steel (.05 mm) or a diameter-dependent value 
    (`roughness_Farshad`), values were found to be too high and too low 
    respectively. That function is based in theory - the limit of the 
    `Colebrook` equation when `Re` goes to infinity - but in the end real pipe
    flow is not infinity, and so a large error occurs from that use.
    
    The following plot shows all these options, and that the method implemented
    here matches perfectly the rounded values in [1]_.
    
    .. plot:: plots/ft_Crane.py

    Examples
    --------
    >>> ft_Crane(.1)
    0.01628845962146481
    
    Explicitly spelling out the function (note the exact same answer is not
    returned; it is accurate to 5-8 decimals however, for increased speed):
        
    >>> Di = 0.1
    >>> Colebrook(7.5E6*Di, eD=roughness_Farshad(ID='Carbon steel, bare', D=Di)/Di)
    0.01628842543122547
    
    References
    ----------
    .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane,
       2009.
    '''
    fast = True
    if D < 1E-2:
        fast = False
    return Clamond(7.5E6*D, 3.4126825352925e-5*D**-1.0112, fast)
r'''Calculates the Crane fully turbulent Darcy friction factor for flow in
    commercial pipe, as used in the Crane formulas for loss coefficients in 
    various fittings. Note that this is **not generally applicable to loss
    due to friction in pipes**, as it does not take into account the roughness
    of various pipe materials. But for fittings in any type of pipe, this is
    the friction factor to use in the Crane [1]_ method to get their loss 
    coefficients.
    
    Parameters
    ----------
    D : float
        Pipe inner diameter, [m]

    Returns
    -------
    fd : float
        Darcy Crane friction factor for fully turbulent flow, [-]

    Notes
    -----
    There is confusion and uncertainty regarding the friction factor table 
    given in Crane TP 410M [1]_. This function does not help: it implements a
    new way to obtain Crane friction factors, so that it can better be based in
    theory and give more precision (not accuracy) and trend better with 
    diameters not tabulated in [1]_.
    
    The data in [1]_ was digitized, and nominal pipe diameters were converted
    to actual pipe diameters. An objective function was sought which would
    produce the exact same values as in [1]_ when rounded to the same decimal
    place. One was found fairly easily by using the standard `Colebrook` 
    friction factor formula, and using the diameter-dependent roughness values
    calculated with the `roughness_Farshad` method for bare Carbon steel. A
    diameter-dependent Reynolds number was required to match the values;
    the :math:`\rho V/\mu` term is set to 7.5E6.
    
    The formula given in [1]_ is:
        
    .. math::
        f_T = \frac{0.25}{\left[\log_{10}\left(\frac{\epsilon/D}{3.7}\right)
        \right]^2}
    
    However, this function does not match the rounded values in [1]_ well and
    it is not very clear which roughness to use. Using both the value for new
    commercial steel (.05 mm) or a diameter-dependent value 
    (`roughness_Farshad`), values were found to be too high and too low 
    respectively. That function is based in theory - the limit of the 
    `Colebrook` equation when `Re` goes to infinity - but in the end real pipe
    flow is not infinity, and so a large error occurs from that use.
    
    The following plot shows all these options, and that the method implemented
    here matches perfectly the rounded values in [1]_.
    
    .. plot:: plots/ft_Crane.py

    Examples
    --------
    >>> ft_Crane(.1)
    0.01628845962146481
    
    Explicitly spelling out the function (note the exact same answer is not
    returned; it is accurate to 5-8 decimals however, for increased speed):
        
    >>> Di = 0.1
    >>> Colebrook(7.5E6*Di, eD=roughness_Farshad(ID='Carbon steel, bare', D=Di)/Di)
    0.01628842543122547
    
    References
    ----------
    .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane,
       2009.