docs: 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)