code: def coordination_number_delta_E( self ):
          
          initial_site_neighbours = [ s for s in self.initial_site.p_neighbours if s.is_occupied ] # excludes final site, since this is always unoccupied
          final_site_neighbours = [ s for s in self.final_site.p_neighbours if s.is_occupied and s is not self.initial_site ] # excludes initial site
          initial_cn_occupation_energy = ( self.initial_site.cn_occupation_energy() + 
              sum( [ site.cn_occupation_energy() for site in initial_site_neighbours ] ) +
              sum( [ site.cn_occupation_energy() for site in final_site_neighbours ] ) )
          final_cn_occupation_energy = ( self.final_site.cn_occupation_energy( delta_occupation = { self.initial_site.label : -1 } ) +
              sum( [ site.cn_occupation_energy( delta_occupation = { self.initial_site.label : -1 } ) for site in initial_site_neighbours ] ) +
              sum( [ site.cn_occupation_energy( delta_occupation = { self.final_site.label : +1 } ) for site in final_site_neighbours ] ) )
          return ( final_cn_occupation_energy - initial_cn_occupation_energy )
docs: Coordination-number dependent energy conrtibution to the change in system energy if this jump were accepted.
  
          Args:
              None
  
          Returns:
              (Float): delta E (coordination-number)