code: def get_sub_electrodes(self, adjacent_only=True):
          
  
          if adjacent_only:
              return [self.__class__(self._vpairs[i:i + 1],
                                     self._working_ion_entry, self._composition)
                      for i in range(len(self._vpairs))]
          sub_electrodes = []
          for i in range(len(self._vpairs)):
              for j in range(i, len(self._vpairs)):
                  sub_electrodes.append(self.__class__(self._vpairs[i:j + 1],
                                                       self._working_ion_entry,
                                                       self._composition))
          return sub_electrodes
docs: If this electrode contains multiple voltage steps, then it is possible
          to use only a subset of the voltage steps to define other electrodes.
          For example, an LiTiO2 electrode might contain three subelectrodes:
          [LiTiO2 --> TiO2, LiTiO2 --> Li0.5TiO2, Li0.5TiO2 --> TiO2]
          This method can be used to return all the subelectrodes with some
          options
  
          Args:
              adjacent_only: Only return electrodes from compounds that are
                  adjacent on the convex hull, i.e. no electrodes returned
                  will have multiple voltage steps if this is set true
  
          Returns:
              A list of ConversionElectrode objects