Returns all sites in the lattice (optionally from the set of sites with specific labels)
        that are not part of a percolating network.
        This is determined from clusters of connected sites that do not wrap round to
        themselves through a periodic boundary.

        Args:
            site_labels (String or List(String)): Lables of sites to be considered.

        Returns:
            (List(Site)): List of sites not in a periodic percolating network.

def detached_sites( self, site_labels=None ):
        """
        Returns all sites in the lattice (optionally from the set of sites with specific labels)
        that are not part of a percolating network.
        This is determined from clusters of connected sites that do not wrap round to
        themselves through a periodic boundary.

        Args:
            site_labels (String or List(String)): Lables of sites to be considered.

        Returns:
            (List(Site)): List of sites not in a periodic percolating network.
        """
        clusters = self.connected_sites( site_labels=site_labels )
        island_clusters = [ c for c in clusters if not any( c.is_periodically_contiguous() ) ]
        return list( itertools.chain.from_iterable( ( c.sites for c in island_clusters ) ) )