The relative probability for a jump between two sites with specific site types and coordination numbers.

        Args:
            l1 (Str): Site label for the initial site.
            l2 (Str): Site label for the final site.
            c1 (Int): Coordination number for the initial site.
            c2 (Int): Coordination number for the final site.
   
        Returns:
            (Float): The relative probability of this jump occurring.

def relative_probability( self, l1, l2, c1, c2 ):
        """
        The relative probability for a jump between two sites with specific site types and coordination numbers.

        Args:
            l1 (Str): Site label for the initial site.
            l2 (Str): Site label for the final site.
            c1 (Int): Coordination number for the initial site.
            c2 (Int): Coordination number for the final site.
   
        Returns:
            (Float): The relative probability of this jump occurring.
        """
        if self.site_energies:
            site_delta_E = self.site_energies[ l2 ] - self.site_energies[ l1 ]
        else:
            site_delta_E = 0.0
        if self.nn_energy:
            delta_nn = c2 - c1 - 1 # -1 because the hopping ion is not counted in the final site occupation number
            site_delta_E += delta_nn * self.nn_energy
        return metropolis( site_delta_E )