docs: def remove_collisions(self, min_dist=0.5):
          """
          Remove predicted sites that are too close to existing atoms in the
          structure.
  
          Args:
              min_dist (float): The minimum distance (in Angstrom) that
                  a predicted site needs to be from existing atoms. A min_dist
                  with value <= 0 returns all sites without distance checking.
          """
          s_f_coords = self.structure.frac_coords
          f_coords = self.extrema_coords
          if len(f_coords) == 0:
              if self.extrema_type is None:
                  logger.warning(
                      "Please run ChargeDensityAnalyzer.get_local_extrema first!")
                  return
              new_f_coords = []
              self._update_extrema(new_f_coords, self.extrema_type)
              return new_f_coords
  
          dist_matrix = self.structure.lattice.get_all_distances(f_coords,
                                                                 s_f_coords)
          all_dist = np.min(dist_matrix, axis=1)
          new_f_coords = []
  
          for i, f in enumerate(f_coords):
              if all_dist[i] > min_dist:
                  new_f_coords.append(f)
          self._update_extrema(new_f_coords, self.extrema_type)
  
          return new_f_coords