def __init__(self, network=None, phase=None, geometry=None, pores=[],
                 throats=[], **kwargs):
        super().__init__(**kwargs)
        logger.name = self.name

        # Associate with Network
        if network is None:
            network = GenericNetwork()
        self.network.update({network.name: network})  # Attach network to self
        self._net.physics.update({self.name: self})  # Register self with network

        # Associate with Phase
        if phase is None:
            phase = GenericPhase(network=self._net)
        phase.physics.update({self.name: self})  # Register self with phase
        self.phases.update({phase.name: phase})  # Register phase with self

        if geometry is not None:
            if (0 > sp.size(pores)) or (sp.size(throats) > 0):
                raise Exception('Cannot specify a Geometry AND pores or throats')
            pores = self._net.toindices(self._net['pore.' + geometry.name])
            throats = self._net.toindices(self._net['throat.' + geometry.name])

        # Initialize a label dictionary in the associated phase and network
        self._phases[0]['pore.'+self.name] = False
        self._phases[0]['throat.'+self.name] = False
        self._net['pore.'+self.name] = False
        self._net['throat.'+self.name] = False
        try:
            self.set_locations(pores=pores, throats=throats)
        except:
            self.controller.purge_object(self)
            raise Exception('Provided locations are in use, instantiation cancelled')
dataset/ETHPy150Open PMEAL/OpenPNM/OpenPNM/Physics/__GenericPhysics__.py/GenericPhysics.__init__/swapped operands of `>`