docs: def Bier(P, Pc, Te=None, q=None):
      r'''Calculates heat transfer coefficient for a evaporator operating
      in the nucleate boiling regime according to [1]_ .
  
      Either heat flux or excess temperature is required.
  
      With `Te` specified:
  
      .. math::
          h = \left(0.00417P_c^{0.69} \Delta Te^{0.7}\left[0.7 + 2P_r\left(4 +
          \frac{1}{1-P_r}\right)  \right]\right)^{1/0.3}
  
      With `q` specified:
  
      .. math::
          h = 0.00417P_c^{0.69} \Delta q^{0.7}\left[0.7 + 2P_r\left(4 + 
          \frac{1}{1-P_r}\right)  \right]
  
      Parameters
      ----------
      P : float
          Saturation pressure of fluid, [Pa]
      Pc : float
          Critical pressure of fluid, [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
      -----
      No examples of this are known. Seems to give very different results than
      other correlations.
  
      Examples
      --------
      Water boiling at 1 atm, with excess temperature of 4.3 K from [1]_.
  
      >>> Bier(101325., 22048321.0, Te=4.3)
      1290.5349471503353
  
      References
      ----------
      .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat
         Transfer, 3E. New York: McGraw-Hill, 1998.
      '''
      Pr = P/Pc
      if Te:
          return (0.00417*(Pc/1000.)**0.69*Te**0.7*(0.7 + 2.*Pr*(4. + 1./(1.-Pr))))**(1./0.3)
      elif q:
          return 0.00417*(Pc/1000.)**0.69*q**0.7*(0.7 + 2.*Pr*(4. + 1./(1. - Pr)))
      else:
          raise Exception('Either q or Te is needed for this correlation')