docs: def Forster_Zuber(rhol, rhog, mul, kl, Cpl, Hvap, sigma, dPsat, Te=None, q=None):
      r'''Calculates heat transfer coefficient for a evaporator operating
      in the nucleate boiling regime according to [2]_ as presented in [1]_.
  
      Either heat flux or excess temperature is required.
  
      With `Te` specified:
      
      .. math::
          h = 0.00122\left(\frac{k_L^{0.79} C_{p,l}^{0.45}\rho_L^{0.49}}
          {\sigma^{0.5}\mu_L^{0.29} H_{vap}^{0.24} \rho_V^{0.24}}\right)
          \Delta T_e^{0.24} \Delta P_{sat}^{0.75}
  
      With `q` specified:
      
      .. math::
          h = \left[0.00122\left(\frac{k_L^{0.79} C_{p,l}^{0.45}\rho_L^{0.49}}
          {\sigma^{0.5}\mu_L^{0.29} H_{vap}^{0.24} \rho_V^{0.24}}\right) \Delta 
          P_{sat}^{0.75} q^{0.24}\right]^{\frac{1}{1.24}}
  
      Parameters
      ----------
      rhol : float
          Density of the liquid [kg/m^3]
      rhog : float
          Density of the produced gas [kg/m^3]
      mul : float
          Viscosity of liquid [Pa*s]
      kl : float
          Thermal conductivity of liquid [W/m/K]
      Cpl : float
          Heat capacity of liquid [J/kg/K]
      Hvap : float
          Heat of vaporization of the fluid at P, [J/kg]
      sigma : float
          Surface tension of liquid [N/m]
      dPsat : float
          Difference in saturation pressure of the fluid at Te and T, [Pa]
      Te : float, optional
          Excess wall temperature, [K]
      q : float, optional
          Heat flux, [W/m^2]
  
      Returns
      -------
      h : float
          Heat transfer coefficient [W/m^2/K]
  
      Notes
      -----
      Examples have been found in [1]_ and [3]_ and match exactly.
  
      Examples
      --------
      Water boiling, with excess temperature of 4.3K from [1]_.
  
      >>> Forster_Zuber(Te=4.3, dPsat=3906*4.3, Cpl=4180., kl=0.688,
      ... mul=0.275E-3, sigma=0.0588, Hvap=2.25E6, rhol=958., rhog=0.597)
      3519.9239897462644
  
      References
      ----------
      .. [1] Cao, Eduardo. Heat Transfer in Process Engineering.
         McGraw Hill Professional, 2009.
      .. [2] Forster, H. K., and N. Zuber. "Dynamics of Vapor Bubbles and Boiling
         Heat Transfer." AIChE Journal 1, no. 4 (December 1, 1955): 531-35.
         doi:10.1002/aic.690010425.
      .. [3] Serth, R. W., Process Heat Transfer: Principles,
         Applications and Rules of Thumb. 2E. Amsterdam: Academic Press, 2014.
      '''
      if Te:
          return 0.00122*(kl**0.79*Cpl**0.45*rhol**0.49/sigma**0.5/mul**0.29/Hvap**0.24/rhog**0.24)*Te**0.24*dPsat**0.75
      elif q:
          return (0.00122*(kl**0.79*Cpl**0.45*rhol**0.49/sigma**0.5/mul**0.29/Hvap**0.24/rhog**0.24)*q**0.24*dPsat**0.75)**(1/1.24)
      else:
          raise Exception('Either q or Te is needed for this correlation')