docs: def control_valve_choke_P_l(Psat, Pc, FL, P1=None, P2=None, disp=True):
      r'''Calculates either the upstream or downstream pressure at which choked
      flow though a liquid control valve occurs, given either a set upstream or 
      downstream pressure. Implements an analytical solution of 
      the needed equations from the full function
      :py:func:`~.size_control_valve_l`. For some pressures, no choked flow 
      is possible; for choked flow to occur the direction if flow must be 
      reversed. If `disp` is True, an exception will be raised for these
      conditions.
      
      .. math::
          P_1 = \frac{F_{F} F_{L}^{2} P_{sat} - P_{2}}{F_{L}^{2} - 1}
          
      .. math::
          P_2 = F_{F} F_{L}^{2} P_{sat} - F_{L}^{2} P_{1} + P_{1}
      
      Parameters
      ----------
      Psat : float
          Saturation pressure of the liquid at inlet temperature [Pa]
      Pc : float
          Critical pressure of the liquid [Pa]
      FL : float, optional
          Liquid pressure recovery factor of a control valve without attached 
          fittings [-]
      P1 : float, optional
          Absolute pressure upstream of the valve [Pa]
      P2 : float, optional
          Absolute pressure downstream of the valve [Pa]
      disp : bool, optional
          Whether or not to raise an exception on flow reversal, [-]
  
      Returns
      -------
      P_choke : float
          Pressure at which a choke occurs in the liquid valve [Pa]
  
      Notes
      -----
      Extremely cheap to compute.
      
      Examples
      --------
      >>> control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, 680000.0)
      458887.5306077305
      >>> control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, P2=458887.5306077305)
      680000.0
      '''
      FF = FF_critical_pressure_ratio_l(Psat=Psat, Pc=Pc)
      Pmin_absolute = FF*Psat
      if P2 is None:
          ans = P2 = FF*FL*FL*Psat - FL*FL*P1 + P1
      elif P1 is None:
          ans = P1 = (FF*FL*FL*Psat - P2)/(FL*FL - 1.0)
      else:
          raise Exception('Either P1 or P2 needs to be specified')
      if P2 > P1 and disp:
          raise Exception('Specified P1 is too low for choking to occur '
                          'at any downstream pressure; minimum '
                          'upstream pressure for choking to be possible '
                          'is %g Pa.' %Pmin_absolute)
      return ans