docs: def Chisholm(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1,
               rough_correction=False):
      r'''Calculates two-phase pressure drop with the Chisholm (1973) correlation
      from [1]_, also in [2]_ and [3]_.
  
      .. math::
          \frac{\Delta P_{tp}}{\Delta P_{lo}} = \phi_{ch}^2
  
      .. math::
          \phi_{ch}^2 = 1 + (\Gamma^2 -1)\left\{B x^{(2-n)/2} (1-x)^{(2-n)/2}
          + x^{2-n} \right\}
  
      .. math::
          \Gamma ^2 = \frac{\left(\frac{\Delta P}{L}\right)_{go}}{\left(\frac{
          \Delta P}{L}\right)_{lo}}
  
      For Gamma < 9.5:
  
      .. math::
          B = \frac{55}{G_{tp}^{0.5}} \text{ for } G_{tp} > 1900
  
      .. math::
          B = \frac{2400}{G_{tp}} \text{ for } 500 < G_{tp} < 1900
  
      .. math::
          B = 4.8 \text{ for } G_{tp} < 500
  
      For 9.5 < Gamma < 28:
  
      .. math::
          B = \frac{520}{\Gamma G_{tp}^{0.5}} \text{ for } G_{tp} < 600
  
      .. math::
          B = \frac{21}{\Gamma} \text{ for } G_{tp} > 600
  
      For Gamma > 28:
  
      .. math::
          B = \frac{15000}{\Gamma^2 G_{tp}^{0.5}}
  
      If `rough_correction` is True, the following correction to B is applied:
  
      .. math::
          \frac{B_{rough}}{B_{smooth}} = \left[0.5\left\{1+ \left(\frac{\mu_g}
          {\mu_l}\right)^2 + 10^{-600\epsilon/D}\right\}\right]^{\frac{0.25-n}
          {0.25}}
  
      .. math::
          n = \frac{\log \frac{f_{d,lo}}{f_{d,go}}}{\log \frac{Re_{go}}{Re_{lo}}}
  
      Parameters
      ----------
      m : float
          Mass flow rate of fluid, [kg/s]
      x : float
          Quality of fluid, [-]
      rhol : float
          Liquid density, [kg/m^3]
      rhog : float
          Gas density, [kg/m^3]
      mul : float
          Viscosity of liquid, [Pa*s]
      mug : float
          Viscosity of gas, [Pa*s]
      D : float
          Diameter of pipe, [m]
      roughness : float, optional
          Roughness of pipe for use in calculating friction factor, [m]
      L : float, optional
          Length of pipe, [m]
      rough_correction : bool, optional
          Whether or not to use the roughness correction proposed in the 1968
          version of the correlation
  
      Returns
      -------
      dP : float
          Pressure drop of the two-phase flow, [Pa]
  
      Notes
      -----
      Applicable for  0 < x < 1. n = 0.25, the exponent in the Blassius equation.
      Originally developed for smooth pipes, a roughness correction is included
      as well from the Chisholm's 1968 work [4]_. Neither [2]_ nor [3]_ have any
      mention of the correction however.
  
      Examples
      --------
      >>> Chisholm(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6,
      ... mug=14E-6, D=0.05, roughness=0, L=1)
      1084.1489922923738
  
      References
      ----------
      .. [1] Chisholm, D. "Pressure Gradients due to Friction during the Flow of
         Evaporating Two-Phase Mixtures in Smooth Tubes and Channels."
         International Journal of Heat and Mass Transfer 16, no. 2 (February
         1973): 347-58. doi:10.1016/0017-9310(73)90063-X.
      .. [2] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop
         Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma
         State University, 2013. https://shareok.org/handle/11244/11109.
      .. [3] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc
         (2004). http://www.wlv.com/heat-transfer-databook/
      .. [4] Chisholm, D. "Research Note: Influence of Pipe Surface Roughness on
         Friction Pressure Gradient during Two-Phase Flow." Journal of Mechanical
         Engineering Science 20, no. 6 (December 1, 1978): 353-354.
         doi:10.1243/JMES_JOUR_1978_020_061_02.
      '''
      G_tp = m/(pi/4*D**2)
      n = 0.25 # Blasius friction factor exponent
      # Liquid-only properties, for calculation of dP_lo
      v_lo = m/rhol/(pi/4*D**2)
      Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D)
      fd_lo = friction_factor(Re=Re_lo, eD=roughness/D)
      dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2)
  
      # Gas-only properties, for calculation of dP_go
      v_go = m/rhog/(pi/4*D**2)
      Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D)
      fd_go = friction_factor(Re=Re_go, eD=roughness/D)
      dP_go = fd_go*L/D*(0.5*rhog*v_go**2)
  
      Gamma = (dP_go/dP_lo)**0.5
      if Gamma <= 9.5:
          if G_tp <= 500:
              B = 4.8
          elif G_tp < 1900:
              B = 2400./G_tp
          else:
              B = 55*G_tp**-0.5
      elif Gamma <= 28:
          if G_tp <= 600:
              B = 520.*G_tp**-0.5/Gamma
          else:
              B = 21./Gamma
      else:
          B = 15000.*G_tp**-0.5/Gamma**2
  
      if rough_correction:
          n = log(fd_lo/fd_go)/log(Re_go/Re_lo)
          B_ratio = (0.5*(1 + (mug/mul)**2 + 10**(-600*roughness/D)))**((0.25-n)/0.25)
          B = B*B_ratio
  
      phi2_ch = 1 + (Gamma**2-1)*(B*x**((2-n)/2.)*(1-x)**((2-n)/2.) + x**(2-n))
      return phi2_ch*dP_lo