All nearest-neighbour jumps not blocked by volume exclusion 
        (i.e. from occupied to neighbouring unoccupied sites).

        Args:
            None

        Returns:
            (List(Jump)): List of possible jumps.

def potential_jumps( self ):
        """
        All nearest-neighbour jumps not blocked by volume exclusion 
        (i.e. from occupied to neighbouring unoccupied sites).

        Args:
            None

        Returns:
            (List(Jump)): List of possible jumps.
        """
        jumps = []
        if self.number_of_occupied_sites <= self.number_of_sites / 2:
            for occupied_site in self.occupied_sites():
                unoccupied_neighbours = [ site for site in [ self.site_with_id( n ) for n in occupied_site.neighbours ] if not site.is_occupied ]
                for vacant_site in unoccupied_neighbours:
                    jumps.append( jump.Jump( occupied_site, vacant_site, self.nn_energy, self.cn_energies, self.jump_lookup_table ) )
        else:
            for vacant_site in self.vacant_sites():
                occupied_neighbours = [ site for site in [ self.site_with_id( n ) for n in vacant_site.neighbours ] if site.is_occupied ]
                for occupied_site in occupied_neighbours:
                    jumps.append( jump.Jump( occupied_site, vacant_site, self.nn_energy, self.cn_energies, self.jump_lookup_table ) )
        return jumps