code: def setup(self, phase, entry_pressure='', pore_volume='', throat_volume=''):
          r
          self.settings['phase'] = phase.name
          if pore_volume:
              self.settings['pore_volume'] = pore_volume
          if throat_volume:
              self.settings['throat_volume'] = throat_volume
          if entry_pressure:
              self.settings['entry_pressure'] = entry_pressure
  
          # Setup arrays and info
          self['throat.entry_pressure'] = phase[self.settings['entry_pressure']]
          # Indices into t_entry giving a sorted list
          self['throat.sorted'] = sp.argsort(self['throat.entry_pressure'], axis=0)
          self['throat.order'] = 0
          self['throat.order'][self['throat.sorted']] = sp.arange(0, self.Nt)
          self['throat.invasion_sequence'] = -1
          self['pore.invasion_sequence'] = -1
          self._tcount = 0
docs: r"""
          Set up the required parameters for the algorithm
  
          Parameters
          ----------
          phase : OpenPNM Phase object
              The phase to be injected into the Network.  The Phase must have the
              capillary entry pressure values for the system.
  
          entry_pressure : string
              The dictionary key to the capillary entry pressure.  If none is
              supplied then the current value is retained. The default is
              'throat.capillary_pressure'.
  
          pore_volume : string
              The dictionary key to the pore volume.  If none is supplied then
              the current value is retained. The default is 'pore.volume'.
  
          throat_volume : string
              The dictionary key to the throat volume.  If none is supplied then
              the current value is retained. The default is 'throat.volume'.