docs: def get_local_extrema(self, find_min=True, threshold_frac=None,
                            threshold_abs=None):
          """
          Get all local extrema fractional coordinates in charge density,
          searching for local minimum by default. Note that sites are NOT grouped
          symmetrically.
  
          Args:
              find_min (bool): True to find local minimum else maximum, otherwise
                  find local maximum.
  
              threshold_frac (float): optional fraction of extrema shown, which
                  returns `threshold_frac * tot_num_extrema` extrema fractional
                  coordinates based on highest/lowest intensity.
  
                  E.g. set 0.2 to show the extrema with 20% highest or lowest
                  intensity. Value range: 0 <= threshold_frac <= 1
  
                  Note that threshold_abs and threshold_frac should not set in the
                  same time.
  
              threshold_abs (float): optional filter. When searching for local
                  minima, intensity <= threshold_abs returns; when searching for
                  local maxima, intensity >= threshold_abs returns.
  
                  Note that threshold_abs and threshold_frac should not set in the
                  same time.
  
          Returns:
              extrema_coords (list): list of fractional coordinates corresponding
                  to local extrema.
          """
          sign, extrema_type = 1, "local maxima"
  
          if find_min:
              sign, extrema_type = -1, "local minima"
  
          # Make 3x3x3 supercell
          # This is a trick to resolve the periodical boundary issue.
          total_chg = sign * self.chgcar.data["total"]
          total_chg = np.tile(total_chg, reps=(3, 3, 3))
          coordinates = peak_local_max(total_chg, min_distance=1)
  
          # Remove duplicated sites introduced by supercell.
          f_coords = [coord / total_chg.shape * 3 for coord in coordinates]
          f_coords = [f - 1 for f in f_coords if
                      all(np.array(f) < 2) and all(np.array(f) >= 1)]
  
          # Update information
          self._update_extrema(f_coords, extrema_type,
                               threshold_frac=threshold_frac,
                               threshold_abs=threshold_abs)
  
          return self.extrema_coords