<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _apply_snap_off(self, queue=None):
 r""" Add all the throats to the queue with snap off pressure This is probably wrong!!!! Each one needs to start a new cluster. """

        net = self.project.network
        phase = self.project.find_phase(self)
        snap_off = self.settings['snap_off']
        if queue is None:
            queue = self.queue[0]
        try:
            Pc_snap_off = phase[snap_off]
            logger.info("Adding snap off pressures to queue")
            for T in net.throats():
                if not np.isnan(Pc_snap_off[T]):
                    hq.heappush(queue, [Pc_snap_off[T], T, 'throat'])
        except KeyError:
            logger.warning("Phase " + phase.name + " doesn't have " +
                           "property " + snap_off)