docs: def turbulent_Nunner(Re, Pr, fd, fd_smooth):
      r'''Calculates internal convection Nusselt number for turbulent flows
      in pipe according to [2]_ as shown in [1]_.
  
      .. math::
          Nu = \frac{RePr(f/8)}{1 + 1.5Re^{-1/8}Pr^{-1/6}[Pr(f/f_s)-1]}
  
      Parameters
      ----------
      Re : float
          Reynolds number, [-]
      Pr : float
          Prandtl number, [-]
      fd : float
          Darcy friction factor [-]
      fd_smooth : float
          Darcy friction factor of a smooth pipe [-]
  
      Returns
      -------
      Nu : float
          Nusselt number, [-]
  
      Notes
      -----
      Valid for Pr ≅ 0.7; bad results for Pr > 1.
  
      Examples
      --------
      >>> turbulent_Nunner(Re=1E5, Pr=0.7, fd=0.0185, fd_smooth=0.005)
      101.15841010919947
  
      References
      ----------
      .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat
         Transfer, 3E. New York: McGraw-Hill, 1998.
      .. [2] W. Nunner, "Warmeiibergang und Druckabfall in Rauhen Rohren,"
         VDI-Forschungsheft 445, ser. B,(22): 5-39, 1956
      '''
      return Re*Pr*fd/8./(1 + 1.5*Re**-0.125*Pr**(-1/6.)*(Pr*fd/fd_smooth - 1.))