def _generate_throats(self):
        r"""
        Generate the throats (connections, numbering and types)
        """
        Nx = self._Nx
        Ny = self._Ny
        Nz = self._Nz
        Np = Nx*Ny*Nz
        ind = sp.arange(0, Np)
        # Generate throats based on pattern of the adjacency matrix
        tpore1_1 = ind[(ind % Nx) < (Nx-1)]
        tpore2_1 = tpore1_1 + 1
        tpore1_2 = ind[(ind % (Nx*Ny)) < (Nx*(Ny-1))]
        tpore2_2 = tpore1_2 + Nx
        tpore1_3 = ind[(ind % Np) < (Nx*Ny*(Nz-1))]
        tpore2_3 = tpore1_3 + Nx*Ny
        tpore1 = sp.hstack((tpore1_1, tpore1_2, tpore1_3))
        tpore2 = sp.hstack((tpore2_1, tpore2_2, tpore2_3))
        connections = sp.vstack((tpore1, tpore2)).T
        connections = connections[sp.lexsort((connections[:, 1], connections[:, 0]))]
        self['throat.all'] = sp.ones_like(sp.arange(0, sp.shape(tpore1)[0]),
                                          dtype=bool)
        self['throat.conns'] = connections
dataset/ETHPy150Open PMEAL/OpenPNM/OpenPNM/Network/__TestNet__.py/TestNet._generate_throats/original